안드로이드 스튜디오

안드로이드 할 줄 몰라도 Ai로 개발부터 배포까지 가능할까 3 - 설계 , 와이어프레임

yangcotton 2026. 3. 16. 14:38

저번 아이디어 기획과 기능 리스트 작성에 이어 오늘은 설계를 해보려고 한다.

좀 더 자세하게 어떻게 할 것인지 설계를 해보았다. 다음엔 와이어프레임에 대해 알아보고 작성하려고 한다.

앱 전체 화면 구조 (UX 설계)   (GPT)
전체 화면 흐름입니다.
Splash (선택)

Main Screen (MGCS 평가)

Menu
├ Records Screen (저장 기록)
└ Chart Screen (차트 선택)

Graph Screen (그래프 보기)
앱 전체 화면 구조 (UX 설계)   (GPT가 작성한 것을 내가 수정)
전체 화면 흐름입니다.
Splash (선택)
   ↓
Main Screen (MGCS 평가)
 ㅣ      ↓
 ㅣ    Records Screen (저장 기록)
 ㅣ     └ Select Charts to Save ( 저장할 차트 선택)
 ㅣ            Save (기록 저장)
  ↓
Menu

 ├ Records Screen (저장된 기록 리스트)
       └ Delete History & Change Selected Charts  ( 기록 삭제 & 차트 변경)

 └ Chart Screen (차트 선택)
        ↓
     Graph Screen (그래프 보기)

Main Screen (MGCS 평가 화면)   (GPT)
이 앱의 핵심 화면입니다.
UI 구성

[MGCS - Modified Glasgow Coma Scale]

Animal Name 입력
---------------------

Motor Activity
( ) 1
( ) 2
( ) 3
( ) 4
( ) 5

Brainstem Reflex
( ) 1
( ) 2
( ) 3
( ) 4
( ) 5

Level of Consciousness
( ) 1
( ) 2
( ) 3
( ) 4
( ) 5

---------------------

Total Score : 0

Status :
Normal / Moderate / Severe / Coma

---------------------

[SAVE]   [LOAD]

기능

  • 점수 선택 시 자동 totalScore 계산
  • 상태 자동 표시
  • SAVE → DB 저장
  • LOAD → 최근 기록 불러오기
Main Screen (MGCS 평가 화면)    (GPT가 작성한 것을 내가 수정)
이 앱의 핵심 화면입니다.
UI 구성

[MGCS - Modified Glasgow Coma Scale]

Motor Activity
( ) 1
( ) 2
( ) 3
( ) 4
( ) 5
( ) 6

Brainstem Reflex
( ) 1
( ) 2
( ) 3
( ) 4
( ) 5
( ) 6

Level of Consciousness
( ) 1
( ) 2
( ) 3
( ) 4
( ) 5
( ) 6

---------------------

Total Score : 3~18

Status : grave / guarded / good

---------------------

[SAVE]   [LOAD]
[SAVE] 버튼 클릭 시

Hint : Insert Animal Name
    [chart select box]
           [SAVE] 

기능
- 점수 선택 시 자동 totalScore 계산
- 점수 선택 시  상태 자동 표시
- [SAVE] 버튼 클릭 시 → 이름 작성 & 차트 선택  → DB 저장
- LOAD → 최근 기록 불러오기 or 최근 저장된 기록중 불러올 값을 선택하여 불러오기

Records Screen (기록 화면)   (GPT)
저장된 데이터 리스트
Records

--------------------------------
Name      Score     Date
--------------------------------
Coco      12        2026-03-09
Milo      8         2026-03-08
Bella     10        2026-03-08
--------------------------------

기능

  • 리스트 표시
  • Swipe 삭제
  • Long Click 삭제
Records Screen (기록 화면)   (GPT가 작성한 것을 내가 수정)
저장된 데이터 리스트
Records

--------------------------------------------------------------------
Name   Score         Status          Date             Chart
---------------------------------------------------------------------
Coco      12          guarded     2026-03-09         C1
Milo        18              good       2026-03-08         C4
Bella      10          guarded     2026-03-08         
Bella      10          guarded     2026-03-07         C5
                                   .
                                   .
                                   .
                                   .
---------------------------------------------------------------------
기능
- 기록 리스트 최신순으로 표시
- Swipe 삭제
- Long Click 삭제
- 리스트 스크롤 뷰로 조회
- 차트 선택 가능

Chart Screen (차트 선택)   (GPT)
기록 중 최대 5개 선택
Select Records for Chart

☐ Coco - 12
☐ Milo - 8
☐ Bella - 10
☐ Charlie - 7

-----------------------

[DELETE]   [SHOW GRAPH]

기능

  • 최대 5개 선택
  • 삭제 가능
  • SHOW GRAPH → 그래프 화면
Chart Screen (차트 선택)    (GPT가 작성한 것을 내가 수정) 
5개의 차트 중 선택하여 1개 조회 가능
Select Records for Chart

☐ Chart1
☐ Chart2
☐ Chart3
☐ Chart4
☐ Chart5

-----------------------
기능
- 5개의 차트 리스트 조회 가능
- 리스트에서 1개 선택 시 → 상세 그래프 화면

Graph Screen   (GPT)
선택된 기록 그래프
MGCS Score Graph

| 15
|        *
| 10   *
|   *
|  5
|__________________

Date
-----------------------
그래프 라이브러리 추천
  • MPAndroidChart
Graph Screen    (GPT가 작성한 것을 내가 수정)
선택된 기록 그래프
MGCS Score Graph

| 15
|        *
| 10   *
|   *
|  5
|__________________

Date
-------------------------------------------------------
Data list in chart
-------------------------------------------------------
☐ Coco - 12
☐ Milo - 8
☐ Bella - 10
☐ Charlie - 7

그래프 라이브러리 추천
  • MPAndroidChart

Database 설계 (Room)   (GPT)
MGCS 기록 저장 테이블
@Entity(tableName = "mgcs_record")
data class MgcsRecord(

    @PrimaryKey(autoGenerate = true)
    val id: Int = 0,

    val animalName: String,

    val motorScore: Int,

    val brainstemScore: Int,

    val consciousScore: Int,

    val totalScore: Int,

    val date: Long
)
Android 프로젝트 구조 (추천)   (GPT)
cohttp://m.example.mgcs

data
 ├ database
 │    ├ AppDatabase
 │    └ RecordDao
 │
 ├ model
 │    └ MgcsRecord
 │
 └ repository
      └ RecordRepository

ui
 ├ main
 │    ├ MainActivity
 │    └ MgcsViewModel
 │
 ├ records
 │    └ RecordActivity
 │
 ├ chart
 │    └ ChartActivity
 │
 └ graph
      └ GraphActivity

di
 └ HiltModule

utils
 └ DateUtils

 

Q. Database 설계 (Room) 너가 설계해준 이거있잖아. 내가 DB를 따로 쓰지 않고 폰에 직접 data를 저장하려고해 그럴때 Database 설계 (Room) 이거랑 Android 프로젝트 구조 (추천) 이거 다시 작성해줘
A. 좋은 선택입니다 👍
이 앱 규모라면 DB(Room)까지 쓰지 않고 폰 내부 저장(Local Storage) 으로도 충분합니다.

안드로이드에서 DB 없이 저장하는 방법은 보통 3가지입니다.
1️⃣ SharedPreferences / DataStore → 설정 저장용
2️⃣ 파일 저장 (JSON) → 리스트 데이터 저장
3️⃣ SQLite / Room → 큰 데이터

지금 MGCS 앱은 기록 리스트가 필요하므로
👉 JSON 파일 저장 방식이 가장 적합합니다.
데이터 저장 구조 (파일 기반)   (GPT)
파일 예시
mgcs_records.json

데이터 구조
[
 {
  "id": 1,
  "animalName": "Coco",
  "motorScore": 4,
  "brainstemScore": 3,
  "consciousScore": 4,
  "totalScore": 11,
  "date": 1710000000000
 },
 {
  "id": 2,
  "animalName": "Milo",
  "motorScore": 3,
  "brainstemScore": 2,
  "consciousScore": 3,
  "totalScore": 8,
  "date": 1710000100000
 }
]
Android 프로젝트 구조 (파일 저장 방식)    (GPT)
Room을 제거한 구조입니다.
cohttp://m.example.mgcs

data
 ├ model
 │    └ MgcsRecord
 │
 └ storage
      └ RecordStorage

ui
 ├ main
 │    ├ MainActivity
 │    └ MgcsViewModel
 │
 ├ records
 │    └ RecordsActivity
 │
 ├ chart
 │    └ ChartActivity
 │
 └ graph
      └ GraphActivity

utils
 ├ JsonUtils
 └ DateUtils