프로젝트 개요
밀리로그(MilyLog)는 가족 구성원이 일상의 소중한 순간을 사진과 글로 기록하고, 이를 월간 매거진 형태로 자동 발행하는 모바일 앱의 백엔드 시스템입니다. 바쁜 일상 속에서도 가족 간 소통을 이어갈 수 있도록 공유 코드 기반 가족 그룹, 사진 게시물, 매거진 자동 생성, 푸시 알림 등 핵심 기능을 제공합니다.
Kotlin과 Spring Boot 기반의 모노레포 구조로 설계하여 client-app(사용자 API), admin-app(관리자 API), domain(공유 도메인 모델) 세 모듈로 분리 운영합니다. QueryDSL을 활용한 동적 쿼리, JWT 기반 인증, AWS S3/SES 연동, 카카오·Apple 소셜 로그인, Toss Payments 결제 등 다양한 외부 서비스를 통합했습니다.
기능 플로우
주요 기능
- 소셜 로그인 및 인증: 카카오, Apple 소셜 로그인과 이메일/휴대폰 인증 코드 기반 본인 확인을 지원합니다.
JWT토큰 발급과Spring Security필터 체인으로 API 접근을 제어합니다. - 가족 그룹 관리: 공유 코드를 통해 가족 구성원을 초대하고, 소유자 위임·구성원 제외·그룹 정보 수정 등 가족 단위 권한 관리를 제공합니다. 매거진 마감일(closing day) 설정으로 발행 주기를 조절합니다.
- 사진 게시물 작성: 가족 구성원이 사진과 텍스트를 조합하여 게시물을 작성합니다.
AWS S3Presigned URL 방식으로 클라이언트에서 직접 이미지를 업로드하여 서버 부하를 최소화합니다. - 월간 매거진 자동 발행: 가족 구성원이 한 달간 작성한 게시물을 자동으로 모아 매거진 형태로 발행합니다. 작업 중(In-Work) 상태의 매거진을 자동 생성하고, 마감 시점에 최종 발행합니다.
- 결제 연동:
Toss PaymentsAPI를 연동하여 프리미엄 매거진 인쇄 등 유료 서비스 결제를 처리합니다. - 푸시 알림 관리: 관리자가 대상 그룹을 설정하고 푸시 알림을 발송할 수 있습니다. 발송 이력과 수신 그룹을 체계적으로 관리합니다.
- 관리자 시스템: 회원 조회·정지, 문의 답변, 약관 관리, 답변 템플릿, 역할 기반 접근 제어 등 운영에 필요한 관리 기능을 제공합니다.



