내일배움캠프(Spring 7기)/내일배움캠프

[CH 4 코드 개선 및 테스트 코드 작성] 정리 & 회고

가지코딩 2025. 6. 12. 12:41

단계별 요구사항

 

필수 기능

  • Lv 1. 코드 개선
  • Lv 2. N+1 문제
  • Lv 3. 테스트코드 연습

 

도전 기능

  • Lv 4. API 로깅
  • Lv 5. 위 제시된 기능 이외 ‘내’가 정의한 문제와 해결 과정
  • Lv 6. 테스트 커버리지

학습 키워드

  • Fetch Join
  • Interceptor
  • AOP
  • API 로깅
  • 테스트 코드
  • 테스트 커버리지

새롭게 알게된 지식


설계 & 리팩토링 과정


과제 학습 목표

(체크리스트) ✅ 완료, ❌ 실패, △ 미흡

  •  스프링의 예외처리 메커니즘을 이해하고 Global 예외처리 방식을 활용할 수 있는가?
  • 단위 테스트 및 컨트롤러, 서비스 레이어의 통합테스트를 작성할 수 있는가?
  • LAZY 로딩 대신 EAGER 로딩을 사용해 N+1 쿼리 성능 문제를 해결할 수 있는가?
  • 트랜잭션을 사용하여 데이터베이스의 일관성을 보장하고, 영속성 컨텍스트와의 상호작용을 이해할 수 있는가?
  • JPA에서 트랜잭션을 사용하여 데이터베이스 상태 변경을 관리할 수 있는가?
  • 영속성 전이(Persist Cascade)를 활용하여 엔티티 간의 관계에서 영속성 상태를 관리할 수 있는가?
  • 지연 로딩(Lazy Loading)과 즉시 로딩(Eager Loading)의 차이를 이해하고, 적절한 로딩 전략을 선택할 수 있는가?
  • JPA에서 Proxy 객체를 사용하여 지연 로딩(Lazy Loading)을 처리할 수 있는가?
  • JPA에서 1:N, 1:1, N:M 연관관계를 설정하고, 이를 활용하여 엔티티 간의 관계를 정의하고 관리할 수 있는가?

느낀 점 & 마무리

 


전체 소스 코드

https://github.com/gajicoding/spring-advanced

 

GitHub - gajicoding/spring-advanced

Contribute to gajicoding/spring-advanced development by creating an account on GitHub.

github.com