2026/05/08

오늘의 이야기

Han Tarot 앱 개발 기획안 (수정버전)


앱 예시



작성일: 2026-03-21




1. 문서 목적


이 문서는 업로드된 기획/실행 문서를 바탕으로 Han Tarot 앱을 실제로 출시 가능한 수준의 MVP로 개발하기 위한 실행 계획을 정리한 문서다.


원문 문서에서 제시한 핵심 방향은 다음과 같다.



  • 이 앱은 점술 중심이 아니라 자기 성찰과 마음 치유를 돕는 상담형 타로 앱이다.

  • 기술 스택은 Android / Kotlin / Hilt / Room / Jetpack Compose를 기준으로 한다.

  • 전체 사용자 흐름은 카드 뽑기 → 해석 → 상담 질문 → 기록 → 치유 메시지로 이어진다.

  • MVP 기준 핵심 기능은 랜덤 카드 추출, 1장/3장 스프레드, 해석 엔진, 저널링, 확언/명상 화면이다.




2. Han Tarot 제품 정의


2-1. 제품 한 줄 정의


Han Tarot는 한국 전통 미감의 타로 카드를 통해 사용자의 감정과 생각을 비추는 자기 성찰형 타로 상담 앱이다.


2-2. 제품 콘셉트



  • 한국 전통풍 카드 일러스트와 한복, 금박, 먹·수채화 감성

  • 예언보다 정서적 안정과 자기 이해에 집중하는 해석

  • 상담형 질문과 저널 저장을 통해 기록 습관 형성

  • 오프라인에서도 동작 가능한 개인용 힐링 앱


2-3. 핵심 가치



  1. 감정 탐색: 지금 내 마음이 어떤 상태인지 알아차리기

  2. 자기 성찰: 카드 해석을 통해 내 상황을 객관화하기

  3. 기록 습관: 짧은 문장이라도 남겨서 감정 변화를 추적하기

  4. 정서적 안정: 확언과 명상 문구로 세션을 부드럽게 마무리하기




3. 개발 범위 정의


3-1. MVP 범위


이번 1차 개발에서는 아래 범위만 완성해도 출시 가능한 MVP가 된다.



  • 홈 화면

  • 1장 / 3장 스프레드 선택

  • 카드 셔플 및 카드 뽑기

  • 카드 이미지 표시 및 해석 결과 화면

  • 상담형 후속 질문 1~2개 제시

  • 저널 저장 및 목록 조회

  • 확언 / 명상 마무리 화면

  • 설정(문구 톤, 앱 소개, 문의 링크 정도의 최소 구성)


3-2. 이번 MVP에서 제외할 항목



  • 서버 연동

  • 로그인 / 회원가입

  • AI API 호출

  • 커뮤니티

  • 카드 역방향 고도화 규칙

  • 켈틱 크로스 등 고급 스프레드

  • 다국어 지원

  • 결제 / 구독


3-3. 전제 조건


이 문서는 아래 전제를 두고 작성했다.



  • 개발자는 1인 또는 소규모 팀이다.

  • 이미 제작한 카드 이미지는 앱 번들 리소스로 탑재 가능하다.

  • Android 앱은 Kotlin + Compose + Hilt + Room 기반으로 개발한다.

  • MVP는 로컬 데이터 기반으로 먼저 완성한다.




4. 권장 앱 구조


원문 문서의 Clean Architecture 방향은 그대로 유지하는 것이 좋다. 다만 실제 개발 속도를 위해 너무 과도한 추상화는 피한다.


4-1. 추천 모듈/패키지 구조


com.hantarot.app
├─ core
│ ├─ ui
│ ├─ designsystem
│ ├─ model
│ └─ util
├─ data
│ ├─ local
│ │ ├─ dao
│ │ ├─ entity
│ │ ├─ database
│ │ └─ seed
│ ├─ mapper
│ └─ repository
├─ domain
│ ├─ model
│ ├─ repository
│ └─ usecase
├─ feature
│ ├─ splash
│ ├─ home
│ ├─ spread
│ ├─ draw
│ ├─ reading
│ ├─ counseling
│ ├─ journal
│ ├─ meditation
│ └─ settings
├─ navigation
└─ di

4-2. 구조 운영 원칙



  • feature 단위로 화면과 ViewModel 묶기

  • 공용 UI는 core/designsystem 으로 분리

  • Room Entity와 Domain Model은 분리

  • 해석 로직은 domain/usecase, domain/model, TarotEngine 쪽에 집중

  • 문구 템플릿은 하드코딩보다 JSON 또는 local seed 리소스로 관리




5. 화면 구성과 작업 순서


개발은 화면을 예쁘게 만드는 것보다 사용 흐름을 먼저 완성하는 순서로 진행하는 것이 가장 빠르다.


5-1. 화면 목록



  1. Splash / Intro

  2. HomeScreen

  3. SpreadSelectBottomSheet

  4. DrawCardScreen

  5. ReadingScreen

  6. CounselingScreen

  7. JournalSaveDialog / JournalWriteSection

  8. JournalListScreen

  9. JournalDetailScreen

  10. MeditationScreen

  11. SettingsScreen


5-2. 실제 개발 순서 추천


1단계: 뼈대 완성



  • 앱 테마, 컬러, 폰트, 공통 버튼/카드 UI 구성

  • Navigation 세팅

  • Hilt 세팅

  • Room DB 세팅

  • 카드 seed 데이터 import


2단계: 핵심 사용자 흐름 완성



  • HomeScreen

  • Spread 선택

  • 카드 셔플/선택

  • ReadingScreen


3단계: 상담과 기록 연결



  • CounselingScreen

  • Journal 저장

  • Journal 목록/상세


4단계: 감정 안정 마무리 흐름 추가



  • MeditationScreen

  • Affirmation 표시

  • 세션 종료 UX


5단계: 품질 보완



  • 애니메이션

  • 빈 상태 처리

  • 예외 처리

  • 문구 다듬기

  • QA




6. 실행 가능한 개발 기간


원문 문서는 8주 일정을 예시로 제시하고 있다. 실제로도 이 일정은 무리가 없고 현실적이다. 다만 1인 개발 기준으로는 7~8주, 디자인 수정과 문구 다듬기까지 포함하면 8주를 권장한다.


6-1. 최종 추천 일정



  • 최소 구현: 5주

  • 안정적인 MVP: 8주

  • 출시 직전 polish 포함: 9주


이 문서에서는 8주 MVP 일정을 기준으로 제안한다.




7. 8주 개발 로드맵


Week 1 — 기획 확정 및 리소스 정리


목표



  • 앱의 정체성과 MVP 범위 확정

  • 카드 이미지 및 해석 데이터 정리

  • 홈 화면과 핵심 플로우 목업 확정


작업



  • 앱명, 아이콘, 컬러 시스템 확정

  • 카드 리소스 파일명 규칙 통일

  • 카드 데이터 구조 정의

  • 홈/드로우/리딩/저널 플로우 확정

  • 문구 톤 가이드 작성


산출물



  • 화면 플로우 다이어그램

  • 카드 메타 데이터 시트

  • UI 목업 초안

  • 개발 체크리스트




Week 2 — 프로젝트 초기 세팅


목표



  • 개발 가능한 앱 골격 완성


작업



  • Android Studio 프로젝트 구성

  • Hilt 설정

  • Room Database 생성

  • Navigation 설정

  • Design System 기초 컴포넌트 작성

  • Seed 데이터 로딩 구조 작성


산출물



  • 앱 실행 가능한 기본 프로젝트

  • 카드/저널 DB 동작 확인

  • 공통 버튼, 카드, 다이얼로그 UI 컴포넌트




Week 3 — 홈 화면 및 카드 뽑기 기능


목표



  • 사용자가 실제로 카드를 뽑을 수 있게 만들기


작업



  • Splash / HomeScreen 구현

  • SpreadSelectBottomSheet 구현

  • DrawCardScreen 구현

  • 1장 / 3장 스프레드 로직 구현

  • 셔플 애니메이션 간단 구현


산출물



  • 홈에서 카드 뽑기까지 이동 완료

  • 선택된 카드 ID 전달 완료




Week 4 — 해석 화면 및 해석 엔진 연결


목표



  • 카드 결과를 사용자가 읽을 수 있도록 만들기


작업



  • ReadingScreen 구현

  • ReadingUiState 설계

  • 간단한 해석 엔진 구현

  • 카드 키워드, 요약 문장, 확언 생성

  • 1장 / 3장 별 표시 방식 정리


산출물



  • 카드 뽑기 후 해석 화면 표시

  • 질문 기반 해석 결과 출력




Week 5 — 상담형 질문 흐름 구현


목표



  • 타로 앱에서 상담형 경험이 느껴지도록 만들기


작업



  • CounselingScreen 구현

  • 후속 질문 생성 규칙 추가

  • 사용자 입력창 구성

  • 세션별 입력 임시 상태 저장

  • 다음 질문/건너뛰기 흐름 구현


산출물



  • 읽기 → 입력 → 저장 전 단계까지 자연스럽게 연결




Week 6 — 저널 저장/조회 + 명상 화면


목표



  • 사용자의 기록과 마무리 경험까지 완성


작업



  • JournalEntity 저장 구현

  • JournalListScreen, JournalDetailScreen 구현

  • MeditationScreen 구현

  • 감정 태그 저장

  • 확언 카드/명상 문구 마무리 구성


산출물



  • 완전한 1회 세션 종료 플로우 완성

  • 이전 기록 조회 가능




Week 7 — 디자인 polish 및 QA


목표



  • 출시 가능한 수준의 완성도 확보


작업



  • 애니메이션 보완

  • 홈 화면 문구 튜닝

  • 버튼 레이블, 빈 상태, 오류 상태 문구 정리

  • TalkBack/접근성 최소 점검

  • 성능 점검


산출물



  • 앱 전반 UX 개선

  • 버그 리스트와 수정본




Week 8 — MVP 배포 준비


목표



  • 내부 테스트 또는 비공개 베타 배포


작업



  • 아이콘/스플래시/스크린샷 정리

  • 앱 설명문 초안 작성

  • versionCode / versionName 정리

  • Firebase Crashlytics / Analytics 선택 적용

  • 비공개 테스트 배포


산출물



  • 베타 APK/AAB

  • 테스트 체크리스트

  • 다음 버전 백로그




8. 작업 우선순위


8-1. Must Have



  • 홈 화면

  • 1장 / 3장 뽑기

  • 해석 결과

  • 상담 질문 1세트

  • 저널 저장/조회

  • 명상/확언 화면


8-2. Should Have



  • 카드 뒤집기 애니메이션

  • 최근 기록 미리보기

  • 감정 태그

  • 홈 화면 오늘의 질문 추천


8-3. Nice to Have



  • 역방향 카드 별도 연출

  • 사운드 효과

  • 배경 음악

  • 다국어 지원

  • AI 맞춤 상담




9. 초기 화면 구성 기획


초기 화면은 사용자가 앱의 정체성을 3초 안에 이해하게 만들어야 한다.


핵심은 다음 네 가지다.



  1. 앱 이름과 정체성 전달

  2. 오늘의 질문으로 진입 유도

  3. 바로 카드 뽑기 시작 버튼 제공

  4. 최근 기록이나 빠른 진입 포인트 제공


9-1. 첫 진입 구조


Splash
→ HomeScreen
→ [오늘의 질문 선택]
→ [1장 / 3장 선택]
→ DrawCardScreen

9-2. 홈 화면에 반드시 들어가야 할 요소



  • 상단 브랜드 영역

  • 한 줄 설명

  • 오늘의 질문 카드

  • 주 액션 버튼

  • 보조 메뉴 버튼 3개

  • 최근 기록 1~2개 미리보기




10. HomeScreen 목업


10-1. 와이어프레임 목업


┌─────────────────────────────────────┐
│ [앱 아이콘] Han Tarot │
│ Korean Reflection Tarot │
│ 예언이 아닌, 마음을 비추는 거울 │
├─────────────────────────────────────┤
│ [Hero Card / 오늘의 질문] │
│ 오늘 당신이 가장 먼저 돌봐야 할 │
│ 감정은 무엇인가요? │
│ │
│ [오늘의 카드 시작하기] │
├─────────────────────────────────────┤
│ [메뉴 버튼 1] Daily Tarot │
│ 오늘의 카드 한 장을 뽑아보세요 │
├─────────────────────────────────────┤
│ [메뉴 버튼 2] 3 Card Spread │
│ 과거 · 현재 · 미래를 살펴보세요 │
├─────────────────────────────────────┤
│ [메뉴 버튼 3] Journal │
│ 지난 기록과 감정의 흐름을 확인하세요 │
├─────────────────────────────────────┤
│ [메뉴 버튼 4] Tarot Reading │
│ 타로 이미지의 생성 프롬프트를 확인하세요 │
├─────────────────────────────────────┤
│ 최근 기록 │
│ - 3월 14일 / 감정 태그: 불안 │
│ - 3월 12일 / 감정 태그: 회복 │
└─────────────────────────────────────┘

10-2. 영역별 배치 가이드


A. 상단 브랜드 영역



  • 위치: 상단 SafeArea 안쪽, 좌우 24dp

  • 구성:

    • 좌측 또는 중앙: 앱명 Han Tarot

    • 보조 문구: Korean Reflection Tarot

    • 서브 카피: 예언이 아닌, 마음을 비추는 거울



  • 배경: 다크 네이비 또는 다크 버건디

  • 포인트: 골드 텍스트/장식선


B. Hero Question Card



  • 위치: 브랜드 영역 바로 아래

  • 역할: 사용자가 가장 먼저 읽는 문구

  • 버튼: 오늘의 카드 시작하기

  • 스타일: 큰 카드, 부드러운 라운드, 약한 금박 테두리


C. 메뉴 영역



  • 위치: Hero 아래 세로 스택

  • 추천 메뉴:

    • Daily Tarot

    • 3 Card Spread

    • Journal



  • 컴포넌트: HanTarotMenuButton


D. 최근 기록 영역



  • 위치: 화면 하단

  • 최근 세션 1~2건만 노출

  • 전체 보기 버튼은 우측 상단 작게 배치




11. 초기 화면 문구 제안


11-1. 앱 상단 카피


후보 A



  • Han Tarot

  • Korean Reflection Tarot

  • 예언이 아닌, 마음을 비추는 거울


후보 B



  • Han Tarot

  • A gentle tarot for reflection

  • 오늘의 감정을 카드로 마주해보세요


후보 C



  • Han Tarot

  • Korean Mystic Reflection

  • 당신의 마음을 천천히 읽어보는 시간


11-2. 오늘의 질문 카드 문구


추천 문구 1


오늘 당신이 가장 먼저 돌봐야 할 감정은 무엇인가요?


추천 문구 2


지금의 나에게 가장 필요한 마음의 메시지는 무엇일까요?


추천 문구 3


오늘의 카드가 당신의 마음에 어떤 질문을 건네는지 확인해보세요.


11-3. 버튼 문구


메인 CTA



  • 오늘의 카드 시작하기

  • 지금 카드 뽑기

  • 오늘의 질문으로 시작하기


보조 버튼



  • Daily Tarot

  • 3 Card Spread

  • Journal

  • 지난 기록 보기


11-4. 빈 상태 문구


최근 기록 없음



  • 아직 남겨진 기록이 없어요.

  • 오늘의 첫 카드를 뽑고 마음의 기록을 시작해보세요.




12. 디자인 시스템 초안


12-1. 컬러



  • Background: #120D18

  • Surface: #1E1623

  • Gold Primary: #D4AF37

  • Gold Light: #FFE7A3

  • Ivory Text: #F6F0E8

  • Sub Text: #D8CFC3

  • Accent Red: #8C2F39


12-2. 타이포그래피 방향



  • 제목: 고전적 느낌의 serif 계열 또는 display 계열

  • 본문: 읽기 쉬운 sans-serif

  • 앱 내부 실제 구현은 Android 기본 폰트로 시작하고, 추후 커스텀 폰트 적용


12-3. 공통 컴포넌트



  • HanTarotPrimaryButton

  • HanTarotMenuButton

  • HanTarotQuestionCard

  • TarotCardBack

  • TarotCardFront

  • AffirmationCard

  • EmotionChip




13. 데이터 설계 제안


원문 문서의 CardEntity, JournalEntity 방향은 MVP에 적합하다. 실제 앱에서는 아래 정도만 먼저 가져가면 충분하다.


13-1. CardEntity


data class CardEntity(
val id: Int,
val nameKo: String,
val nameEn: String,
val arcanaType: String,
val suit: String?,
val number: Int?,
val imageAsset: String,
val uprightMeaning: String,
val reversedMeaning: String,
val affirmation: String,
val meditationMessage: String,
val keywords: String
)

13-2. JournalEntity


data class JournalEntity(
val id: Long,
val spreadType: String,
val userQuestion: String,
val selectedCardIds: String,
val interpretationSummary: String,
val counselingMessage: String,
val userReflection: String,
val emotionTag: String?,
val createdAt: Long
)

13-3. 추가 권장 필드


JournalEntity 에 아래 필드는 있으면 좋다.



  • affirmationShown: Boolean

  • sessionDurationSec: Int?

  • spreadTitle: String?


단, MVP에서는 없어도 된다.




14. 해석 엔진 구현 전략


초기 MVP에서는 AI API 없이도 충분히 구현 가능하다.


14-1. 규칙 기반 해석 엔진


입력:



  • 사용자 질문

  • 카드 목록

  • 카드 키워드

  • 스프레드 타입


출력:



  • 해석 요약 2~4문장

  • 후속 질문 1~2개

  • 확언 1개

  • 명상 문구 1개


14-2. 구현 순서



  1. 카드별 기본 키워드 정리

  2. 질문 카테고리 분류

    • 감정

    • 관계

    • 진로

    • 회복



  3. 공통 키워드 상위 3개 추출

  4. 템플릿 문장 조합

  5. 후속 질문 생성


14-3. MVP 품질 기준



  • 해석은 절대 단정적이지 않다.

  • 불안, 공포, 운명 확정 표현을 피한다.

  • 자기 관찰형 문장을 사용한다.

  • 마지막 문장은 부드러운 행동 제안으로 끝낸다.


예:



  • “지금의 당신은 답을 급하게 찾기보다 자신의 감정을 차분히 들여다볼 필요가 있어 보입니다.”

  • “오늘의 카드는 해결보다 이해가 먼저라는 메시지를 전합니다.”




15. 개발 리스크와 대응


15-1. 리스크



  1. 카드 이미지 리소스 관리가 복잡해질 수 있음

  2. 화면 수가 늘어나며 상태 관리가 꼬일 수 있음

  3. 해석 문구가 점술처럼 보일 위험이 있음

  4. 디자인에 시간을 너무 많이 쓰면 개발이 늦어짐


15-2. 대응



  • 이미지 네이밍 규칙 고정

  • 화면별 UiState, UiEvent 분리

  • 문구 가이드 별도 문서화

  • 3주차 전까지는 “동작 우선, 미감 후순위” 원칙 유지




16. 출시 전 체크리스트


기능



  • 홈에서 1장 / 3장 진입 가능

  • 카드 셔플 및 선택 정상 동작

  • 해석 결과 정상 출력

  • 상담 질문 입력 가능

  • 저널 저장 및 목록 조회 가능

  • 명상/확언 화면 정상 노출


UX



  • 첫 진입 2초 내

  • 빈 상태 문구 있음

  • 네트워크 없어도 동작

  • 버튼 용어 통일

  • 오탈자 검수 완료


배포



  • 앱 아이콘 적용

  • 스플래시 적용

  • 버전명 설정

  • 테스트용 스크린샷 준비




17. 최종 제안


Han Tarot는 일반적인 타로 앱보다 브랜드 미감문구 품질이 훨씬 중요하다. 이미 카드 일러스트가 강력한 자산이므로, MVP에서는 기능을 욕심내기보다 아래 세 가지에 집중하는 것이 가장 효과적이다.



  1. 홈 → 카드 뽑기 → 해석 → 기록 흐름을 막힘 없이 완성하기

  2. 공감형 문구 톤을 일정하게 유지하기

  3. 한국 전통 미감을 일관된 UI로 보여주기


따라서 최적의 실행 전략은 다음과 같다.



  • 8주 MVP 일정으로 간다

  • 1장/3장 스프레드만 먼저 완성한다

  • 로컬 기반 규칙형 해석 엔진으로 시작한다

  • 홈 화면 카피와 디자인 완성도를 높인다




18. 바로 다음 액션


개발 시작 직전에 바로 해야 할 일은 아래 순서가 가장 좋다.



  1. 카드 데이터 CSV 또는 JSON 정리

  2. HomeScreen 확정 목업 제작

  3. Design System 컴포넌트 3종 제작

    • PrimaryButton

    • MenuButton

    • QuestionCard



  4. Room + SeedData 세팅

  5. Draw → Reading 플로우 구현 시작




부록 A. HomeScreen Compose 초안 구조


Column(
modifier = Modifier
.fillMaxSize()
.background(Color(0xFF120D18))
.padding(20.dp)
) {
BrandHeader()
Spacer(Modifier.height(20.dp))
TodayQuestionHeroCard()
Spacer(Modifier.height(16.dp))
HanTarotMenuButton(title = "Daily Tarot", ...)
Spacer(Modifier.height(12.dp))
HanTarotMenuButton(title = "3 Card Spread", ...)
Spacer(Modifier.height(12.dp))
HanTarotMenuButton(title = "Journal", ...)
Spacer(Modifier.height(20.dp))
RecentJournalSection()
}



부록 B. 추천 홈 화면 문구 조합


조합안 1



  • Han Tarot

  • Korean Reflection Tarot

  • 예언이 아닌, 마음을 비추는 거울

  • 오늘의 카드 시작하기


조합안 2



  • Han Tarot

  • A gentle tarot for reflection

  • 오늘 당신이 가장 먼저 돌봐야 할 감정은 무엇인가요?

  • 지금 카드 뽑기


조합안 3



  • Han Tarot

  • Korean Mystic Reflection

  • 당신의 마음을 천천히 읽어보는 시간

  • 오늘의 질문으로 시작하기





댓글 없음:

댓글 쓰기

오늘의 이야기

🔍 프로젝트 진단 | Health501 아키텍처 & 코드 품질 개선 로드맵 샘플이미지   📊 개요 (Executive Summary) 작업 일자: 2025-1...