Notice
Recent Posts
Recent Comments
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Spring & Java

팀 과제 API 설계 본문

CH4 결제 시스템

팀 과제 API 설계

dev.hyuck 2026. 2. 9. 10:32
## 📦 구현 내용

- 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()