Spring & Java
팀 과제 API 설계 본문
## 📦 구현 내용
- Order 엔티티 및 OrderStatus 상태 흐름 구현
- 주문 생성 API (/orders) 추가
- 주문 Repository 및 Service 레이어 구성
- 주문 금액 검증 및 커스텀 예외 처리 적용
## 🎯 설계 포인트
- 결제 기준 단위로 Order Aggregate 설계
- 상태 전이 기반 주문 흐름 구조 적용
- CRUD 최소화 (생성/조회 중심)
## ✅ 테스트
- 주문 생성 정상 동작 확인
- 잘못된 금액 요청 시 예외 처리 확인

## 📦 구현 내용
- Order 도메인 기반 주문 생성 API 구현
- 주문 목록 조회 API 추가
- 주문 상세 조회 API 추가
- 공통 응답 포맷(ApiResponse) 적용
- 주문 상태 흐름(PENDING → COMPLETED → REFUNDED) 기반 구조 설계
## 🎯 설계 포인트
- 결제 기준 단위로 Order Aggregate 설계
- CRUD 최소화 (생성/조회 중심)
- 요청/응답 DTO 분리로 API 책임 명확화
- 목록/상세 조회 DTO 분리로 성능 및 가독성 개선
## 🧪 테스트
- Postman을 통한 주문 생성 정상 동작 확인
- 주문 목록 조회 및 상세 조회 정상 응답 확인
## 📌 참고 사항
- 주문 API는 현재 과제 범위에 맞춰 접근 허용 설정
- 결제/환불 도메인 확장 가능하도록 설계


Product 조회 API 구현 및 예외 처리 구조 추가
## ✅ 작업 내용
상품 조회 기능 중심으로 Product 도메인 전반 구조를 구현하였습니다.
- ProductStatus Enum 설계
- Product 엔티티 생성
- ProductRepository 조회 구조 구현
- 상품 목록/상세 조회 DTO 분리
- ProductService 조회 로직 구현
- ProductController 조회 API 구현
- ProductNotFoundException, InvalidProductStatusException 예외 처리 구조 추가
---
## ⚙️ 동작 방식
- 상품 목록 조회 시 ACTIVE 상태 상품만 조회되도록 설계
- 상품 상세 조회 시 비활성 상태(INACTIVE, SOLD_OUT) 접근 제한 처리
- 예외 상황을 커스텀 예외로 분리하여 도메인 책임 명확화
---
## 🧪 테스트 및 확인 사항
- Database 테이블 없이도 API 구조 정상 동작하도록 설계
- 임시 데이터 삽입 없이 조회 로직 구조만 구현 완료
- 실제 테이블 생성 시 별도 코드 수정 없이 정상 작동 가능
Postman 테스트 결과:
- `/products` 조회 API 정상 응답 확인
- 예외 처리 로직 정상 동작 확인
---
## 🔐 보안 설정
상품 조회 API는 비로그인 사용자 접근 가능하도록 임시 허용 설정
```java
.requestMatchers(HttpMethod.GET, "/products", "/products/**").permitAll()
