2026/05/12

오늘의 이야기


#스하리1000명프로젝트,
Kadang-kadang susah nak bercakap dengan pekerja asing kan?
Saya membuat aplikasi mudah yang membantu! Anda menulis dalam bahasa anda, dan orang lain melihatnya dalam bahasa mereka.
Ia auto-terjemah berdasarkan tetapan.
Sangat berguna untuk sembang mudah. Lihatlah apabila anda mendapat peluang!
https://play.google.com/store/apps/details?id=com.billcoreatech.multichat416




오늘의 이야기

 






 


#미국과 이란의 전쟁상황

[국제정세 분석] 현재 미국과 이란의 전쟁상황 총정리 및 향후 전망


미국 vs 이란 전쟁상황 총정리: 제3차 세계대전의 서막일까, 아니면 관리되는 갈등일까?


International Insight 5 min read





연일 뉴스에서 중동의 무력 충돌 소식이 끊이지 않고 들려오고 있어요.
많은 분들이 혹시라도 이러한 국지적 충돌이 제3차 세계대전과 같은 전면전으로 번지지 않을까 우려하며 미국과 이란의 전쟁상황에 대해 자세히 찾아보시는 것 같아요.


중동 갈등 상황

과거부터 이어진 두 국가의 갈등은 최근 이스라엘과 하마스 문제 등 다양한 요인과 맞물려 더욱 복잡한 양상을 띠고 있어요.
오늘은 현재 중동의 상황이 정확히 어떻게 흘러가고 있는지, 그리고 우리들의 경제 생활에는 어떤 영향을 미칠지 알기 쉽게 정리해 보려고 해요.





전면전 대신 선택한 '그림자 대리전'


Proxy War


현재 미국과 이란의 전쟁상황을 한마디로 요약하자면 '고조된 긴장 속의 대리전(Proxy War)'이라고 표현할 수 있어요.
두 국가의 수뇌부 모두 직접적인 전면전이 가져올 막대한 경제적, 인명적 피해를 잘 알고 있기 때문에 이를 의도적으로 피하고 있는 모습이에요.


대신 이란은 직접 나서기보다는 자신들이 지원하는 무장 세력들을 통해 영향력을 행사하고 있어요.
가자지구의 하마스, 레바논의 헤즈볼라, 예멘의 후티 반군, 그리고 이라크 내의 친이란 밀리시아 등 이른바 '저항의 축'으로 불리는 세력들이 그 중심에 있어요.


Military Action Regional Impact

미군 역시 가만히 당하고만 있지는 않아요.
이라크와 시리아 등지에서 이란 혁명수비대(IRGC)와 연관된 시설을 정밀 타격하는 보복 공습을 단행하며 자국군을 보호하겠다는 강력한 의지를 보여주고 있어요.
이렇게 간접적인 형태의 무력 충돌이 중동 전역에서 일상처럼 벌어지고 있답니다.






홍해 물류 대란과 글로벌 공급망 위협



글로벌 경제에 즉각적인 타격을 주고 있는 가장 큰 문제는 바로 홍해에서 벌어지고 있는 물류 대란이에요.
이란의 군사적 지원을 받는 예멘의 후티 반군이 홍해 항로를 통과하는 상선들을 지속적으로 공격하면서 전 세계의 공급망에 비상이 걸렸어요.


Red Sea Crisis

이에 대응하기 위해 미국이 주도하는 다국적 연합군이 결성되었고, 후티 반군의 주요 군사 시설을 공습하는 작전을 꾸준히 수행하고 있어요.
이러한 해상에서의 교전이 반복되면서 미국과 이란의 전쟁상황은 전 세계의 물동량과 운송비를 뒤흔드는 글로벌 이슈로 확대되고 있어요.


Supply Chain Impact

또한 이란 내부에서 발생하는 의문의 폭발 사고나 요인 암살 사건도 긴장을 늦출 수 없게 만들어요.
이란 정부는 이러한 사건들의 배후로 미국과 이스라엘을 지목하며 강력한 피의 보복을 예고하는 상황이 반복되고 있어, 중동 지역의 긴장감은 쉽게 가라앉지 않고 있어요.






갈등의 근본적인 원인과 핵 문제



그렇다면 두 나라는 왜 이렇게 오랫동안 갈등을 겪고 있는 걸까요?
그 뿌리는 1979년에 일어난 이란 이슬람 혁명 당시로 거슬러 올라가며, 이후 굳어진 반미 정서가 핵심적인 원인이에요.
여기에 이스라엘의 존재에 대한 좁혀지지 않는 입장 차이와 중동 패권을 둘러싼 힘겨루기가 복합적으로 얽혀 있어요.


Historical Context

가장 민감한 이슈 중 하나는 바로 이란의 핵 개발 문제예요.
최근 국제원자력기구(IAEA)는 이란의 핵농축 수준이 무기화에 가까운 임계점에 도달했다고 강하게 경고하기도 했어요.


Nuclear Program

이러한 상황 속에서 미국의 강력한 경제 제재와 이에 맞대응하는 이란의 강경한 태도는 평행선을 달리고 있어요.
이처럼 깊고 복잡한 역사적, 정치적 이해관계가 얽혀 있기 때문에 미국과 이란의 전쟁상황을 단기간에 외교적으로 해결하기는 매우 어려워 보여요.






한국 경제에 미치는 파급력과 전망



비록 지리적으로는 멀리 떨어져 있는 중동의 일이지만, 이 갈등은 수입 의존도가 높은 한국 경제에 즉각적인 파급력을 가져와요.
가장 먼저 걱정해야 할 부분은 단연 국제 유가의 불안정한 변동성이에요.


Economic Impact

특히 세계 원유 수송량의 엄청난 비중을 차지하는 호르무즈 해협에서 긴장이 고조되거나 유조선 나포가 발생하면 기름값은 순식간에 폭등하게 돼요.
국제 유가가 오르면 국내 주유소 가격은 물론이고 전반적인 물가가 상승하기 때문에, 미국과 이란의 전쟁상황은 결코 남의 나라 이야기로만 끝나는 것이 아니에요.


더불어 전쟁 위기감이 커지면 투자자들은 안전 자산인 금이나 달러로 몰리게 돼요.
이는 원·달러 환율의 급등을 유발하여 국내 기업들의 수입 부담을 가중시키고 경제 전반에 불확실성을 키우게 된답니다.
방산주나 에너지 관련 주식 시장이 크게 출렁이는 것도 바로 이러한 불안 심리 때문이에요.


Future Outlook

결론적으로 양측 모두 치명적인 피해를 피하고자 하므로 당장 내일 전면전이 일어날 확률은 낮다고 전문가들은 입을 모으고 있어요.
하지만 통제하기 힘든 무장 세력들이 얽혀 있는 만큼, 오판이나 우발적인 충돌이 큰 전쟁으로 번질 위험은 여전히 상존해요.
앞으로 미국과 이란의 전쟁상황이 어떻게 전개될지 국제 뉴스의 흐름을 꼼꼼하게 지켜볼 필요가 있겠습니다.






핵심 요약


현재 미국과 이란은 직접적인 전면전을 피한 채 서로의 대리 세력을 내세워 무력 충돌을 이어가는 '그림자 대리전' 양상을 보이고 있습니다. 양측 모두 확전을 자제하려 노력하고 있으나, 잦은 국지전으로 인한 우발적 확전 위험이 매우 높은 상태입니다. 이러한 중동의 위기는 국제 유가 상승과 환율 급등을 유발하여 물가 안정에 민감한 한국 경제에도 직접적인 타격을 주고 있습니다.







Related Keywords


#미국과이란의전쟁상황 #중동위기 #중동전쟁 #국제정세 #국제유가 #호르무즈해협 #대리전 #후티반군 #경제전망 #환율전망 #에너지수급




다른 제목 아이디어



  • 1[국제정세 분석] 현재 미국과 이란의 전쟁상황 총정리 및 향후 전망

  • 2미국과 이란의 전쟁상황, 중동 위기가 우리 경제와 유가에 미치는 영향

  • 3벼랑 끝 대치? 알기 쉽게 정리한 미국과 이란의 전쟁상황 원인과 결과






Keyword Insight: 미국과 이란의 전쟁상황






오늘의 이야기


#billcorea #운동동아리관리앱
🏸 श्नीडल, बैडमिंटन क्लबों के लिए एक आवश्यक ऐप!
👉 मैच खेलें - स्कोर रिकॉर्ड करें और विरोधियों को खोजें 🎉
कहीं भी, अकेले, दोस्तों के साथ, या क्लब में बिल्कुल सही! 🤝
अगर आपको बैडमिंटन पसंद है तो इसे जरूर ट्राई करें

ऐप पर जाएं 👉 https://play.google.com/store/apps/details?id=com.billcorea.matchplay




오늘의 이야기


#스하리1000명프로젝트,
한국에서 길을 잃었나요? 한국어를 못하더라도 이 앱을 사용하면 쉽게 돌아다닐 수 있습니다.
귀하의 언어로 말하면 귀하의 언어로 번역, 검색 및 결과가 표시됩니다.
여행자에게 좋습니다! 영어, 일본어, 중국어, 베트남어 등 10개 이상의 언어를 지원합니다.
지금 사용해 보세요!
https://play.google.com/store/apps/details?id=com.billcoreatech.opdgang1127




2026/05/11

오늘의 이야기


#스하리1000명프로젝트

오늘 내가 만든앱 하나 알려주고 싶어, 이 앱은 알림수집기 라고 이름을 붙였는 데,
내 폰에 표시 되는 알림을 읽어서 내가 지정한 단어가 들어 있고, 지출기록을 남겨야 하는 알림이
있으면 수집하고, 카카오톡으로 친구에게 전달해 주는 기능을 구현해 줄꺼야. 📲

이번 패치에서는 하루 한번 지정한 시간에 나에게 알림(노티) 하도록 기능을 추가 했어. 🙏
한번 써보고 불편한 거 있으면 말해줘.

앱 바로가기
👉 https://play.google.com/store/apps/details?id=com.nari.notify2kakao





오늘의 이야기


#스하리1000명프로젝트,
कभी-कभी विदेशी कामगारों से बात करना कठिन होता है, है ना?
मैंने एक सरल ऐप बनाया है जो मदद करता है! आप अपनी भाषा में लिखते हैं, और दूसरे इसे अपनी भाषा में देखते हैं।
यह सेटिंग्स के आधार पर स्वचालित अनुवाद करता है।
आसान चैट के लिए बहुत उपयोगी। जब मौका मिले तो देख लेना!
https://play.google.com/store/apps/details?id=com.billcoreatech.multichat416




오늘의 이야기


#billcorea #운동동아리관리앱
🏸 Schneedle, aplikasi mesti ada untuk kelab badminton!
👉 Main Perlawanan – Rekod Markah & Cari Lawan 🎉
Sesuai untuk mana-mana sahaja, bersendirian, bersama rakan-rakan atau dalam kelab! 🤝
Jika anda suka badminton, pasti mencubanya

Pergi ke aplikasi 👉 https://play.google.com/store/apps/details?id=com.billcorea.matchplay




오늘의 이야기


#스하리1000명프로젝트,
A volte è difficile parlare con i lavoratori stranieri, vero?
Ho realizzato una semplice app che aiuta! Scrivi nella tua lingua e gli altri lo vedono nella loro.
Si traduce automaticamente in base alle impostazioni.
Super pratico per chat facili. Dai un'occhiata quando ne hai la possibilità!
https://play.google.com/store/apps/details?id=com.billcoreatech.multichat416




오늘의 이야기


#스하리1000명프로젝트

오늘 내가 만든앱 하나 알려주고 싶어, 이 앱은 알림수집기 라고 이름을 붙였는 데,
내 폰에 표시 되는 알림을 읽어서 내가 지정한 단어가 들어 있고, 지출기록을 남겨야 하는 알림이
있으면 수집하고, 카카오톡으로 친구에게 전달해 주는 기능을 구현해 줄꺼야. 📲

이번 패치에서는 하루 한번 지정한 시간에 나에게 알림(노티) 하도록 기능을 추가 했어. 🙏
한번 써보고 불편한 거 있으면 말해줘.

앱 바로가기
👉 https://play.google.com/store/apps/details?id=com.nari.notify2kakao





오늘의 이야기


#스하리1000명프로젝트

오늘 내가 만든앱 하나 알려주고 싶어, 이 앱은 알림수집기 라고 이름을 붙였는 데,
내 폰에 표시 되는 알림을 읽어서 내가 지정한 단어가 들어 있고, 지출기록을 남겨야 하는 알림이
있으면 수집하고, 카카오톡으로 친구에게 전달해 주는 기능을 구현해 줄꺼야. 📲

이번 패치에서는 하루 한번 지정한 시간에 나에게 알림(노티) 하도록 기능을 추가 했어. 🙏
한번 써보고 불편한 거 있으면 말해줘.

앱 바로가기
👉 https://play.google.com/store/apps/details?id=com.nari.notify2kakao





오늘의 이야기

자기 성찰 타로 상담 앱 실행 로드맵 (MVP 기준, AI 적용준비 포함)




1) 제품 방향



  • 제품 한 줄 정의: 예언이 아니라, 사용자의 감정과 생각을 비추는 자기 성찰형 타로 상담 앱

  • 앱 목표: 카드 해석, 상담형 질문, 저널 기록, 치유 메시지를 통해 감정 탐색과 정서적 안정을 돕는다.

  • 핵심 사용자: 감정 정리가 필요한 사용자, 가벼운 셀프 상담을 원하는 사용자, 타로를 심리적 도구로 쓰고 싶은 사용자

  • 핵심 가치: 자기 성찰, 정서적 안정, 기록 습관, 감정 탐색, 치유 경험


2) MVP 범위 (필수)



  • 랜덤 카드 추출 (공정한 무작위 셔플)

  • 스프레드: 1장 / 3장 우선 구현

  • 해석 엔진: 카드 의미 + 사용자 질문 맥락 기반 상담 메시지 생성

  • 저널링: 상담 내용 저장/조회, 회고 기록

  • 세션 종료 치유 콘텐츠: 긍정 확언(Affirmation), 명상/호흡 메시지


3) 사용자 경험 흐름



  1. 홈에서 오늘의 질문 선택

  2. 스프레드 선택 후 카드 추출

  3. 카드 해석 + 공감형 상담 메시지 확인

  4. 후속 질문에 사용자 응답 입력

  5. 저널 저장

  6. 확언/명상 메시지 확인 후 세션 종료


4) 기능 설계 요약


4-1. 콘텐츠/데이터



  • 카드 정보: 카드명, 키워드, 정/역방향 의미, 확언, 명상 문구

  • 저널 정보: 질문, 선택 카드, 해석 요약, 상담 메시지, 사용자 회고, 감정 태그, 생성 시각


4-2. 해석 엔진 원칙



  • 입력: 사용자 질문 + 선택 카드 + 모드(개인용/상담 모드)

  • 처리: 카드 의미 추출 -> 질문 맥락 분류 -> 조합 해석 -> 상담 메시지 -> 후속 질문 생성

  • 출력: 해석 결과, 후속 질문, 확언 문구

  • 중요 가이드: 미래 예언형 문장 금지, 감정 탐색/자기 이해 중심 어조 유지


4-3. UI/UX



  • 기본 플로우: 카드 뽑기 -> 해석 -> 상담 질문 -> 기록 -> 치유 메시지

  • 화면 후보: Home, DrawCard, Reading, Counseling, Journal, Meditation

  • 디자인 방향: 안정감 있는 색감, 부드러운 애니메이션, 공감형 문구 중심


5) 기술/구조 계획



  • 기술 스택: Kotlin, Jetpack Compose, Coroutines, Navigation

  • 로컬 데이터: Room 기반 카드/저널 저장

  • DI: Hilt 도입 검토(MVP 초기에는 단순 구조 우선, 복잡도 증가 시 적용)

  • 아키텍처: 현재 단순 Compose 구조 유지, 이후 Presentation/Domain/Data 레이어로 점진 분리


6) 비기능 요구사항



  • 오프라인에서도 카드 조회/저널 저장 동작

  • 첫 화면 진입 속도 목표: 2초 내

  • 문구 품질: 비판적 표현 없이 중립적/공감적 톤 유지

  • UX 품질: 불안 조장 표현 지양, 안정감 있는 경험 유지


7) 8주 실행 일정(초안)



  • 1주차: 기획 확정, 와이어프레임, DB 스키마 정의

  • 2주차: Navigation/데이터 계층 기초, Room 세팅

  • 3주차: 카드 셔플/추출 + 1장/3장 스프레드

  • 4주차: 해석 화면 + 해석 엔진 1차 연결

  • 5주차: 상담 질문 흐름 + 사용자 입력 UI

  • 6주차: 저널 저장/조회 + 확언/명상 화면

  • 7주차: 디자인 보정, 문구 튜닝, QA

  • 8주차: MVP 배포 및 베타 피드백 수집


8) 출시 후 확장 백로그



  • 스프레드 확장: 5장, 켈틱 크로스

  • 감정 태그 기반 개인화 리포트

  • AI 기반 맞춤형 상담 강화

  • 커뮤니티 기능(경험 공유)

  • 전문가/상담가 연계 세션


9) 핵심 메시지



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



10) 현재 구현 상태 점검 (코드 기준, 2026-03-16)



  • 홈 화면 기본 구성(브랜드/히어로/메뉴/상단 앱바) 구현

  • Home -> ReadingList -> ReadingDetail Navigation 기본 흐름 구현

  • 앱 시작 시 raw/hanbok_prompt.txt 기반 Room 초기 적재 구현

  • raw/tarot_app_cards_ko.json 기반 카드 한글명/키워드/의미 보강 로직 구현

  • 리딩 목록에서 카드 이미지 + 한글 프롬프트 요약 + 상세 이동 구현

  • 리딩 상세에서 한글/영문 프롬프트, 키워드, 의미 전체 스크롤 조회 구현

  • 스프레드 선택(1장/3장) 전용 화면/상태 모델 고정

  • 카드 드로우(중복 없는 랜덤 선택) 세션 플로우 구현

  • 상담 입력(Counseling) 화면 및 후속 질문 플로우 구현

  • Journal Entity/DAO/저장-목록-상세 흐름 구현

  • 세션 종료용 확언/명상(Meditation) 화면 구현


11) Home 이후 실행 체크리스트 (우선순위 + DoD)


P0 (이번 스프린트 필수)



  • 스프레드 선택 흐름 고정 (1장, 3장)

  • 카드 추출(셔플/중복 없는 랜덤 선택) 완료

  • 리딩 결과 화면에서 선택 카드 + 질문 + 해석 요약 표시

  • 홈 -> 스프레드 -> 드로우 -> 리딩 단일 플로우 완성


완료 기준(DoD)



  • 홈에서 시작해 리딩 결과까지 한 번에 이동 가능

  • 시스템 뒤로가기 시 흐름이 깨지지 않음


P1 (P0 직후)



  • 상담 질문 1~2개 입력 화면 연결

  • 세션 결과를 Journal로 저장

  • Journal 목록/상세 조회 연결

  • 상세 화면에서 한글 데이터/카드 이미지/본문 전체 확인 가능


완료 기준(DoD)



  • 리딩 -> 상담 입력 -> 저널 저장 -> 목록/상세 조회까지 끊김 없음


P2 (품질/마무리)



  • 세션 종료용 확언/명상 화면 연결

  • 빈 상태/오류 상태 문구 정리

  • 오탈자/한국어 톤(자연스러운 번역) 최종 점검

  • 릴리즈 전 QA 체크리스트 정리


12) 2주 스프린트 실행안


Week 1: 핵심 플로우 고정



  • Route/인자 규칙 확정 (spreadType, sessionId)

  • Draw + Reading 구현 마무리

  • ViewModel 세션 상태(spreadType, selectedCardIds, userQuestion) 고정

  • 더미 문구 제거 및 실제 데이터 연결


반영 메모 (2026-03-17)



  • Reading 요약이 카드 DB의 keywords / meanings / 사용자 질문을 기반으로 생성되도록 연결

  • Meditation 마무리 문구와 확언이 선택 카드/감정 태그 기반 파생 문구를 사용하도록 전환

  • 최근 기록 카드가 날짜/감정 태그뿐 아니라 실제 질문/요약/선택 카드명을 노출하도록 보강


Week 2: 세션 완결 + QA



  • Counseling 입력 흐름 연결

  • Journal 저장/목록/상세 완성

  • Meditation(확언/명상) 종료 화면 연결

  • 리소스 매핑/오류 처리/빈 상태/문구 톤 최종 점검


13) 오늘 바로 시작할 작업 (1 -> 2 순서)



  1. Route/인자 표 확정

  2. Draw/Reading 상태 모델 고정

  3. 리딩 결과 화면 최소 스펙(카드/요약/다음 액션) 잠금

  4. Journal 저장 스키마 + DAO 쿼리 확정


13-1) Route/인자 표 확정



  • 목표: Navigation 계약을 먼저 고정해 화면 연결 재작업을 줄인다.

  • 세부 작업

    • 라우트 후보 확정: Home, SpreadSelect, Draw, Reading, Counseling, JournalList, JournalDetail, Meditation

    • 인자 분류: 필수/선택/없음 (spreadType, sessionId, journalId)

    • 뒤로가기/딥링크 대응 기준 정리



  • 산출물: Route/인자 표 v1 + TarotNavRoutes 반영 기준

  • 완료 기준(DoD): 모든 화면의 인자 규칙이 문서와 코드에서 동일

  • 예상 소요: 1.5 ~ 2시간
























































route 인자 타입 필수 예시
home - - - home
draw/{spreadType} spreadType String Y draw/three_card
reading/{sessionId} sessionId Long Y reading/1710572400000
counseling/{sessionId} sessionId Long Y counseling/1710572400000
journal/detail/{journalId} journalId Long Y journal/detail/42
meditation?sessionId={sessionId} sessionId Long N meditation?sessionId=1710572400000

13-2) Draw/Reading 상태 모델 고정



  • 목표: ViewModel 단일 상태원천(SSOT)으로 Draw와 Reading을 일관되게 연결한다.

  • 세부 작업

    • TarotViewModel에 세션 상태 필드 정의

    • 이벤트 목록 확정 (onSpreadSelected, onQuestionChanged, drawCards, clearSession)

    • UI 로컬 상태와 ViewModel 상태 경계 명시



  • 산출물: SessionState 필드 표 v1 + 이벤트 계약

  • 완료 기준(DoD): Draw/Reading이 동일 상태 모델을 참조하고 상태 전달이 끊기지 않음

  • 예상 소요: 2 ~ 3시간





























































필드명 타입 용도 갱신 시점
sessionId Long? 세션 식별자 스프레드 시작 시 생성
spreadType String one_card/three_card 구분 스프레드 선택 시
userQuestion String 사용자 질문 원문 홈/상담 입력 시
selectedCardIds List 중복 없는 카드 번호 Draw 완료 시
readingSummary String 리딩 요약 Reading 계산 후
nextAction String 다음 CTA 분기 Reading 진입 시
isLoading Boolean 로딩 상태 Draw/저장 중
errorMessage String? 에러 노출 실패 시

13-3) 리딩 결과 화면 최소 스펙 잠금



  • 목표: P0 범위를 고정해 과도한 화면 확장을 방지한다.

  • 세부 작업

    • 필수 UI 3요소 고정: 선택 카드 썸네일, 요약 텍스트(24줄), 다음 액션 버튼(12개)

    • P1 이관 항목 분리: 심화 해석/부가 텍스트

    • 빈 상태/오류 상태 문구 확정



  • 산출물: Reading 최소 스펙 체크리스트

  • 완료 기준(DoD): 리딩 진입 시 필수 3요소가 항상 보이고 다음 화면 이동이 일관됨

  • 예상 소요: 1.5 ~ 2.5시간


13-4) Journal 저장 스키마 + DAO 쿼리 확정



  • 목표: 세션 저장/조회의 DB 계약을 먼저 고정한다.

  • 세부 작업

    • JournalEntity 필드 확정 (질문, 카드목록, 요약, 상담응답, 감정태그, 생성시각)

    • JournalDao 최소 쿼리 확정 (insert, list, detail, recent)

    • TarotDatabase 버전 업 및 마이그레이션 정책 결정



  • 산출물: JournalEntity/JournalDao 설계표 v1

  • 완료 기준(DoD): 저장 1건/목록 조회/상세 조회를 커버하는 쿼리 셋 정의 완료

  • 예상 소요: 2 ~ 3시간


추가 반영 메모 (2026-03-17)



  • TarotRepositoryDataSource 도입으로 TarotViewModel JVM 단위 테스트 가능 구조로 정리

  • MainDispatcherRule, TarotViewModelTest 추가로 리딩 요약 생성 / Journal 저장 회귀 검증 자동화

  • JournalDaoTest 추가로 최신순 목록 / 상세 조회 / DB 재오픈 후 데이터 유지 검증

  • MIGRATION_4_5 명시적 Room 마이그레이션 추가

  • DB 정책: 4 -> 5는 비파괴 마이그레이션 적용, 1~3 구버전은 destructive fallback 유지


14) QA 체크리스트 문서



  • MVP QA 체크리스트 작성: documents/qa_checklist_mvp.md


15) QA/테스트/마이그레이션 진행 상태 (2026-03-17)



  • TarotViewModel 최소 회귀 테스트 추가

  • JournalDao 저장/조회/재오픈 테스트 추가

  • TarotDatabase 4 -> 5 마이그레이션 정책 코드 반영 및 테스트 추가

  • 시스템 뒤로가기 동작을 BackHandler로 세션/저널/프롬프트 화면에 명시적 반영

  • 명상/확언 문구 톤을 차분한 반성형 문장으로 보강하고 테스트 추가

  • 기본 테마를 medium contrast 색상표와 surfaceContainer* 계열 배경으로 조정해 다크/라이트 대비 보강


16) 코드 품질 정리 (2026-03-17)



  • JournalScreens.kt CardDetailBlock: 영문 카드명 중복 표시 버그 수정 → cardNameKo 우선 주 타이틀, 영문명은 부제목으로 분리

  • TarotSummaryScreen.kt: 홈 화면 Journal 직접 이동 버튼 복원 (EditNote 아이콘, 3 Card Spread 아래 배치)

  • TarotSessionFlowScreens.kt: 미사용 SimpleTodoScreen 제거

  • TarotReadingScreens.kt: 미사용 private DetailCard 제거

  • TarotViewModel.kt: 미사용 public observeJournalDetail / clearSessionError 제거

  • TarotViewModel.kt buildReadingSummary: 카드명을 cardNameKo 우선 사용으로 리딩 요약 문구 한국어화


17) 온디바이스 AI Edge/MediaPipe LLM 적용 계획 (2026-03-20)


17-1) 요구사항 체크리스트 (사용자 요청 5개)





    1. Google AI Edge / MediaPipe LLM 적용





    1. 사용자가 입력한 오늘의 질문 이해(의도/주제 파악)





    1. 질문과 카드 keywords/meanings 연관도 기반 카드 선택





    1. 선택 카드 해석 메시지 생성





    1. 리딩 종료 후 선택 카드 meanings 기반 확언 문장 생성




17-2) 단계별 실행 (준비 -> 설계 -> 구현 -> 검증 -> 배포)



  1. 준비

    • AI Edge/MediaPipe LLM 의존성/ABI/최소 기기 제약 확인

    • MainActivity IMMEDIATE 업데이트 플로우와 AI 초기화 순서 충돌 방지 정책 확정



  2. 설계

    • ai 패키지에 엔진 인터페이스(TarotAiService) + 폴백 엔진 정의

    • 질문 분석 -> 카드 점수화 -> 해석 생성 -> 확언 생성 파이프라인 설계



  3. 구현

    • TarotViewModel.drawCards()에 질문 기반 카드 선택 적용

    • 리딩 요약/해석 메시지를 AI 서비스 출력으로 전환

    • 명상 마무리 화면 확언을 AI 생성 결과 우선 사용



  4. 검증

    • JVM 테스트: 질문-카드 매칭, 해석 문구, 확언 생성, AI 실패 시 폴백 회귀

    • 성능 기준: 추론/생성 체감 지연과 로딩 UX 점검



  5. 배포

    • 기능 플래그로 단계적 활성화(폴백 엔진 기본값 유지)

    • IMMEDIATE 업데이트 취소/실패 시 AI 기능 안전 비활성화 시나리오 점검




17-3) 산출물



  • working_plan.md AI 도입 계획 + 진행 체크리스트

  • app/src/main/java/com/billcorea/koreantarot0312/ai/ AI 서비스 계층

  • TarotViewModel 질문 기반 카드 선택/해석/확언 통합

  • app/src/test 회귀 테스트(질문 이해/카드 선택/확언)


17-4) 리스크 및 완화



  • 리스크: 온디바이스 LLM 초기화 지연 -> 완화: 규칙 기반 즉시 폴백 유지

  • 리스크: 생성 문장 편차 -> 완화: 톤 가드레일 + 템플릿 후처리

  • 리스크: 업데이트 플로우와 동시 초기화 충돌 -> 완화: 업데이트 체크 이후 AI 지연 초기화

  • 리스크: 앱 용량 증가 -> 완화: 경량 모델 우선 + 단계적 배포


17-5) 오늘 바로 시작할 작업 (착수)



  • working_plan.md에 AI 5요구 실행 계획 반영

  • ai 패키지에 TarotAiService + 규칙 기반 기본 구현 추가

  • TarotViewModel에 질문 기반 카드 선택/해석/확언 연결 시작

  • 명상 화면에서 AI 확언 우선 노출 연결

  • AI Edge/MediaPipe LLM 실제 엔진 어댑터 추가 및 Hilt 교체

    자기 성찰 타로 상담 앱 실행 로드맵 (MVP 기준)




1) 제품 방향



  • 제품 한 줄 정의: 예언이 아니라, 사용자의 감정과 생각을 비추는 자기 성찰형 타로 상담 앱

  • 앱 목표: 카드 해석, 상담형 질문, 저널 기록, 치유 메시지를 통해 감정 탐색과 정서적 안정을 돕는다.

  • 핵심 사용자: 감정 정리가 필요한 사용자, 가벼운 셀프 상담을 원하는 사용자, 타로를 심리적 도구로 쓰고 싶은 사용자

  • 핵심 가치: 자기 성찰, 정서적 안정, 기록 습관, 감정 탐색, 치유 경험


2) MVP 범위 (필수)



  • 랜덤 카드 추출 (공정한 무작위 셔플)

  • 스프레드: 1장 / 3장 우선 구현

  • 해석 엔진: 카드 의미 + 사용자 질문 맥락 기반 상담 메시지 생성

  • 저널링: 상담 내용 저장/조회, 회고 기록

  • 세션 종료 치유 콘텐츠: 긍정 확언(Affirmation), 명상/호흡 메시지


3) 사용자 경험 흐름



  1. 홈에서 오늘의 질문 선택

  2. 스프레드 선택 후 카드 추출

  3. 카드 해석 + 공감형 상담 메시지 확인

  4. 후속 질문에 사용자 응답 입력

  5. 저널 저장

  6. 확언/명상 메시지 확인 후 세션 종료


4) 기능 설계 요약


4-1. 콘텐츠/데이터



  • 카드 정보: 카드명, 키워드, 정/역방향 의미, 확언, 명상 문구

  • 저널 정보: 질문, 선택 카드, 해석 요약, 상담 메시지, 사용자 회고, 감정 태그, 생성 시각


4-2. 해석 엔진 원칙



  • 입력: 사용자 질문 + 선택 카드 + 모드(개인용/상담 모드)

  • 처리: 카드 의미 추출 -> 질문 맥락 분류 -> 조합 해석 -> 상담 메시지 -> 후속 질문 생성

  • 출력: 해석 결과, 후속 질문, 확언 문구

  • 중요 가이드: 미래 예언형 문장 금지, 감정 탐색/자기 이해 중심 어조 유지


4-3. UI/UX



  • 기본 플로우: 카드 뽑기 -> 해석 -> 상담 질문 -> 기록 -> 치유 메시지

  • 화면 후보: Home, DrawCard, Reading, Counseling, Journal, Meditation

  • 디자인 방향: 안정감 있는 색감, 부드러운 애니메이션, 공감형 문구 중심


5) 기술/구조 계획



  • 기술 스택: Kotlin, Jetpack Compose, Coroutines, Navigation

  • 로컬 데이터: Room 기반 카드/저널 저장

  • DI: Hilt 도입 검토(MVP 초기에는 단순 구조 우선, 복잡도 증가 시 적용)

  • 아키텍처: 현재 단순 Compose 구조 유지, 이후 Presentation/Domain/Data 레이어로 점진 분리


6) 비기능 요구사항



  • 오프라인에서도 카드 조회/저널 저장 동작

  • 첫 화면 진입 속도 목표: 2초 내

  • 문구 품질: 비판적 표현 없이 중립적/공감적 톤 유지

  • UX 품질: 불안 조장 표현 지양, 안정감 있는 경험 유지


7) 8주 실행 일정(초안)



  • 1주차: 기획 확정, 와이어프레임, DB 스키마 정의

  • 2주차: Navigation/데이터 계층 기초, Room 세팅

  • 3주차: 카드 셔플/추출 + 1장/3장 스프레드

  • 4주차: 해석 화면 + 해석 엔진 1차 연결

  • 5주차: 상담 질문 흐름 + 사용자 입력 UI

  • 6주차: 저널 저장/조회 + 확언/명상 화면

  • 7주차: 디자인 보정, 문구 튜닝, QA

  • 8주차: MVP 배포 및 베타 피드백 수집


8) 출시 후 확장 백로그



  • 스프레드 확장: 5장, 켈틱 크로스

  • 감정 태그 기반 개인화 리포트

  • AI 기반 맞춤형 상담 강화

  • 커뮤니티 기능(경험 공유)

  • 전문가/상담가 연계 세션


9) 핵심 메시지



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



10) 현재 구현 상태 점검 (코드 기준, 2026-03-16)



  • 홈 화면 기본 구성(브랜드/히어로/메뉴/상단 앱바) 구현

  • Home -> ReadingList -> ReadingDetail Navigation 기본 흐름 구현

  • 앱 시작 시 raw/hanbok_prompt.txt 기반 Room 초기 적재 구현

  • raw/tarot_app_cards_ko.json 기반 카드 한글명/키워드/의미 보강 로직 구현

  • 리딩 목록에서 카드 이미지 + 한글 프롬프트 요약 + 상세 이동 구현

  • 리딩 상세에서 한글/영문 프롬프트, 키워드, 의미 전체 스크롤 조회 구현

  • 스프레드 선택(1장/3장) 전용 화면/상태 모델 고정

  • 카드 드로우(중복 없는 랜덤 선택) 세션 플로우 구현

  • 상담 입력(Counseling) 화면 및 후속 질문 플로우 구현

  • Journal Entity/DAO/저장-목록-상세 흐름 구현

  • 세션 종료용 확언/명상(Meditation) 화면 구현


11) Home 이후 실행 체크리스트 (우선순위 + DoD)


P0 (이번 스프린트 필수)



  • 스프레드 선택 흐름 고정 (1장, 3장)

  • 카드 추출(셔플/중복 없는 랜덤 선택) 완료

  • 리딩 결과 화면에서 선택 카드 + 질문 + 해석 요약 표시

  • 홈 -> 스프레드 -> 드로우 -> 리딩 단일 플로우 완성


완료 기준(DoD)



  • 홈에서 시작해 리딩 결과까지 한 번에 이동 가능

  • 시스템 뒤로가기 시 흐름이 깨지지 않음


P1 (P0 직후)



  • 상담 질문 1~2개 입력 화면 연결

  • 세션 결과를 Journal로 저장

  • Journal 목록/상세 조회 연결

  • 상세 화면에서 한글 데이터/카드 이미지/본문 전체 확인 가능


완료 기준(DoD)



  • 리딩 -> 상담 입력 -> 저널 저장 -> 목록/상세 조회까지 끊김 없음


P2 (품질/마무리)



  • 세션 종료용 확언/명상 화면 연결

  • 빈 상태/오류 상태 문구 정리

  • 오탈자/한국어 톤(자연스러운 번역) 최종 점검

  • 릴리즈 전 QA 체크리스트 정리


12) 2주 스프린트 실행안


Week 1: 핵심 플로우 고정



  • Route/인자 규칙 확정 (spreadType, sessionId)

  • Draw + Reading 구현 마무리

  • ViewModel 세션 상태(spreadType, selectedCardIds, userQuestion) 고정

  • 더미 문구 제거 및 실제 데이터 연결


반영 메모 (2026-03-17)



  • Reading 요약이 카드 DB의 keywords / meanings / 사용자 질문을 기반으로 생성되도록 연결

  • Meditation 마무리 문구와 확언이 선택 카드/감정 태그 기반 파생 문구를 사용하도록 전환

  • 최근 기록 카드가 날짜/감정 태그뿐 아니라 실제 질문/요약/선택 카드명을 노출하도록 보강


Week 2: 세션 완결 + QA



  • Counseling 입력 흐름 연결

  • Journal 저장/목록/상세 완성

  • Meditation(확언/명상) 종료 화면 연결

  • 리소스 매핑/오류 처리/빈 상태/문구 톤 최종 점검


13) 오늘 바로 시작할 작업 (1 -> 2 순서)



  1. Route/인자 표 확정

  2. Draw/Reading 상태 모델 고정

  3. 리딩 결과 화면 최소 스펙(카드/요약/다음 액션) 잠금

  4. Journal 저장 스키마 + DAO 쿼리 확정


13-1) Route/인자 표 확정



  • 목표: Navigation 계약을 먼저 고정해 화면 연결 재작업을 줄인다.

  • 세부 작업

    • 라우트 후보 확정: Home, SpreadSelect, Draw, Reading, Counseling, JournalList, JournalDetail, Meditation

    • 인자 분류: 필수/선택/없음 (spreadType, sessionId, journalId)

    • 뒤로가기/딥링크 대응 기준 정리



  • 산출물: Route/인자 표 v1 + TarotNavRoutes 반영 기준

  • 완료 기준(DoD): 모든 화면의 인자 규칙이 문서와 코드에서 동일

  • 예상 소요: 1.5 ~ 2시간
























































route 인자 타입 필수 예시
home - - - home
draw/{spreadType} spreadType String Y draw/three_card
reading/{sessionId} sessionId Long Y reading/1710572400000
counseling/{sessionId} sessionId Long Y counseling/1710572400000
journal/detail/{journalId} journalId Long Y journal/detail/42
meditation?sessionId={sessionId} sessionId Long N meditation?sessionId=1710572400000

13-2) Draw/Reading 상태 모델 고정



  • 목표: ViewModel 단일 상태원천(SSOT)으로 Draw와 Reading을 일관되게 연결한다.

  • 세부 작업

    • TarotViewModel에 세션 상태 필드 정의

    • 이벤트 목록 확정 (onSpreadSelected, onQuestionChanged, drawCards, clearSession)

    • UI 로컬 상태와 ViewModel 상태 경계 명시



  • 산출물: SessionState 필드 표 v1 + 이벤트 계약

  • 완료 기준(DoD): Draw/Reading이 동일 상태 모델을 참조하고 상태 전달이 끊기지 않음

  • 예상 소요: 2 ~ 3시간





























































필드명 타입 용도 갱신 시점
sessionId Long? 세션 식별자 스프레드 시작 시 생성
spreadType String one_card/three_card 구분 스프레드 선택 시
userQuestion String 사용자 질문 원문 홈/상담 입력 시
selectedCardIds List 중복 없는 카드 번호 Draw 완료 시
readingSummary String 리딩 요약 Reading 계산 후
nextAction String 다음 CTA 분기 Reading 진입 시
isLoading Boolean 로딩 상태 Draw/저장 중
errorMessage String? 에러 노출 실패 시

13-3) 리딩 결과 화면 최소 스펙 잠금



  • 목표: P0 범위를 고정해 과도한 화면 확장을 방지한다.

  • 세부 작업

    • 필수 UI 3요소 고정: 선택 카드 썸네일, 요약 텍스트(24줄), 다음 액션 버튼(12개)

    • P1 이관 항목 분리: 심화 해석/부가 텍스트

    • 빈 상태/오류 상태 문구 확정



  • 산출물: Reading 최소 스펙 체크리스트

  • 완료 기준(DoD): 리딩 진입 시 필수 3요소가 항상 보이고 다음 화면 이동이 일관됨

  • 예상 소요: 1.5 ~ 2.5시간


13-4) Journal 저장 스키마 + DAO 쿼리 확정



  • 목표: 세션 저장/조회의 DB 계약을 먼저 고정한다.

  • 세부 작업

    • JournalEntity 필드 확정 (질문, 카드목록, 요약, 상담응답, 감정태그, 생성시각)

    • JournalDao 최소 쿼리 확정 (insert, list, detail, recent)

    • TarotDatabase 버전 업 및 마이그레이션 정책 결정



  • 산출물: JournalEntity/JournalDao 설계표 v1

  • 완료 기준(DoD): 저장 1건/목록 조회/상세 조회를 커버하는 쿼리 셋 정의 완료

  • 예상 소요: 2 ~ 3시간


추가 반영 메모 (2026-03-17)



  • TarotRepositoryDataSource 도입으로 TarotViewModel JVM 단위 테스트 가능 구조로 정리

  • MainDispatcherRule, TarotViewModelTest 추가로 리딩 요약 생성 / Journal 저장 회귀 검증 자동화

  • JournalDaoTest 추가로 최신순 목록 / 상세 조회 / DB 재오픈 후 데이터 유지 검증

  • MIGRATION_4_5 명시적 Room 마이그레이션 추가

  • DB 정책: 4 -> 5는 비파괴 마이그레이션 적용, 1~3 구버전은 destructive fallback 유지


14) QA 체크리스트 문서



  • MVP QA 체크리스트 작성: documents/qa_checklist_mvp.md


15) QA/테스트/마이그레이션 진행 상태 (2026-03-17)



  • TarotViewModel 최소 회귀 테스트 추가

  • JournalDao 저장/조회/재오픈 테스트 추가

  • TarotDatabase 4 -> 5 마이그레이션 정책 코드 반영 및 테스트 추가

  • 시스템 뒤로가기 동작을 BackHandler로 세션/저널/프롬프트 화면에 명시적 반영

  • 명상/확언 문구 톤을 차분한 반성형 문장으로 보강하고 테스트 추가

  • 기본 테마를 medium contrast 색상표와 surfaceContainer* 계열 배경으로 조정해 다크/라이트 대비 보강


16) 코드 품질 정리 (2026-03-17)



  • JournalScreens.kt CardDetailBlock: 영문 카드명 중복 표시 버그 수정 → cardNameKo 우선 주 타이틀, 영문명은 부제목으로 분리

  • TarotSummaryScreen.kt: 홈 화면 Journal 직접 이동 버튼 복원 (EditNote 아이콘, 3 Card Spread 아래 배치)

  • TarotSessionFlowScreens.kt: 미사용 SimpleTodoScreen 제거

  • TarotReadingScreens.kt: 미사용 private DetailCard 제거

  • TarotViewModel.kt: 미사용 public observeJournalDetail / clearSessionError 제거

  • TarotViewModel.kt buildReadingSummary: 카드명을 cardNameKo 우선 사용으로 리딩 요약 문구 한국어화


17) 온디바이스 AI Edge/MediaPipe LLM 적용 계획 (2026-03-20)


17-1) 요구사항 체크리스트 (사용자 요청 5개)





    1. Google AI Edge / MediaPipe LLM 적용





    1. 사용자가 입력한 오늘의 질문 이해(의도/주제 파악)





    1. 질문과 카드 keywords/meanings 연관도 기반 카드 선택





    1. 선택 카드 해석 메시지 생성





    1. 리딩 종료 후 선택 카드 meanings 기반 확언 문장 생성




17-2) 단계별 실행 (준비 -> 설계 -> 구현 -> 검증 -> 배포)



  1. 준비

    • AI Edge/MediaPipe LLM 의존성/ABI/최소 기기 제약 확인

    • MainActivity IMMEDIATE 업데이트 플로우와 AI 초기화 순서 충돌 방지 정책 확정



  2. 설계

    • ai 패키지에 엔진 인터페이스(TarotAiService) + 폴백 엔진 정의

    • 질문 분석 -> 카드 점수화 -> 해석 생성 -> 확언 생성 파이프라인 설계



  3. 구현

    • TarotViewModel.drawCards()에 질문 기반 카드 선택 적용

    • 리딩 요약/해석 메시지를 AI 서비스 출력으로 전환

    • 명상 마무리 화면 확언을 AI 생성 결과 우선 사용



  4. 검증

    • JVM 테스트: 질문-카드 매칭, 해석 문구, 확언 생성, AI 실패 시 폴백 회귀

    • 성능 기준: 추론/생성 체감 지연과 로딩 UX 점검



  5. 배포

    • 기능 플래그로 단계적 활성화(폴백 엔진 기본값 유지)

    • IMMEDIATE 업데이트 취소/실패 시 AI 기능 안전 비활성화 시나리오 점검




17-3) 산출물



  • working_plan.md AI 도입 계획 + 진행 체크리스트

  • app/src/main/java/com/billcorea/koreantarot0312/ai/ AI 서비스 계층

  • TarotViewModel 질문 기반 카드 선택/해석/확언 통합

  • app/src/test 회귀 테스트(질문 이해/카드 선택/확언)


17-4) 리스크 및 완화



  • 리스크: 온디바이스 LLM 초기화 지연 -> 완화: 규칙 기반 즉시 폴백 유지

  • 리스크: 생성 문장 편차 -> 완화: 톤 가드레일 + 템플릿 후처리

  • 리스크: 업데이트 플로우와 동시 초기화 충돌 -> 완화: 업데이트 체크 이후 AI 지연 초기화

  • 리스크: 앱 용량 증가 -> 완화: 경량 모델 우선 + 단계적 배포


17-5) 오늘 바로 시작할 작업 (착수)



  • working_plan.md에 AI 5요구 실행 계획 반영

  • ai 패키지에 TarotAiService + 규칙 기반 기본 구현 추가

  • TarotViewModel에 질문 기반 카드 선택/해석/확언 연결 시작

  • 명상 화면에서 AI 확언 우선 노출 연결

  • AI Edge/MediaPipe LLM 실제 엔진 어댑터 추가 및 Hilt 교체





오늘의 이야기

#스치니1000프로젝트 #재미 #행운기원 #Compose #Firebase 🎯 야 너 토요일마다 로또 확인하냐? 나도 맨날 “혹시나~” 하면서 봤거든 ㅋㅋ 근데 이제는 그냥 안 해 AI한테 맡겼어 🤖✨ 그것도 구글 Gemini로다가! ...