오구리는 연차를 가장 효율적으로 쓰는 휴가 전략을 제안하는 서비스입니다.
- 모바일 앱: Kotlin Multiplatform + Compose Multiplatform (Android/iOS)
- 서버 API: Spring Boot + JPA + Flyway + PostgreSQL
- 웹: 공식 랜딩(
/) + 어드민(/admin) React/Vite 앱
Home: 연차 사용 대비 가장 좋은 휴식 조합 추천Calendar: 카드 기반 추천 일정 탐색 + 무한 스크롤MyPage: 저장한 일정/여행지 및 연차 설정 관리Admin Web: 여행지/사용자/공휴일 데이터 관리, 이미지 업로드 및 정리
- Kotlin
2.3.0 - Compose Multiplatform
1.10.0 - Ktor
3.3.3(모바일 네트워크 계층) - Spring Boot
3.4.3(서버) - PostgreSQL + Flyway
- React
18+ Vite6(웹)
flowchart LR
Mobile["composeApp (Android/iOS)"] --> Api["server (Spring Boot API)"]
Web["web (Official/Admin)"] --> Api
Api --> Db["PostgreSQL"]
Mobile --> Shared["shared (KMP shared module)"]
Api --> Shared
모바일 레이어 원칙:
data -> domain <- uidomain은 외부 레이어에 의존하지 않음ui는domain만 참조
.
├─ composeApp/ # KMP 모바일 앱 (Android/iOS 공용 UI 포함)
├─ iosApp/ # iOS 진입점(Xcode 프로젝트)
├─ server/ # Spring Boot API
├─ web/ # 공식 웹 + 어드민 웹
├─ shared/ # 공용 Kotlin 모듈
└─ guide/ # 팀 가이드(아키텍처/컨벤션/운영 문서)
![]() |
|
|---|---|
| 공백(최준서) | 비비(장민정) |
프로젝트가 마음에 드셨다면 이 저장소에 Star(⭐️)를 눌러주세요. 큰 힘이 됩니다.

