Calculator는 단순한 계산기처럼 보이지만, 비밀번호(기본: 1111)를 입력하면 AI 연애 코칭 & 유틸리티 앱으로 변신하는 시크릿 앱입니다.
연인과의 관계 회복, 데이트 가이드, 추억 기록 등 다양한 기능을 제공합니다.
- 평소에는 완벽하게 작동하는 iOS 스타일 계산기입니다.
- 특정 비밀번호(1111) 입력 시
unlock애니메이션과 함께 메인 앱으로 진입합니다.
- 상담소: 연애 고민을 입력하면 AI(Kim/Ahn 페르소나)가 해결책을 제시합니다.
- 답변소 (
answer-guide):- 상황과 내 입장을 입력하면, 상대방의 MBTI에 최적화된 화해/답장 메시지를 생성해줍니다.
- 특징: 무조건 져주는 것이 아니라, 다정함을 유지하되 내 억울함과 감정을 예쁘게 녹여내는 화법을 구사합니다.
- 고스트 오버레이: 저장해둔 인생샷을 투명하게 띄워, 같은 구도로 사진을 찍을 수 있게 도와줍니다.
- 수평계: 자이로스코프를 이용해 완벽한 수평을 맞출 수 있습니다.
- 예시 사진: 기본 제공되는 포즈 가이드로 초보자도 쉽게 인생샷을 건질 수 있습니다.
- 연인의 사소한 취향(좋아하는 것, 싫어하는 것)을 기록하는 비밀 노트입니다.
- CRUD 기능: 노트 생성, 조회, 삭제가 가능하며 AWS DynamoDB에 안전하게 저장됩니다.
- 기념일과 가격대를 입력하면 AI가 센스 있는 선물을 추천해줍니다.
graph TD
User([User]) --> |App Interaction| Client["Frontend (React Native)"]
subgraph AWS Cloud
Client --> |API Request| APIG[API Gateway]
APIG --> |/crisis| L_Crisis[Crisis Handler]
APIG --> |/answer-guide| L_Answer[Answer Guide Handler]
APIG --> |/gift| L_Gift[Gift Handler]
APIG --> |/notes| L_Note[Note Handler]
L_Crisis --> |Auth| Cognito[Cognito]
L_Crisis & L_Answer & L_Gift --> |Prompt| OpenAI[OpenAI API]
L_Gift & L_Note --> |CRUD| DB[(DynamoDB)]
end
style Client fill:#EA6EB2,stroke:#333,stroke-width:2px,color:white
style APIG fill:#FF9900,stroke:#333,stroke-width:2px,color:white
style OpenAI fill:#00A67E,stroke:#333,stroke-width:2px,color:white
style DB fill:#3D48CC,stroke:#333,stroke-width:2px,color:white```
- Framework: React Native (CLI)
- Language: TypeScript
- State Management: Zustand
- Navigation: React Navigation (Stack/Tab)
- Features: Camera, Sensors (Gyroscope), Axios, Lottie Animations
- Platform: AWS Lambda (Node.js)
- Database: AWS DynamoDB
- Gateway: API Gateway
- AI: OpenAI API (GPT-4)
| 서비스 | Lambda 핸들러 | 역할 |
|---|---|---|
| AI 코칭 | crisis-handler |
고민 상담 솔루션 제공 |
| 답변 생성 | answer-guide-handler |
MBTI 기반 맞춤 메시지 생성 |
| 선물 추천 | gift-handler |
상황별 선물 추천 |
| 노트 저장 | note-handler |
노트 CRUD (DynamoDB 연동) |
프로젝트 루트(Frontend/.env)에 아래 키가 필수입니다.
# API 설정
API_BASE_URL=https://your-api-gateway-url.amazonaws.com/production
API_KEY=your-x-api-key-here # Note 기능 등 일부 API는 필수
# (선택) 로컬 개발 시 필요한 기타 키들...
### 2. 설치 (Installation)
```bash
# Frontend 의존성 설치
cd Frontend
npm install
# iOS 라이브러리 설치 (Mac Only)
cd ios
pod install# Metro Bundler 실행
npm start
# iOS 시뮬레이터
npm run ios
---
## ☁️ 백엔드 배포 (Backend Deployment)
백엔드 코드는 `Backend/aws` 폴더에 위치합니다.
### 배포 스크립트 실행
```bash
cd Backend/aws/scripts
# 실행 권한 부여
chmod +x deploy.sh
# 전체 배포 (Infrastructure + All Lambdas)
./deploy.sh새로운 라이브러리를 추가했거나 특정 함수만 업데이트하려면:
cd Backend/aws/lambda
./package.shnote-handler와 answer-guide-handler는 node_modules를 포함하여 패키징됩니다.
Q. 노트 저장이 안돼요 (403 Error)
.env파일에API_KEY가 올바르게 설정되어 있는지 확인하세요./notesAPI는 API Key가 필수입니다.
Q. 카메라 권한 오류
- 실제 기기에서 테스트하는 것을 권장합니다. 시뮬레이터에서는 카메라 기능이 제한될 수 있습니다.
Q. 빌드 실패 (Hermes/Pod 관련)
ios/Podfile.lock을 삭제하고pod install --repo-update를 시도해보세요.