issues
search
lgm1007
/
hhplus_ecommerce
항해 플러스 E-Commerce 시나리오
0
stars
0
forks
source link
[Step9/Step10] 에러 관리 체계, GlobalErrorHandler, Filter 및 Interceptor 활용, 시나리오 API 요구사항 기능 제공
#5
Closed
lgm1007
closed
1 month ago
lgm1007
commented
1 month ago
작업사항
Default
비즈니스 별 발생할 수 있는 에러 코드 정의 및 체계 구축
비즈니스에서 발생 가능한 상황에 대해 에러 관리 정의서 문서로 정리했습니다.
Error 관리 정의서
👈📝
커스텀 예외와 에러 상황을 정의하기 위한 Enum 클래스를 생성하여 관리할 수 있게 했습니다.
BadRequestException
NotFoundException
ErrorStatus
글로벌 에러 핸들러를 통해 에러 처리 핸들러 및 예외 로깅 구현
@RestControllerAdvice
를 활용하여 커스텀 예외에 대한 예외 처리와 에러 로깅을 남길 수 있도록 작업했습니다. (
GlobalExceptionHandler
)
Step9
시스템 성격에 적합하게 Filter, Interceptor를 활용하여 기능의 관점을 분리하여 개선
Filter 활용 - FE를 붙인다는 가정 하에 CORS 에러 방지를 위한 CorsFilter를 추가했습니다. (
CorsFilter
)
Interceptor 활용 - 클라이언트의 모든 API 호출에 대한 Request 로깅을 남기도록 구현했습니다. (
ApiLoggingInterceptor
)
Filter와 Interceptor에 대해 찾아본 내용을 정리하여 문서화했습니다. (
필터와 인터셉터
)
모든 API가 정상적으로 기능을 제공하도록 완성
이전 주차 때 각 컨트롤러에서 Service 및 Facade 를 주입하여 실제 비즈니스 로직을 실행할 수 있도록 작업했습니다.
상품 API: (
ProductApi
)
주문 API: (
OrderApi
)
결제 API: (
PaymentApi
)
잔액 API: (
BalanceApi
)
장바구니 API: (
CartApi
)
통계 API: (
StatisticApi
)
Step10
시나리오 별 동시성 통합 테스트 작성
이전 주차 때 동시성 제어가 필요한 비즈니스에 대해 동시성 통합 테스트를 작성했습니다.
상품 재고 차감 동시성 통합 테스트
👈🧪
주문 동시 요청 통합 테스트
👈🧪
결제 동시 요청 통합 테스트
👈⚗️
잔액 차감 및 충전 동시성 통합 테스트
👈⚗️
Chapter 2 회고록 작성
Chapter 2 회고록 링크
👈🧑💻
Issue
14
15
작업사항
Default
@RestControllerAdvice
를 활용하여 커스텀 예외에 대한 예외 처리와 에러 로깅을 남길 수 있도록 작업했습니다. (GlobalExceptionHandler)Step9
Step10
Issue
14
15