Yun Blog

기술 블로그

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

캡슐화 내가 생각하는 캡슐화란 (2)

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

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

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

안전하게 Lombok을 사용해보자

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

캡슐화 내가 생각하는 캡슐화란 (1)

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

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

실무에서 Lombok 사용법

안전하게 Lombok을 사용해보자

해당 코드는 Github에 공개되어 있습니다. Lombok은 자바 컴파일 시점에서 특정 어노테이션으로 해당 코드를 추가할 수 있는 라이브러리입니디. 이는 코드의 다이어트? 가독 성 및 유지 보수에 많은 도움이 됩니다. 하지만 편리한 만큼 잘못 사용하기 쉬운 것이 Lombok 입니다. 거창하게 실무에서 사용하는 Lombok이라고 표현했지만 어디까지 저의......

HTTPS에 대한 기초 이해

HTTP의 약점 평문(암호화하지 않은) 통신이기 때문에 도청 가능 통신 상대를 확인하지 않기 때문에 위장 가능 완전성을 증명할 수 없기 때문에 변조 가능 평문이기 때문에 도청 가능 HTTP를 사용한 리퀘스트나 리스폰스 통신 내용은 HTTP 자신을 암호화하는 기능은 없기 때문에 통신 전체가 암호화되지 않습니다. TCP/IP는 도청 가능한 네트워크 ......

Spring OAuth2 JDBC TokenStore

TokenStore JDBC를 이용한 영속화

해당 코드는 Github에서 확인할 수 있습니다. 데이터베이스 스키마 구성하기 가장 먼저 데이터베이스를 생성해야합니다. 1mysql> create database oauth2; 1234567891011121314151617spring: profiles: init jpa: database: mysql properties.hiberna......