[TIL] 241128
Do - List
- 코드카타
- Spring Master 이론 정리
- 과제 스케줄링
- OrderItem 중복 처리 문제 해결 - 튜터님 도움
- POST /order API 구현
- Validation 설정
- 예외 처리 구현
- 패키지명 조건에 맞춰 수정
이론 정리
https://kgrace2366.tistory.com/123
[Spring Master] 입문 이론 - Spring Data JPA
Spring Master 남은 목차Spring Data JPA ← 해당 포스트Bean인증, 인가Validation(데이터 검증하기)RestTemplate & Open API테스트Spring AOPAPI 예외 처리SpringBoot JPAbuild.gradle// JPA 설정implementation 'org.springframework.boot:s
kgrace2366.tistory.com
https://kgrace2366.tistory.com/124
[Spring Master] 숙련 이론 - 데이터 검증하기
Spring Master 남은 목차Bean인증, 인가Validation(데이터 검증하기) ← 해당 포스트RestTemplate & Open API테스트Spring AOPAPI 예외 처리ValidationJava는 null 값에 대한 접근에 대해 NullPointerException 오류가 발행하
kgrace2366.tistory.com
https://kgrace2366.tistory.com/126
[Spring Master] 심화 이론 - API 예외 처리
Spring Master 남은 목차Bean인증, 인가RestTemplate & Open API테스트Spring AOPAPI 예외 처리 ← 해당 포스트API 예외 처리웹 애플리케이션에서의 에러를 Client와 Server 모두가 잘 알지 못하면, 서비스하는 환경
kgrace2366.tistory.com
과제 스케줄링
- Spring Cloud 구성
- 프로젝트 5개 생성(server, auth, product, order, gateway)
- Spring Cloud 의존성 추가
- Eureka 서버 및 서비스 등록 설정
- @EnableFeignClients 설정
- FeignClient 구성
- 상품 서비스 로드밸런싱
- 두 개의 상품 서비스 인스턴스 실행 (포트: 19093, 19094)
- 요청 무작위 분배 및 Weighted Load Balancing 구현
- 주문에 상품 추가 API (PUT /orders/{orderId})
- FeignClient를 사용해 상품 서비스 클라이언트 연결
- 상품 목록 조회 API를 호출하여 주문에 상품을 추가할 때 파라미터로 받은 product_id가 유효한지 검증
- 존재하는 상품만 주문에 추가
- Fallback 처리 (POST /orders?fail)
- 상품 API 호출 실패 시 "잠시 후 다시 요청해 주세요" 메시지 반환
- OAuth2 + JWT 구현
- GET /auth/sign-in 및 GET /auth-sign-up API 구현
- 게이트웨이 필터 인증 로직 추가
- 상품 및 주문 서비스 접근 제어
- 캐시 갱신 로직
- 상품 추가 후 GET /products 캐시 갱신 처리
- 분산 추적 학습 및 설정 (Zipkin)
- Zipkin 연동 및 호출 추적 확인
- Redis 캐시 기능 구현
- GET /orders/{orderId} 캐싱
- 캐싱된 데이터 만료 후 DB 재조회
- 실패 시나리오 테스트(POST /orders?fail)
- 상품 서비스 호출 실패 시 정상적인 Fallback 처리 확인
- 로컬과 서버 환경 분리
- 로컬 및 운영 환경의 DB 설정 분리 (dev/prod 프로파일)
- Docker Compose로 환경 구성
- 외부 요청 보호(Oauth2, JWT)
- 인증/인가가 없으면 401 에러 응답하도록 설정
- 레이어드 아키텍처 및 모듈 보호 설계
- 클린 아키텍처 설계 방식 적용
- 고수준 모듈 보호를 위한 계층 구조 검토
- 최종 테스트 및 문서화
- API 테스트 (Postman)
- RestDocs 기반 API 문서화