| 전유연 | 노창준 | 조영찬 | 이예나 |
|---|---|---|---|
@youyeon11 |
@geniusjun |
@yc3697 |
@lyemee |
- Spring Boot 3.5.3
- 애플리케이션 서버 (Java 17)
- MySQL 8.0.33
- RDBMS
- Redis
- 캐싱, Pub/Sub(실시간 데이터 전송), Refresh Token 관리
- AWS S3
- 레포지토리 업로드 저장소
- Nginx
- 서버 서빙, 리버스 프록시, 인증서 관리
- Certbot : 인증서 발급 자동화
- 배포 환경 : AWS EC2 (Ubuntu) + Nginx + Certbot
| Branch | 설명 |
|---|---|
main |
실제 배포(CI/CD)를 위한 브랜치입니다. |
develop |
실제 배포 전 기능을 개발하는 브랜치입니다. |
feature |
새로운 기능 구현을 위한 브랜치develop에서 분기 → develop으로 병합합니다. |
fix |
배포 전 기능 수정용 브랜치입니다. |
hotfix |
운영 중인 서비스에서 발생한 긴급 버그 수정용 브랜치입니다. |
모든 브랜치는 명확한 목적에 맞게 사용하며, 적절한 브랜치로 병합되어야 합니다.
| 예시: feat/13-kakao-login
[<Prefix>] <Description>의 양식을 준수하되, prefix는 commit message convention을 따릅니다.
| 예시: [feat] 카카오 로그인 구현
- PR 생성 시 24시간 이내에 확인을 요합니다.
develop브랜치로의 병합은 최소 1명 이상의 리뷰어 승인(Approve) 이 필요합니다.
<Prefix>: <Description> (#<Issue_Number>) 의 양식을 준수합니다.
- feat: 새로운 기능 구현
feat: 구글 로그인 API 기능 구현 (#11) - fix: 코드 오류 수정
fix: 회원가입 비즈니스 로직 오류 수정 (#10) - del: 불필요한 코드 삭제
del: 불필요한 import 제거 (#12) - docs: README나 wiki 등의 문서 개정
docs: 리드미 수정 (#14) - refactor: 내부 로직은 변경 하지 않고 기존의 코드를 개선하는 리팩터링
refactor: 코드 로직 개선 (#15) - chore: 의존성 추가, yml 추가와 수정, 패키지 구조 변경, 파일 이동 등의 작업
chore: yml 수정 (#21),chore: lombok 의존성 추가 (#22) - test: 테스트 코드 작성, 수정
test: 로그인 API 테스트 코드 작성 (#20)
전통적인 계층형 아키텍처(Layered Architecture) 구조를 기반으로 패키지를 구성합니다.
🔥hwaroak
┣ 📂.github
┃ ┣ 📂ISSUE_TEMPLATE # 이슈 템플릿
┃ ┣ 📂workflows # GitHub Actions 워크플로우 설정
┣ 📂nginx # Proxy/Nginx 설정
┃ ┣ 📂html
┣ 📂src
┃ ┗ 📂main
┃ ┣ 📂java
┃ ┃ ┗ 📂com
┃ ┃ ┗ 📂umc
┃ ┃ ┗ 📂hwaroak
┃ ┃ ┣ 📂service # 도메인별 핵심 비즈니스 로직
┃ ┃ ┣ 📂controller # API 엔드포인트(요청/응답 매핑)
┃ ┃ ┣ 📂config # 프로젝트 전역 설정(Security, Web 등)
┃ ┃ ┣ 📂converter # Entity ↔ DTO 변환 로직
┃ ┃ ┣ 📂domain # 전역적으로 사용하는 도메인
┃ ┃ ┃ ┣ 📂entity # JPA 엔티티(데이터베이스 매핑 클래스)
┃ ┃ ┣ 📂dto # 클라이언트와 주고받는 데이터 객체
┃ ┃ ┃ ┣ 📂request # 요청 DTO
┃ ┃ ┃ ┗ 📂response # 응답 DTO
┃ ┃ ┣ 📂exception # 전역 예외 정의 및 처리
┃ ┃ ┣ 📂repository # JPA Repository 인터페이스
┃ ┃ ┣ 📂util # 공통 유틸리티 클래스 모음
┃ ┃ ┣ 📂scheduler # 배치/스케줄러: 알람·감정분석 등 만료/정리 작업 주기 실행
┃ ┃ ┣ 📂lock # 분산/DB 락 유틸: 동시성 제어
┃ ┃ ┣ 📂infrastructure # 인프라 어댑터: Redis, JWT 등 인증/캐시/외부자원 접근 레이어
┃ ┃ ┗ 📂event # 이벤트 발행/리스너 패턴
┃ ┃ ┗ 📜HwaroakApplication.java # Spring Boot 메인 실행 클래스
┃ ┗ 📂resources
┃ ┣ 📂static
┃ ┣ 📜application-dev.yaml # 개발 프로필
┃ ┣ 📜application-local.yaml # 로컬 프로필
┃ ┗ 📜application.yaml # 공통 프로필
┣ 📜.env # 중요 환경변수
┣ 📜.gitignore
┣ 📜README.md
┗ 📜build.gradle
기능 단위로가 아닌 역할에 따른 계층 분리를 통해 각 레이어의 책임을 명확히 합니다.