Yun Blog

기술 블로그

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 파일은 이후 설정에 필요하기 때......

Github Action With Gradle

해당 코드는 Github에서 확인할 수 있습니다. Github Action Github Action을 통해서 깃허브 자체적으로 CI & CD를 진행할 수 있습니다. Github에대한 자세한 설명은 공식홈페이지를 참고 해주세요. 본 포스팅에서는 Spring Boot & Gradle 환경에서 간단한 빌드를 다룰 예정입니다. Github ......

외부 인프라스트럭처 테스트

해당 코드는 Github에서 확인할 수 있습니다. 대부분의 애플리케이션은 외부 인프라스트럭처와 통신하면서 진행됩니다. 대표적인 외부 스트럭처는 외부 API들이 있습니다. 이런 외부 인프라스트럭처는 Mocking 해서 원하는 응답 값을 지정하고 검증하고 싶은 부분을 검증을 진행하는 것이 흔한 패턴입니다. 대표적으로 Mockito 프레임워크가 있으며 ......

JPA 기반 테스트 코드 작성 팁

JPA 기반으로 테스트 코드를 작성하면서 불편했던 부분을 소개하고 해결 방법에 관한 포스팅입니다. JPA 기반 테스트 불편한 점 과도한 Dependency 1234567891011121314internal class JpaTest( private val paymentRepository: PaymentRepository, private val......

Querydsl Repository Support 활용

개발을 진행할 하다 보면 다양한 조회 쿼리를 만들게 됩니다. JPA를 이용한다면 Querydsl Support를 사용하면 세부 구현체를 숨기고 Repository를 통해서 조회 쿼리를 제공해 줄 수 있어 장점이 있습니다. 관련 step-15: Querydsl를 이용해서 Repository 확장하기 (1), JPA 선호하는 패턴을 참고해 주세요 Quer......

Querydsl Projection 방법 소개 및 선호하는 패턴 정리

Querydsl를 이용하는 경우 엔티티와 다른 반환 타입인 경우 Projections를 사용합니다. Projections을 하는 방법과 선호하는 패턴을 정리해보았습니다. Projections을 이용해서 projection 하는 방법은 크게 3가지가 있습니다. Projections.bean을 이용하는 방법 Projections.constructor를 ......

JPA 선호하는 패턴

최근 JPA를 3년 가까이 사용하면서 개인적인으로 선호하는 패턴들을 한 번 정리하려고 한다. 어디까지 개인적으로 선호하는 패턴으로 굳이 이런 가이드를 따르지 않아도 된다. 컬럼 에노테이션 사용 123456789101112@Entity@Table(name = "member")data class Member( @Column(name = "userna......

JPA 벌크 작업 주의점

JPA Bulk 작업을 진행할 때 영속성 컨텍스트의 메커니즘을 이해하지 못한 상태라면 예상하지 못한 문제를 만날 수도 있게 됩니다. 어떤 문제가 있고 이 문제가 왜 발생하는지 정리해 보았습니다. 코드 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647......