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. 핵심 가치
- 감정 탐색: 지금 내 마음이 어떤 상태인지 알아차리기
- 자기 성찰: 카드 해석을 통해 내 상황을 객관화하기
- 기록 습관: 짧은 문장이라도 남겨서 감정 변화를 추적하기
- 정서적 안정: 확언과 명상 문구로 세션을 부드럽게 마무리하기
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. 화면 목록
- Splash / Intro
- HomeScreen
- SpreadSelectBottomSheet
- DrawCardScreen
- ReadingScreen
- CounselingScreen
- JournalSaveDialog / JournalWriteSection
- JournalListScreen
- JournalDetailScreen
- MeditationScreen
- 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초 안에 이해하게 만들어야 한다.
핵심은 다음 네 가지다.
- 앱 이름과 정체성 전달
- 오늘의 질문으로 진입 유도
- 바로 카드 뽑기 시작 버튼 제공
- 최근 기록이나 빠른 진입 포인트 제공
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. 공통 컴포넌트
HanTarotPrimaryButtonHanTarotMenuButtonHanTarotQuestionCardTarotCardBackTarotCardFrontAffirmationCardEmotionChip
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: BooleansessionDurationSec: Int?spreadTitle: String?
단, MVP에서는 없어도 된다.
14. 해석 엔진 구현 전략
초기 MVP에서는 AI API 없이도 충분히 구현 가능하다.
14-1. 규칙 기반 해석 엔진
입력:
- 사용자 질문
- 카드 목록
- 카드 키워드
- 스프레드 타입
출력:
- 해석 요약 2~4문장
- 후속 질문 1~2개
- 확언 1개
- 명상 문구 1개
14-2. 구현 순서
- 카드별 기본 키워드 정리
- 질문 카테고리 분류
- 감정
- 관계
- 진로
- 회복
- 공통 키워드 상위 3개 추출
- 템플릿 문장 조합
- 후속 질문 생성
14-3. MVP 품질 기준
- 해석은 절대 단정적이지 않다.
- 불안, 공포, 운명 확정 표현을 피한다.
- 자기 관찰형 문장을 사용한다.
- 마지막 문장은 부드러운 행동 제안으로 끝낸다.
예:
- “지금의 당신은 답을 급하게 찾기보다 자신의 감정을 차분히 들여다볼 필요가 있어 보입니다.”
- “오늘의 카드는 해결보다 이해가 먼저라는 메시지를 전합니다.”
15. 개발 리스크와 대응
15-1. 리스크
- 카드 이미지 리소스 관리가 복잡해질 수 있음
- 화면 수가 늘어나며 상태 관리가 꼬일 수 있음
- 해석 문구가 점술처럼 보일 위험이 있음
- 디자인에 시간을 너무 많이 쓰면 개발이 늦어짐
15-2. 대응
- 이미지 네이밍 규칙 고정
- 화면별
UiState,UiEvent분리 - 문구 가이드 별도 문서화
- 3주차 전까지는 “동작 우선, 미감 후순위” 원칙 유지
16. 출시 전 체크리스트
기능
- 홈에서 1장 / 3장 진입 가능
- 카드 셔플 및 선택 정상 동작
- 해석 결과 정상 출력
- 상담 질문 입력 가능
- 저널 저장 및 목록 조회 가능
- 명상/확언 화면 정상 노출
UX
- 첫 진입 2초 내
- 빈 상태 문구 있음
- 네트워크 없어도 동작
- 버튼 용어 통일
- 오탈자 검수 완료
배포
- 앱 아이콘 적용
- 스플래시 적용
- 버전명 설정
- 테스트용 스크린샷 준비
17. 최종 제안
Han Tarot는 일반적인 타로 앱보다 브랜드 미감과 문구 품질이 훨씬 중요하다. 이미 카드 일러스트가 강력한 자산이므로, MVP에서는 기능을 욕심내기보다 아래 세 가지에 집중하는 것이 가장 효과적이다.
- 홈 → 카드 뽑기 → 해석 → 기록 흐름을 막힘 없이 완성하기
- 공감형 문구 톤을 일정하게 유지하기
- 한국 전통 미감을 일관된 UI로 보여주기
따라서 최적의 실행 전략은 다음과 같다.
- 8주 MVP 일정으로 간다
- 1장/3장 스프레드만 먼저 완성한다
- 로컬 기반 규칙형 해석 엔진으로 시작한다
- 홈 화면 카피와 디자인 완성도를 높인다
18. 바로 다음 액션
개발 시작 직전에 바로 해야 할 일은 아래 순서가 가장 좋다.
- 카드 데이터 CSV 또는 JSON 정리
- HomeScreen 확정 목업 제작
- Design System 컴포넌트 3종 제작
- PrimaryButton
- MenuButton
- QuestionCard
- Room + SeedData 세팅
- 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
- 당신의 마음을 천천히 읽어보는 시간
- 오늘의 질문으로 시작하기
'모바일 앱(안드로이드)' 카테고리의 다른 글
| 자기 성찰 타로 상담 앱 실행 로드맵 (MVP 기준, 업데이트 #1) (1) | 2026.03.27 |
|---|---|
| Han Tarot 다음 개발 스텝 정리 (HomeScreen 이후) (0) | 2026.03.23 |
| 자기 성찰 타로 상담 앱기획 및 실행 문서 (0) | 2026.03.19 |
| BillingManager Billing Library 8.3.0 호환성 수정 - 완료 보고서 (0) | 2026.03.17 |
| In-App Update 기능 구현 완료 보고서 (0) | 2026.03.12 |