하루를 시간대별로 기록하고, 하나의 일기처럼 친구와 공유하는 일상 기록 SNS
기존 SNS의 과도한 연출과 비교 문화에 대한 대안으로 만들어진 일상 기록 공유 플랫폼의 백엔드 API 서버입니다.
🌐 Live API · https://snapy.api.krafte.net/
SNAPY는 "순간을 잘 꾸며 보여주는" 기존 SNS와 달리, 하루의 흐름을 시간대별로 기록하고 하나의 일기 형태로 공유하는 새로운 방식의 일상 기록 플랫폼입니다.
순간을 공유하는 것을 넘어 친구들과 함께 일상을 연결하는 경험을 제공하며, BeReal의 '진짜 일상' 개념에서 영감을 받아 더욱 발전시킨 서비스입니다.
과도한 연출과 비교 문화 대신, 진정성 있는 하루의 기록을 친구와 나눕니다.
| 구분 | 기술 |
|---|---|
| Language | Java 21 |
| Framework | Spring Boot 3.4.3, Spring Web, Spring Data JPA, Spring Security |
| Database | MySQL 8 |
| Auth | JWT (jjwt 0.12.5) |
| Storage | AWS S3 (Spring Cloud AWS) |
| Push | APNs (Pushy 0.15.4) |
| RPC | gRPC + Protocol Buffers (추천 서버 연동) |
| API Docs | SpringDoc OpenAPI (Swagger UI) |
| Build | Gradle |
| Infra | Docker, Docker Compose, GitHub Container Registry |
- Java 21 (JDK)
- MySQL 8
src/main/resources/application-secret-example.yml 을 참고하여 application-secret.yml 을 작성합니다.
cp src/main/resources/application-secret-example.yml src/main/resources/application-secret.ymlDB 접속 정보, JWT 시크릿, AWS S3, APNs 인증서 등 민감 정보를 채워 넣습니다.
# 의존성 설치 및 빌드
./gradlew build
# 애플리케이션 실행
./gradlew bootRun서버는 기본 http://localhost:8080 에서 실행됩니다.
서버 실행 후 Swagger UI에서 전체 API 명세를 확인할 수 있습니다.
http://localhost:8080/swagger-ui.html
src/main/java/com/gbsw/snapy/domain
├── auth # 인증/인가 (JWT)
├── users # 사용자
├── friends # 친구 관계
├── blocks # 사용자 차단
├── stories # 일기형 스토리
├── albums # 앨범 & 좋아요
├── photos # 사진
├── audios # 오디오
├── feed # 친구 피드
├── comments # 댓글
├── guestbook # 방명록
├── streaks # 스트릭 시스템
├── notifications # 알림
├── device # 디바이스 토큰 (푸시)
├── phone # 휴대폰 인증
├── contacts # 연락처
├── settings # 사용자 설정
└── health # 헬스 체크
GBSW · messi-of-coding (5명)
| 이름 | 역할 |
|---|---|
| 김은찬 | App / Design |
| 문종은 | Web / Design |
| 권재현 | Back-End |
| 강백호 | Back-End |
| 장은수 | Back-End |