Today's

길을 나서지 않으면 그 길에서 만날 수 있는 사람을 만날 수 없다

모바일 앱(안드로이드)

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

Billcorea 2026. 3. 21. 15:00

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
  • 당신의 마음을 천천히 읽어보는 시간
  • 오늘의 질문으로 시작하기
반응형