GiftHub는 사용자들의 휴대폰에 분산된 모바일 상품권(기프티콘)을 통합 관리할 수 있도록 지원하는 백엔드 서버입니다.
상품권 자동 등록, 유효기간 알림, 공유 기능 등 실사용자의 관리 편의성과 기프티콘 소멸 방지를 목표로 설계되었습니다.
-
상품권 이미지 자동 등록
이미지 인식 → 정보 추출 → 유사도 검색 → 자동 등록까지 전체 파이프라인 자동화 -
유효기간 임박 알림
Spring Batch + FCM 기반의 정기 알림 발송 배치 시스템 구현 -
상품권 공유 및 사용 상태 관리
상품권의 공유/회수 상태, 유효성 정보 관리 -
OAuth2 기반 로그인 및 사용자 인증
Kakao, Google, Naver, Apple 계정을 통한 로그인 지원 + JWT 인증 -
Presigned URL 기반 이미지 업로드
S3 기반 비동기 이미지 업로드 처리로 서버 부하 최소화
| 분야 | 기술 |
|---|---|
| Language | Java 17 |
| Framework | Spring Boot, Spring Security, Spring Data JPA |
| Database | MySQL, Redis |
| Infra & DevOps | AWS (S3, CloudFront, EC2, RDS, Route53), GitHub Actions |
| Search | Elasticsearch |
| Notification | Firebase Cloud Messaging (FCM) |
gifthub-was/
├── domain/ # 도메인 계층 (Voucher, Member 등)
├── application/ # 서비스 로직
├── infrastructure/ # 외부 연동 (FCM, OAuth, S3 등)
├── global/ # 예외 처리, 응답 포맷, 설정 파일
└── docs/ # API 문서 및 ERD
GitHub Actions 기반의 테스트, 빌드, 배포 자동화
Slack, Sentry 연동을 통한 실시간 알림 및 장애 대응
# 1. 환경 변수 설정
cp .env.example .env
# 환경 변수 값을 채워주세요
# 2. 빌드 및 실행
./gradlew build
java -jar build/libs/gifthub-was.jar| 이름 | 역할 |
|---|---|
| 이진우 (jinlee1703) | 백엔드 개발, 배치 시스템, OAuth 인증, 인프라 구성, CI/CD |
| 정인희 (inh2613) | 백엔드 개발, ElasticSearch 연동, 인프라 구성 |
궁금한 사항이나 버그 제보는 Issues를 통해 남겨주세요!
