목록분류 전체보기 (168)
쌩로그
목록 포스팅 개요 본론 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하기 주문 통계에 대한 서비스를 하나 만들 것이다. 로직은 다음과 같다. // 해당일자에 결제 완료된 주문들을 가져와서 // 총 매출 합게를 계..
목록 포스팅 개요 본론 2-1. OSIV 2-2. 너무 엄격한 계층 요약 1. 포스팅 개요 자바 ORM 표준 JPA 프로그래밍의 13장 웹 애플리케이션과 영속성 관리를 학습하며 정리한 2번째 포스팅이다. 이번 포스팅에서 OSIV에 대해 알아본다. 참고로 이 포스팅애서 OSIV에 대해서 간단히 소개했었지만, 책에서 더 자세히 나온다. 참고로 이 글에서 이어쓰는 글이다. 2. 본론 2-1. OSIV OSIV(Open Session In View)는 영속성 컨텍스트를 뷰까지 열어둔다는 뜻이다. 영속성 컨텍스트가 살아있으면 엔티티는 영속 상태로 유지된다. 따라서 뷰에서도 지연 로딩을 사용할 수 있다. 참고 OSIV는 하이버네이트에서 사용하는 용어다. JPA에서는 OEVI(Open EntityManager In ..
목록 포스팅 개요 본론 2-1. 트랜잭션 범위의 영속성 컨텍스트 2-2. 준영속 상태와 지연 로딩 요약 1. 포스팅 개요 자바 ORM 표준 JPA 프로그래밍의 13장 웹 애플리케이션과 영속성 관리를 학습하며 정리한 첫 번째 포스팅이다. (내용이 길어져서 두 번에 걸쳐 포스팅할 예정이다.) 해당 장을 통해 컨테이너 환경에서 JPA가 동작하는 내부 동작 방식을 이해하고, 컨테이너 환경에서 웹 애플리케이션을 개발할 때 발생할 수 있는 다양한 문제점과 해결 방안을 알아본다. 2. 본론 참고로 해당 챕터에서는 yml설정을 다음과 같이 바꿔놔야 한다. spring: jpa: hibernate: ddl-auto: create properties: hibernate: # show_sql: true format_sql:..
목록 포스팅 개요 본론 2-1. Presentation Layer 테스트 요약 1. 포스팅 개요 인프런에서 박우빈님의 Practical Testing: 실용적인 테스트 가이드 강의 섹션 5 Spring & JPA 기반 테스트 중 Presentation Layer(Controller 계층) 테스트 부분을 학습하며 정리한 포스팅이다. | 참고 이전 포스팅 2. 본론 2-1. Presentation Layer 테스트 Presentation Layer 외부 세계의 요청을 가장 먼저 받는 계층이다. 파라미터에 대한 최소한의 검증을 수행한다. 우빈님은 Presentation Layer에서는 비즈니스로직보다 넘겨온 값들에 대한 Validation이 가장 중요한 거 같다고 하신다. 그래서 이를 중점으로 테스트를 작성해..
목록 포스팅 개요 본론 2-1. UUID가 왜 필요한가? 2-2. UUID가 뭔데? 2-3. 코드로 살펴보기 요약 1. 포스팅 개요 해당 포스팅은 JPA 를 사용하면서 Entity 의 Id 값으로, Auto Increment가 아닌, 랜덤 문자열을 가지는 UUID로 사용하는 내용에 대한 포스팅이다. 2. 본론 2-1. UUID가 왜 필요한가? 늘 JPA를 어떤 CRUD 연습용이던가, 혹은 프로젝트를 할 때 로컬환경에서도, 배포환경에서도 MySQL의 기본 키 전략에는 Auto Increment를 적용하여, 알아서 id값이 할당받도록 하였다. 그런데 이번에 회사에서 프로젝트를 하면서 id를 Auto Increment 로만 의존하기에는 한계가 생길 것 같아 Id 깂으로 UUID의 값을 집어넣으려 한다. 예를 ..
목록 포스팅 개요 본론 2-1. Business Layer 테스트 요약 1. 포스팅 개요 인프런에서 박우빈님의 Practical Testing: 실용적인 테스트 가이드 강의 섹션 5 Spring & JPA 기반 테스트 중 Business Layer(Service 계층) 테스트 부분을 학습하며 정리한 포스팅이다. | 참고 이전 포스팅 2. 본론 2-1. Business Layer 테스트 Persistence Layer Data Access의 역할을 한다. 비즈니스 가공로직이 포함되어서는 안 된다. Data에 대한 CRUD에만 집중한 레이어이다. Business Layer 비즈니스 로직을 구현하는 역할 Persistence Layer와의 상호작용(Data를 읽고 쓰는 행위)을 하는 비즈니스 로직을 전개시킨다..
목록 포스팅 개요 본론 2-1. 레이어드 아키텍처(Layerd Architecture)와 테스트 2-2. Persistence Layer 테스트 요약 1. 포스팅 개요 인프런에서 박우빈님의 Practical Testing: 실용적인 테스트 가이드 강의 섹션 5 Spring & JPA 기반 테스트 중 Persistence Layer(Repository 계층) 테스트 부분을 학습하며 정리한 포스팅이다. | 참고 이전 포스팅 참고로 JPA에 대한 개념과 스프링의 개념을 설명하신 부분이 있었지만 생략했고, 중간에 키워드는 적어두었다. 2. 본론 2-1. 레이어드 아키텍처(Layerd Architecture)와 테스트 Layered Architecture 관심사를 분리해서 책임을 나우고, 유지보수하기 용이하도록 ..