개발 목적
상품(Product) 과 주문(Order) 두 가지 도메인으로 구성된
간단한 주문 관리 서비스를 구현하는 프로젝트
상품
- 상품을 등록 할 수 있어야 합니다.
- 상품을 단건/목록 조회 할 수 있어야 합니다.
- 상품을 수정 할 수 있어야 합니다.
- 상품을 삭제 할 수 있어야 합니다.
주문
- 이미 등록된 상품의 ID 를 이용해서 주문을 생성할 수 있어야 합니다.
- 주문 시 상품은 1개만 선택할 수 있습니다.
- 주문을 단건 조회 할 수 있어야 합니다.
- 주문을 조회할 때 주문한 상품의 이름이 함께 노출되어야 합니다.
- 상품 수정에서 상품 이름을 변경했을 때, 해당 상품으로 이미 생성된 주문을 조회하면 주문 조회 결과의 상품 이름도 변경된 이름으로 보여야 합니다.
- 상품과 주문의 연관관계를 적절하게 설계하여 구현하세요.
- 주문 목록 조회 API를 구현합니다. (페이지네이션 방식은 자유)
- 응답 데이터에는 상품 이름이 포함되어야 합니다.
- 목록 조회 시 N+1 문제가 발생하지 않도록 구성해야 합니다.
- 상품에 stock 필드를 추가합니다.
- 주문 생성 시 주문한 수량에 따라stock이 감소하도록 처리합니다.
- 재고가 0일 때는 주문이 생성되지 않도록 처리합니다.
개발 환경
개발 : MySql, IntelliJ, DBeaver, JPA
테스트 : Postman
'Spring > - [시리즈] 간단한 CRUD 구현하기' 카테고리의 다른 글
| CRUD 구현 6 - Service 구현 (0) | 2026.05.15 |
|---|---|
| CRUD 구현 5 - DTO (Data Transfer Object) 구현 (0) | 2026.05.15 |
| CRUD 구현 4 - Repository 구현 (0) | 2026.05.14 |
| CRUD 구현 3 - Entity 구현 (0) | 2026.05.14 |
| CRUD 구현 2 - DB 세팅 및 ERD (mySql, JPA) (0) | 2026.05.12 |