Yun Blog

기술 블로그

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 확장하기 (1)

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......

Spring OOP 프로그래밍 예제(6) - 캡슐화 내가 생각하는 캡슐화란(2)

스프링 JPA로 알아보는 캡슐화

해당 코드는 Github에 공개되어 있습니다. 객체지향 개념에서 캡슐화는 정말 중요한 개념이라고 생각합니다. 캡슐화를 잘 지켜야 클래스 간의 결합도를 낮추어 코드를 유지 보수하기 쉽게 합니다. 이미 수많은 책이 이 개념에 관해서 설명하고 있습니다. 글을 읽을 때는 이해되지만 정작 캡슐화 좋은 코드를 작성하는 것은 또 다른 영역입니다. 저와 같은 주니어......
OOP

실무에서 Lombok 사용법 - lombok.config

안전하게 Lombok을 사용해보자

해당 코드는 Github에 공개되어 있습니다. lombok.config 설정 lombok.config 설정 파일을 통해서 lombok 어노테이션을 제한 할 수 있습니다. 이전 포스팅에서 언급한 @Data 등 사용을 했을 경우 위험 부담이 있는 어노테이션들은 해당 설정에서 제한 할 수 있습니다. 1234lombok.Setter.flagUsage = er......