Yun Blog

기술 블로그

Spring Guide - Domain

Domain 작성 가이드

해당 코드는 Github를 확인해주세요. 도메인 레이어는 모든 레이어에서 사용되는 레이어입니다. 그만큼 중요한 객체이고 본인의 책임을 충분히 다하고 있지 않으면 많은 영역에서 그 책임을 넘겨받게 됩니다. 이러한 부분에 대해서 중심으로 포스팅을 진행하겠습니다. Member 클래스 123456789101112131415161718192021222324......

인텔리제이 특정 Import 제외 하기

IntelliJ Tip

특정 Import 제외하기 인텔리 제이에서는 자동 Import설정을 지원해주고 있습니다. Import 대상이 여러 개 일 경우에는 개발자가 직접 선택하아합니다. 위 그림처럼 있을 경우 javax.transaction를 Import할 수도 있습니다. 한번 전체 검색으로 javax.transaction을 찾아보는 것도 좋을 거 같습니다. 이런 경우에 특......

Spring Guide - Exception 전략

Exception 전략

해당 코드는 Github를 확인해주세요. Exception Guide 스프링은 예외처리를 위해 다양하고 막강한 어노테이션을 제공하고 있습니다. 일관성 있는 코드 스타일을 유지하면서 Exception을 처리하는 방법에 대해서 소개하겠습니다. 통일된 Error Response 객체 Error Response 객체는 항상 동일한 Error Respons......

Spring Guide - 테스트 전략

테스트 전략

해당 코드는 Github를 확인해주세요. 소개 스프링은 다양한 테스트 전략을 제공하고 있습니다. 대표적으로 Slice Test 라는 것으로 특정 레이어에 대해서 Bean을 최소한으로 등록시켜 테스트 하고자 하는 부분에 최대한 단위 테스트를 지원합니다. 다양하게 지원해주는 만큼 테스트 코드를 통일성 있게 관리하는 것이 중요합니다. 더 안전하고 통일성......

Spring-JPA Best Practices step-15 - Querydsl를 이용해서 Repository 확장하기

Querydsl를 이용해서 Repository 확장하기

해당 코드는 Github를 확인해주세요. Repository Code 1234567891011public interface AccountRepository extends JpaRepository<Account, Long>, AccountCustomRepository { Account findByEmail(Email emai......

Spring-JPA Best Practices step-14 - JUnit5 적용하기

JUnit5 적용하기

해당 코드는 Github를 확인해주세요. JUnit5는 다양한 어노테이션들이 추가되었습니다. 그중에 Junit5를 도입할 만큼 매력 있는 어노테이션 @DisplayName 입니다. 단순한 테스트 이외에는 테스트 코드 네이밍으로 테스트하고자 하는 의미를 전달하기가 매우 어렵습니다. 이때 아주 유용하게 사용할 수 있는 것이 @DisplayName 입니......

Spring-JPA Best Practices step-13 - Query Dsl이용한 페이징 API 만들기

동적쿼리를 만들어보자

해당 코드는 Github를 확인해주세요. step-12: 페이징 API 만들기 에서 JPA와 Pageable를 이용해서 간단한 페이징 API를 만들었습니다. 이번 포스팅에서는 Query Dsl 동적 쿼리를 이용해서 검색 페이징 API를 만들어 보겠습니다. 기초 작업 Maven을 기준으로 설명드리겠습니다. 아래의 코드를 pom.xml에 추가하고 mv......

Spring-Jpa Best Practices step-12 - 페이징 API 만들기

Spring Data JPA를 활용한 페이징 API 만들기

해당 코드는 Github를 확인해주세요. JPA를 이용해서 Paging API를 만들어 보도록 하겠습니다. 페이징 처리는 거의 모든 웹 개발에서 사용하고 있습니다. 그렇게 복잡하고 어려운 구현은 아니나 실제 쿼리로 작성할 때는 상당히 번거로운 작업이 됩니다. 또 데이터베이스마다 페이징 쿼리가 조금씩 다르다는 점도 복잡도를 높이는 요인 중 하나입니다......

Spring Boot Test

Slice Test

전체 코드는 Github를 확인해주세요. 출저 처음으로 배우는 스프링 부트 2을 보고 정리한 포스팅입니다. 어노테이션 설명 Bean @SpringBootTest 통합 테스트, 전체 Bean 전체 @WebMvcTest 단위 테스트, Mvc 테스트 MVC 관련된 Bean @DataJpaTest 단위 테스트, Jpa 테스트 JPA......

Spring-Jpa Best Practices step-11 - Properties environment 설정하기

Properties environment 설정하기

해당 코드는 Github를 확인해주세요. properties.yml 설정 파일을 이용해서 environment를 편리하게 설정하는 방법을 소개해드리겠습니다. 설정 정보는 애플리케이션 코드와 분리돼서 관리되고 각 환경에 따라 달라지(DB 정보, 외부 서비스 정보 등등)는 정보들은 각 properties 파일에서 관리되는 것이 좋습니다. envi......