STUDY/TIL

[TIL] 241128

7alswn 2024. 11. 28. 17:43

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


 

과제 스케줄링

  1. Spring Cloud 구성
    • 프로젝트 5개 생성(server, auth, product, order, gateway)
    • Spring Cloud 의존성 추가
    • Eureka 서버 및 서비스 등록 설정
    • @EnableFeignClients 설정
    • FeignClient 구성
  2. 상품 서비스 로드밸런싱
    • 두 개의 상품 서비스 인스턴스 실행 (포트: 19093, 19094)
    • 요청 무작위 분배 및 Weighted Load Balancing 구현
  3. 주문에 상품 추가 API (PUT /orders/{orderId})
    • FeignClient를 사용해 상품 서비스 클라이언트 연결
    • 상품 목록 조회 API를 호출하여 주문에 상품을 추가할 때 파라미터로 받은 product_id가 유효한지 검증
    • 존재하는 상품만 주문에 추가
  4. Fallback 처리 (POST /orders?fail)
    • 상품 API 호출 실패 시 "잠시 후 다시 요청해 주세요" 메시지 반환
  5. OAuth2 + JWT 구현
    • GET /auth/sign-in 및 GET /auth-sign-up API 구현
    • 게이트웨이 필터 인증 로직 추가
    • 상품 및 주문 서비스 접근 제어
  6. 캐시 갱신 로직
    • 상품 추가 후 GET /products 캐시 갱신 처리
  7. 분산 추적 학습 및 설정 (Zipkin)
    • Zipkin 연동 및 호출 추적 확인
  8. Redis 캐시 기능 구현
    • GET /orders/{orderId} 캐싱
    • 캐싱된 데이터 만료 후 DB 재조회
  9. 실패 시나리오 테스트(POST /orders?fail)
    • 상품 서비스 호출 실패 시 정상적인 Fallback 처리 확인
  10. 로컬과 서버 환경 분리
    • 로컬 및 운영 환경의 DB 설정 분리 (dev/prod 프로파일)
    • Docker Compose로 환경 구성
  11. 외부 요청 보호(Oauth2, JWT)
    • 인증/인가가 없으면 401 에러 응답하도록 설정
  12. 레이어드 아키텍처 및 모듈 보호 설계
    • 클린 아키텍처 설계 방식 적용
    • 고수준 모듈 보호를 위한 계층 구조 검토
  13. 최종 테스트 및 문서화
    • API 테스트 (Postman)
    • RestDocs 기반 API 문서화