목록2024/02 (9)
쌩로그
목록 포스팅 개요 본론 2-1. 트랜잭션과 락 2-2. 2차 캐시 요약 끝으로 1. 포스팅 개요 자바 ORM 표준 JPA 프로그래밍의 16장 트랜잭션과 락, 2차 캐시를 학습하며 정리한 포스팅이다. 참고로 해당 책의 마지막 포스팅일 수도 있다. 현재 Querydsl을 같이 수강 중인데, 책에서 해당 강의에 대해 보충할 내용이 없다면 마지막일 수 있다. (드뎌 끝난다...!!!) 어서 살펴보자. 2. 본론 이 챕터에서 다루는 내용은 다음과 같다. 트랜잭션과 락 : JPA가 제공하는 트랜잭션과 락 기능을 다룬다. 2차 캐시 : JPA가 제공하는 애플리케이션 범위의 캐시를 다룬다. 2-1. 트랜잭션과 락 트랜잭션 기초와 JPA가 제공하는 낙관적 락과 비관적 락에 대해 알아보자. 트랜잭션과 격리 수준. 트랜잭션..
목록 포스팅 개요 본론 2-1. 리스너 2-2. 엔티티 그래프 요약 1. 포스팅 개요 자바 ORM 표준 JPA 프로그래밍의 14. 컬렉션과 부가 기능를 학습하며 정리한 포스팅이다. 해당 포스팅은 이전 포스팅에서 다루지 않았던 리스너와 엔티티 그래프에 대해서 살펴본다. 참고로 이전 포스팅에서는 컬렉션과 @Converter에 대해 알아보았었다. 2. 본론 2-1. 리스너 모든 엔티티를 대상으로 언제 어떤 사용자가 삭제를 요청했는지 모두 로그로 남겨야 하는 요구사항이 있다고 가정하자. 이때 애플리케이션 삭제 로직을 하나씩 찾아서 로그를 남기는 것은 너무 비효율적이다. JPA 리스너 기능을 사용하면 엔티티의 생명주기에 따른 이벤트를 처리할 수 있다. 이벤트 종류 이벤트의 종류와 발생 시점은 다음과 같다. Pos..
목록 포스팅 개요 본론 2-1. 스프링 데이터 JPA 소개(12장 1절) 2-2. 공통 인터페이스 소개(12장 3절) 2-3. 쿼리 메소드 기능(12장 4절) 2-4. Web 확장(12장 7절) 요약 1. 포스팅 개요 자바 ORM 표준 JPA 프로그래밍의 12장 스프링 데이터 JPA를 학습하며 정리한 포스팅이다. 참고로 이전에 스프링 데이터 JPA 강의 포스팅을 했던 것과 정말 많이 겹친다. 따라서 해당 포스팅에서 설명이 부족했던 부분을 좀 더 채우는 느낌의 포스팅이다. 해당 포스팅 이후 14장 일부, 16장 내용이 정리되어 포스팅 될 예정이다. (정리라곤 하지만, 한 문장 한 문장이 주옥이라... 그냥 받아쓰기가 되고 있는 것이 현실이다.) 2. 본론 대부분의 데이터 접근 계층(Data Access L..
목록 포스팅 개요 본론 2-1. 공통 인터페이스 기능 2-2. 쿼리 메소드 기능 2-3. 확장 기능 2-4. 스프링 데이터 JPA 분석 2-5. 나머지 기능들 요약 1. 포스팅 개요 인프런에서 영한님의 실전! 스프링 데이터 JPA를 학습하고 정리한 포스팅이다. 실전! 스프링 데이터 JPA도 실전 활용 2편 강의처럼 책과 겹치는 부분이 딱 떨어지도록 구성되어있는 것이 아니라 겹치는 부분도 있고, 연관된 부분도 있다. 책에는 12장, 14장의 리스너와 엔티티 그래프, 16장 부분이다. 따라서 먼저는 강의 내용을 포스팅 하고, 이후 책 내용을 포스팅한다. 이번 포스팅은 스프링 데이터 JPA의 강의 내용이고, 다음 포스팅에서 책의 12, 14, 16 챕터에 대해 다뤄보고자 한다. 2. 본론 2-1. 공통 인터페..
목록 포스팅 개요 본론 2-1. 예외처리 2-2. 엔티티 비교 2-3. 프록시 심화 주제 2-4. 성능 최적화 요약 1. 포스팅 개요 자바 ORM 표준 JPA 프로그래밍의 15. 고급 주제와 성능 최적화를 학습하며 정리한 포스팅이다. 참고로 필자는 스프링 부트 3.xx 버전으로 코드를 사용하는데, 2.x 와 3.x의 차이는 javax 패키지가 jakarta로 변경된 점 외에는 별로 바뀐게 없다. 따라서 패키지 이름을 사용한다면 jakarta로 쓸 것이다. 2. 본론 다룰 내용은 다음과 같다. 예외 처리 : JPA를 사용할 때 발생하는 다양한 예외와 예외에 따른 주의점을 설명한다. 엔티티 비교 : 엔티티를 비교할 때 주의점과 해결 방법을 설명한다. 프록시 심화 주제 : 프록시로 인해 발생하는 다양한 문제점..
목록 포스팅 개요 본론 2-1. 학습 테스트 2-2. Spring REST Docs 요약 1. 포스팅 개요 인프런에서 박우빈님의 Practical Testing: 실용적인 테스트 가이드 강의 섹션 8 Appendix를 학습하며 정리한 포스팅이다. 말 그대로 부록이다. 부록이지만 중요하다. | 참고 이전 포스팅 2. 본론 2-1. 학습 테스트 잘 모르는 기능, 라이브러리, 프레임워크를 학습하기 위해 작성하는 테스트 여러 테스트 케이스를 스스로 정의하고 검증하는 과정을 통해 보다 구체적인 동작과 기능을 학습할 수 있다. 관련 문서만 읽는 것보다 훨씬 재미있게 학습할 수 있다. 구글에서 만든 Guava를 통해서 컬렉션을 가공하는 API들에 대해서 학습테스트를 작성하면서 어떻게 학습해나가는지 살펴본다. 먼저 의..
목록 포스팅 개요 본론 2-1. 한 문단에 한 주제! 2-2. 완벽하게 제어하기 2-3. 테스트 환경의 독립성을 보장하자 2-4. 테스트 간 독립성을 보장하자 2-5. 한 눈에 들어오는 Test Fixture 구성하기 2-6. Test Fixture 클렌징 2-7. @ParameterizedTest 2-8. @DynamicTest 2-9. 테스트 수핻오 비용이다. 환경 통합하기 2-10. Q. private 메서드의 테스트는 어떻게 하나요? 2-11. Q. 테스트에서만 필요한 메서드가 생겼는데 프로덕션 코드에서는 필요 없다면? 요약 1. 포스팅 개요 인프런에서 박우빈님의 Practical Testing: 실용적인 테스트 가이드 강의 섹션 7 더 나은 테스트를 작성하기 위한 구체적 조언을 학습하며 정리한 ..
목록 포스팅 개요 본론 2-1. 컬렉션 2-2. @Converter 요약 1. 포스팅 개요 자바 ORM 표준 JPA 프로그래밍의 14. 컬렉션과 부가 기능를 학습하며 정리한 포스팅이다. 이번 포스팅에 4개의 주제가 있는데, 리스너와 엔티티 그래프에 대해서는 인프런에서 스프링 데이터 JPA 강의에 대해 정리 & 포스팅 한 이후 포스팅할 예정이다. 2. 본론 다룰 내용은 목차에서 보았듯이 다음과 같다. 컬렉션 : 다양한 컬렉션과 특징을 설명한다. 컨버터 : 엔티티의 데이터를 변환해서 데이터베이스에 저장한다. 2-1. 컬렉션 JPA는 자바에서 기본으로 제공하는 Collection, List, Set, Map 컬렉션은 지원하고 다음 경우에 이 컬렉션을 사용할 수 있다. @OneToMany, @ManyToMany..
목록 포스팅 개요 본론 2-1. Mockito로 stubbing하기 2-2 Test Double 2-3 @Mock, @Spy, @InjectionMocks 2-4. BDDMockito 2-5. classicist VS Mockist 요약 1. 포스팅 개요 인프런에서 박우빈님의 Practical Testing: 실용적인 테스트 가이드 강의 섹션 6 Mock을 마무리하는 자세를 학습하며 정리한 포스팅이다. 이번 섹션을 통해서 Mocking을 언제 어떻게 그 다음에 어디서 써야 하는지를 살펴본다. | 참고 이전 포스팅 2. 본론 2-1. Mockito로 stubbing하기 주문 통계에 대한 서비스를 하나 만들 것이다. 로직은 다음과 같다. // 해당일자에 결제 완료된 주문들을 가져와서 // 총 매출 합게를 계..