미용 의료부터 관리 루틴까지, 개인의 추구미에 맞는 관리의 방향을 정리하고, 다운타임&일정 중복을 방지하는 뷰티 캘린더
- 피부 고민 키워드 기반 시술 리스트
- 시술 다운타임 설정 및 디데이 여유기간 시각화
- AI가 짜주는 챌린지 루틴 추천
- 챌린지 기반 체리 게이미피케이션
| Category | Stack |
|---|---|
| Language | Java 21 (Temurin) |
| Framework | Spring Boot 3.5.9 |
| ORM | Spring Data JPA, QueryDSL 5.1.0 |
| Database | PostgreSQL 17, H2 (Test) |
| AI | Spring AI OpenAI 1.1.2 |
| Documentation | SpringDoc OpenAPI 2.8.14 |
| Build | Gradle, Jib 3.5.2 |
| Infrastructure | AWS (VPC, EC2, RDS, ECR, SSM) |
| CI/CD | GitHub Actions (OIDC) |
| Web Server | Nginx + Let's Encrypt SSL |
1️⃣ Framework: Spring Boot 3.5.9
Spring Boot 4에 비해 충분히 검증된 안정화 버전이며, Spring AI와의 호환성 이슈가 없어 선택했습니다.
프로덕션 환경에서 검증된 버전을 사용하여 리스크를 최소화합니다.
2️⃣ Architecture: DDD 레이어드 아키텍처
도메인 중심의 설계로 비즈니스 로직과 기술적 관심사를 분리하여 유지보수성을 높였습니다.
Presentation - Application - Domain - Infrastructure 레이어로 구성됩니다.
3️⃣ Database: PostgreSQL 17
pgvector 등 벡터 검색 확장 기능으로 AI 챗봇 도입 시 유리하며, 복잡한 쿼리 처리 및 대용량 데이터 관리에 최적화되어 있습니다.
4️⃣ AI Integration: Spring AI OpenAI
Spring 생태계와 자연스럽게 통합되며, 다양한 AI 프로바이더로 쉽게 전환 가능한 추상화를 제공합니다.
5️⃣ Container: Jib
Dockerfile 없이 컨테이너 이미지를 빌드하며, 레이어 캐싱으로 빠른 증분 빌드를 지원합니다.
로컬 Docker 데몬 없이도 ECR에 직접 푸시가 가능합니다.
💫 Git Workflow
✍️ Code Style Guide
📂 Architecture Guide
🔌 API Convention
📝 Coding Guide
| 🤴김규일 @Kimgyuilli |
🍒조서영 @ssyoung02 |
|---|---|
![]() |
![]() |
📂 src/main/java/com.sopt.cherrish
┣ 📂 global # 공통 설정
┃ ┣ 📂 config # 전역 설정 (DB, Swagger 등)
┃ ┣ 📂 exception # 전역 예외 처리
┃ ┣ 📂 response # 공통 응답 형식
┃ ┣ 📂 entity # 공통 엔티티 (BaseEntity)
┃ ┗ 📂 annotation # 커스텀 어노테이션
┣ 📂 domain # 도메인 영역
┃ ┣ 📂 user # 사용자 관리
┃ ┃ ┣ 📂 presentation # Controller, DTO
┃ ┃ ┣ 📂 application # Service, Facade
┃ ┃ ┣ 📂 domain # Entity, Repository
┃ ┃ ┗ 📂 exception # 도메인별 예외
┃ ┣ 📂 procedure # 시술 정보
┃ ┣ 📂 userprocedure # 사용자 시술 일정
┃ ┣ 📂 challenge # 챌린지
┃ ┃ ┣ 📂 core # 핵심 챌린지 기능
┃ ┃ ┣ 📂 recommendation # AI 추천 기능
┃ ┃ ┗ 📂 demo # 데모용 기능
┃ ┣ 📂 calendar # 캘린더
┃ ┗ 📂 maindashboard # 메인 대시보드
┗ 📂 CherrishApplication.java
Made with by Cherrish Server Team




