이 프로젝트는 고객과 사장님을 위한 배달 애플리케이션입니다.
사장님은 가게를 등록하고 메뉴를 관리하며, 고객 리뷰에 댓글을 남길 수 있습니다.
고객은 장바구니를 이용해 원하는 메뉴를 주문하고, 주문 완료 후 리뷰를 작성할 수 있습니다.
또한, JWT 기반 인증을 적용하여 보안을 강화하고, 주문 상태 변경 시 로깅 기능을 제공합니다.
- 회원 관리: 회원가입, 로그인, 로그아웃, 회원 탈퇴, 회원 정보 수정, 회원 조회
- 인증 및 권한 관리: JWT 기반 로그인, 인증 필터 및 리졸버 적용, 인터셉터 적용
- 가게 관리: 가게 생성, 조회, 수정, 삭제
- 메뉴 관리: 메뉴 생성, 조회, 수정, 삭제
- 장바구니 관리: 장바구니 생성, 조회, 삭제
- 주문 관리: 주문 생성, 주문 상태 변경
- 리뷰 관리: 리뷰 생성, 조회, 삭제
- 댓글 관리: 댓글 생성, 삭제
- 상태 로깅: 주문 상태에 따른 로깅
- Java 17
- Spring Boot 3.4.3
- MySQL
- H2
- JWT
- Bcrypt
- Swagger
- JPA
- AOP
- JUnit 5
2025-02-28 ~ 2025-03-07
src
└── main
├── java
│ └── xyz.tomorrowlearncamp.outsourcing
│ ├── domain # 도메인별 엔티티 및 관련 로직
│ │ ├── auth # 인증 및 사용자 인증 관련 기능
│ │ ├── cart # 장바구니 도메인
│ │ ├── comment # 댓글 도메인
│ │ ├── menu # 메뉴 도메인
│ │ ├── order # 주문 도메인
│ │ ├── review # 리뷰 도메인
│ │ ├── store # 가게 도메인
│ │ ├── user # 사용자 도메인
│ ├── global # 프로젝트 전역에서 사용되는 모듈
│ │ ├── config # 설정 관련 파일
│ │ │ ├── aop # AOP 관련 설정
│ │ │ ├── resolver # 커스텀 리졸버 관련 설정
│ │ ├── entity # 공통 엔티티
│ │ ├── etc # 기타 공통 기능
│ │ ├── exception # 예외 처리 관련 클래스
│ │ ├── filter # 필터 관련 기능
│ │ ├── interceptor # 인터셉터 관련 기능
│ │ ├── util # 유틸리티 클래스
│ └── OutsourcingApplication # Spring Boot 메인 애플리케이션
├── resources
│ ├── .env.local # 환경 변수 설정 파일
│ └── application.yml # Spring Boot 설정 파일
| 타입 | 설명 |
|---|---|
| feat | 새로운 기능 추가 |
| fix | 버그 수정 |
| refactor | 코드 리팩토링 (기능 변화 없음) |
| style | 코드 스타일 수정 (세미콜론, 포맷팅 등) |
| docs | 문서 추가/수정 |
| test | 테스트 코드 추가/수정 |
| chore | 빌드, 패키지 매니저 설정 변경 |
| pref | 성능 개선 |
| ci | CI/CD 관련 설정 변경 |
| build | 빌드 시스템 수정 (Gradle, Maven 등) |
Type (도메인)! : 제목
(띄어쓰기) 제목
(띄어쓰기) 내용1
(띄어쓰기) 내용2
(띄어쓰기) 내용3
꼬리말: 상태
- 파일:
(기능)(도메인)(파일 속성)형식 사용 - 클래스: PascalCase 사용 (명확한 의미의 이름)
- 컨트롤러:
(기능)(도메인)Controller - 서비스:
(기능)(도메인)Service - 레포지토리:
(도메인)Repository - 엔티티:
(도메인)EntityBaseEntity를 상속받아 생성일/수정일 포함
- Request DTO:
(기능)(엔티티)RequestDto - Response DTO:
(기능)(엔티티)ResponseDto
- 일반 메서드:
(기능)(도메인)(속성) - Getter 메서드:
- 단일 객체:
getUser() - 리스트/복수 데이터:
getUsers()
- 단일 객체:
- Boolean 값 반환 메서드:
- 객체 상태 확인:
isXX() - 특정 속성 존재 여부 확인:
hasXX()
- 객체 상태 확인:
자세한 API 명세는 API 문서를 통해 확인할 수 있습니다.
자세한 요구사항 명세는 아래 링크를 통해 확인할 수 있습니다.
자세한 기능 명세는 아래 링크를 통해 확인할 수 있습니다.
프로젝트 시연 영상은 영상 링크를 통해 확인할 수 있습니다.
|
이은성 리뷰 및 댓글 GitHub |
명민준 메뉴 GitHub |
이채원 장바구니 및 주문 GitHub |
유명훈 인증/인가 GitHub |
한윤희 가게 GitHub |
