끼니 기록을 통한 건강 관리 지원 앱 사용자가 식사를 기록하면 AI가 식습관을 분석해 리포트를 제공하고, 캐릭터 성장·미션으로 건강한 식습관을 이어가도록 돕습니다.
- 끼니(식사) 기록: 식사 내용·사진을 기록하고 날짜별로 관리합니다.
- AI 식사 분석 & 리포트: 기록된 식사를 외부 AI 분석 서버로 분석해 식습관 리포트를 제공합니다.
- 캐릭터 성장 (게이미피케이션): 기록·미션 달성에 따라 캐릭터가 성장합니다.
- 끼니팝 미션: 미션 수행 기반의 리워드를 제공합니다.
- 소셜 로그인: 카카오·네이버 OAuth2 로그인 및 JWT 기반 인증을 지원합니다.
- 알림: Firebase Cloud Messaging(FCM) 기반 푸시 알림을 제공합니다.
- 홈 · 캘린더: 날짜별 식사 기록과 요약을 조회합니다.
- 관리자 기능: 관리자용 인증·관리 API를 제공합니다.
- Language: Java 17
- Framework: Spring Boot, Spring Security, Spring Data JPA, Spring AOP
- Auth: OAuth2 (카카오 · 네이버), JWT
- Database: PostgreSQL, Redis
- Storage: Cloudflare R2
- Email: AWS SES
- Push: Firebase Cloud Messaging (FCM)
- External API: OpenFeign (AI 분석 서버 연동)
- API Docs: Swagger (springdoc-openapi)
- Logging: Log4j2
- Build Tool: Gradle
- Deploy: Docker, Docker Compose, Cloudflare
- 각 도메인 패키지는 엔티티, DTO, 컨트롤러, 서비스, 리포지토리 등 하위 패키지를 포함
- Base package:
com.kkirok.server
src/
└── main/
└── java/com/kkirok/server
├── ServerApplication.java
├── global/ # auth(JWT·RBAC), common, external, firebase, swagger, webhook
└── domain/
├── member/ # 회원 · 소셜 로그인 · 인증
├── user/ # 사용자 · 권한(Role)
├── meal/ # 끼니(식사) 기록
├── report/ # AI 식사 분석 리포트
├── character/ # 캐릭터 (게이미피케이션)
├── kkinipop/ # 끼니팝 미션 · 리워드
├── home/ # 홈 · 캘린더
└── notification/ # 알림 (FCM)
- main: 배포 가능한 최종 코드만 관리합니다.
- dev: 개발 중인 기능을 통합하는 브랜치입니다.
- feat: 새로운 기능 개발 시 사용합니다. (예:
feat/meal) - fix: 버그 수정 시 사용합니다. (예:
fix/meal) - refactor: 코드 리팩토링 시 사용합니다. (예:
refactor/meal) - chore: 자잘한 수정이나 빌드를 할 때 사용합니다. (예:
chore/meal)
- 구현해야 하는 기능, 문제점, 예상 작업 항목 등을 이슈로 등록합니다.
- 이슈 템플릿을 참고하며, 제목 앞에 [타입/#이슈 번호]을 붙입니다. (예:
[Feat/#1] 끼니 기록 기능 구현) - 해당하는 라벨을 추가합니다.
- PR 템플릿을 참고하여 작성합니다.
- 제목 앞에 [타입][작성자]를 붙이고, 관련 이슈가 있다면 연결합니다. (예:
[FEAT][name]: 끼니 기록 기능 구현) - 코드 리뷰를 거친 후 dev 브랜치로 머지합니다.
|
|
|
| 김준용 | 김시아 |
| 유저·인증·끼니팝·알림 | 식사기록·분석·리포트 |