Yun

https://github.com/cheese10yun Java & Backend Developer

Spring Boot JPA Step-13 - Query Dsl이용한 페이징 API 만들기

Spring Boot JPA Step-13 - Query Dsl이용한 페이징 API 만들기

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

By Yun
Spring Boot JPA Step-12 - 페이징 API 만들기

Spring Boot JPA Step-12 - 페이징 API 만들기

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

By Yun
Spring 내가 생각하는 캡슐화 part 1

Spring 내가 생각하는 캡슐화 part 1

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

By Yun
실무에서 Lombok 사용법

실무에서 Lombok 사용법

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

By Yun
Spring REST Docs API 문서를 자동화 해보자

Spring REST Docs API 문서를 자동화 해보자

코드는 GitHub에 공개 되어 있습니다. REST Docs 소개 Spring REST Docs는 테스트 코드 기반으로 RESTful 문서생성을 돕는 도구로 기본적으로 Asciidoctor를 사용하여 HTML를 생성합니다. Spring MVC 테스트 프레임워크로 생성된 snippet을 사용해서 snippet이 올바르지 않으면 생성된 테스트가 실패하여 정확성을 보장해줍니다. Rest Docs vs Swagger 우선 Rest Docs과 Swagger는 성격이 많이 다릅니다. Swagger는

By Yun
Spring Security OAuth2 소셜 인증 데이터베이스 저장

Spring Security OAuth2 소셜 인증 데이터베이스 저장

데이터베이스에 회원 정보 저장 step-01: Google, Facebook 간단한 소셜 인증에서 소셜 기반으로 인증 처리를 진행했습니다. 이번 차례에서는 해당 정보를 데이터베이스에 영속화 시키는 간단한 예제로 Data JPA, H2를 이용하겠습니다. 전체코드는 Github에 공게되어 있습니다. 테이블 * user_connection : 소셜에서 넘겨준 프로필에 대한 테이블 * user : 해당 프로젝트의 user 테이블 전체적은 플로우는 다음과 같습니다.

By Yun
Spring Security OAuth2 소셜 인증

Spring Security OAuth2 소셜 인증

Spring Scurity OAuth2를 활용해서 Facebook, Google 계정 기반으로 정말 간단하게 인증 처리를 할 수 있습니다. 들어가기에 앞서 OAuth 2인증 방식 : Authorization Code Grant 반드시 기본적인 이해를 하시는것을 권장드립니다. 생활코딩에도 잘 정의되어있습니다. Google, Facebook App 생성 및 Https 설정을 하지 않았다면 step-00: gogole, facebook, https 설정을 참고하여 작업을 완료해주세요. 전체코드는

By Yun
Spring Boot + JPA  Properties 설정값 가져오기

Spring Boot + JPA Properties 설정값 가져오기

해당 코드는 Github를 확인해주세요. Properties 설정값을 가져오는 다양한 방법들이 있습니다. 방법이 많다 보니 좋지 않은 패턴으로 사용하는 예도 흔하게 발생합니다. 안티 패턴을 소개하고 이것이 왜 안 좋은지 간단하게 소개하고 제가 생각하는 좋은 패턴도 소개해드리겠습니다. properties user: email: "yun@test.com" nickname: "yun" age: 28 auth: false

By Yun
Spring Boot 으로 초간단 Slack Message 보내기

Spring Boot 으로 초간단 Slack Message 보내기

Spring boot으로 초간단하게 Slack Message 보내기를 만들어 보는 프로젝트입니다. Slack Message 에서 제공하는 3가지 메시지를 보내 보겠습니다. 전체 코드는 GitHub 보시는 것을 권장해 드립니다. Slack Web Hook 연동 Incoming WebHooks 작업이 완료 됬다고 가정하고 포스팅을 진행하겠습니다. 만약 작업이 완료 되지 않았다면 해당 앱을 설치하고 특정 채널에 알림이 가게 설정해주세요 Slack

By Yun
Spring OOP - 추상화, 다형성 예제

Spring OOP - 추상화, 다형성 예제

예제 코드는 GitHub에 공개 되어 있습니다. Spring OOP 프로그래밍 예제(2) - Value 클래스로 응집력 높이기의 부족했던 부분을 정리한 포스팅입니다. 요구사항 * 환율 정보를 조회할 수 있다. * 환율 정보를 제공해주는 은행은 신한, 우리 은행이 있다. * 앞으로도 파트너 은행들은 계속 추가된다. * KRW, VND으로 받는 통화는 신한은행 환율정보를 이용해야 한다 * USD - > KRW, VND

By Yun
IntelliJ 사용팁

IntelliJ 사용팁

그동안 개인 블로그에만 포스팅을 해왔던 인텔리제이의 기능 중에서 가장 많이 사용하는 기능들을 한 번 더 정리했습니다. 이전 포스팅 내용은 GitHub에서 확인할 수 있습니다. 인텔리제이 리팩토링 기능 인텔리제이의 리팩토링 기능을 이용해서 비교적 쉽게 리팩토링을 할 수 있습니다. 대표적인 리팩토링 기능들을 하나 하나 천천히 살펴 보도록 하겠습니다. 해당 기능의 단축키는 스크린샷 하단

By Yun