Yun Blog

기술 블로그

JPA @Where 사용법

해당 코드는 Github 공개되어 있습니다. JPA에서 @Where를 사용하면 엔티티를 조회하는 경우 일괄적인 Where 조건을 추가할 수 있습니다. 코드를 살펴보겠습니다. Entity 1234567891011121314151617181920212223242526272829303132333435@Entity@Table(name = "member"......

Mockserver Netty 사용해서 HTTP 통신 Mocking 하기

해당 코드는 Github 공개되어 있습니다. 테스트 코드를 작성할 할 때 외부 서비스와 통신하는 구간은 Mocking 해서 해서 테스트를 진행하게 됩니다. 대표적으로 HTTP 외부 통신이 있습니다. 이와 비슷한 내용으로 RestTemplate Mock 기반 테스트하기을 포스팅을 했었습니다. 그와 비슷한 주제로 Mockserver Netty 기반으로......

Spring Cloud Gateway

Getting Started

해당 코드는 Github 공개되어 있습니다. 용어 명칭 설명 라우트(Route) 라우트는 목적지 URI, 조건자 목록과 필터의 목록을 식별하기 위한 고유 ID로 구성된다. 라우트는 모든 조건자가 충족됐을 때만 매칭된다 조건자(Predicates) 각 요청을 처리하기 전에 실행되는 로직, 헤더와 입력돤값 등 다양한 HTTP 요청이 정......

ApplicationEventPublisher 기반으로 강결합 및 트랜잭션 문제 해결

해당 코드는 Github 공개되어 있습니다. 회원 가입 시나리오 회원 가입 시 회원 가입 쿠폰 발행, 회원 가입 이메일 발등을 해야 한다면 다음 코드처럼 로직을 만들 수 있습니다. 이메일 전송 실패, 쿠폰 발급이 실패하는 경우 회원 가입을 다시 해야 한다는 가정으로 설명드리겠습니다.(다소 과격한 시나리오지만 원자성에 대한 설명을 위해서 이런 시나......

동일한 Bean(Class)에서 @Transactional 동작 방식

동일한 Bean 내에서 @Transactional을 사용하는 경우 예상했던 것과 다르게 동작할 수 있습니다. 발생 원인과 해결 방법에 대해서 정리한 포스팅입니다. 123456789101112131415161718192021222324252627282930313233@Serviceclass CouponService( private val coupo......

Spring Cloud 살펴보기

Spring Cloud Config 스프링 클라우드 컨피그는 중앙 집중식 마이크로서비스 구성을 지원한다. 여기서 두 가지 중요한 구성 요소의 조합이다. 스프링 클라우드 컨피그 서버 : 버전 관리 리포지토리로 백업된 중앙 집중식 구성 노출을 지원한다. 스프링 클라우드 컨피그 클라이언트 : 애플리케이션이 스프링 클라우드 컨피그 서버에 연결하도록 지원한다......

인텔리제이 Github Code Review

인텔리제이기반으로 Github 기반 Pull Request & Code Review를 진행할 수 있습니다. 바로 기능을 살펴보겠습니다. 인텔리제이 기반 Pull Request는 Github로 프로젝트 관리하기 Part1을 참고해 주세요 Actions에서 View Pullrequests을 통해서 현재 PR을 확인할 수 있습니다. state:o......

Junit5

인스턴스 생성 특징, 테스트 순서

Instance 특징 Junit5는 테스트 메서드마다 인스턴스를 새로 생성하는 것이 기본 전략입니다. 이는 테스트 코드(메서드) 간의 디펜던시 줄이기 위해서입니다. 아래 코드를 통해서 살펴보겠습니다. 1234567891011121314151617181920internal class Junit5 { private var value = 0 ......

JPA + Querydsl group_concat 사용법

해당 코드는 Github에서 확인할 수 있습니다. JPA + Querydsl group_concat 사용법 Querydsl 기반으로 작업하다 보면 sql 함수가 필요한 경우가 있습니다. 대표적으로 sum(), max() 등이 있고 해당 함수는 Querydsl 자체에서 지원해 주고 있습니다. 하지만 group_concat과 같은 함수를 사용하기 위해......

Visual VM Launcher IntelliJ

VisualVM을 사용하면 JVM의 Memory, CPU, Thread의 상태를 쉽게 확인할 수 있습니다. IntelliJ 플러그인을 설치하면 보다 쉽게 사용이가능 합니다. https://visualvm.github.io/download.html 다운로드 받고 압축을 해제 합니다. 압축 해제이후, visualvm 파일은 이후 설정에 필요하기 때......