Home
keencho's blog
Cancel

Hibernate Reactive

개요 Hibernate Reactive가 드디어 정식 출시 되었습니다. (사실 현재기준 3달 지났습니다.) Webflux - R2DBC로 프로젝트를 진행할때 ORM에 대한 갈망을 느끼곤 했었는데, 확실히 갈증을 해소해줄 만한 물건이 나온것 같습니다. 현재는 Quarkus, Panache와 사용했을때 더 효율성을 발휘하는 것으로 보입니다. 그래도 예...

Github로 자바 라이브러리 배포하기

개요 사이드 프로젝트를 진행하다보면 최초 세팅시 공통된 코드가 사용되는 경우가 많습니다. 하지만 이를 모듈화하여 개인 nexus에 배포하자니 서버 구축이 어렵고, Maven Central에 배포하자니 거쳐야하는 단계가 많아 어려움을 겪었었습니다. 이 포스팅 에서는 Github를 이용해 개인 라이브러리를 배포하는 몇가지 방법에 대해 알아보겠습니다. ...

리액트에서 아임포트 컨트롤하기

개요 제가 운영중인 서비스에서는 아임포트를 결제 모듈로 사용하고 있습니다. 현재 홈페이지 내부에서 결제할 수 있는 페이지는 1개가 아닙니다. 따라서 각각의 컨테이너 혹은 컴포넌트에서 그때그때 아임포트 모듈을 호출해야 합니다. 아임포트를 쉽게 컨트롤하고 코드 재사용성을 향상시키기 위해 recoil을 이용하여 컴포넌트를 만들었습니다. recoil 현재...

Java 17

Java 17 2021년 9월 14일 Java LTS 인 JDK 17 GA가 릴리즈 되었습니다. JDK 17은 최대 2029년 9월까지 업데이트가 제공될 예정인데요, 2018년 9월에 JDK 11이 릴리즈된 이후 3년만에 출시된 LTS 버전의 JDK 입니다. 코드의 변화뿐만 아니라 LTS 출시 주기가 3년에서 2년으로 변경되는 등 많은 변화가 있었는...

OSIV(Open-Session-In-View)

OSIV OSIV(Open-Session-In-View)는 영속성 컨텍스트를 뷰 영역까지 열어두는 기능입니다. 여기서 뷰 영역은 Controller 혹은 템플릿 렌더링 영역까지를 의미합니다. 뷰 영역까지 영속성 컨텍스트가 살아있다면 뷰 영역에서도 지연 로딩 (Lazy Loading) 을 사용할 수 있습니다. 별다른 설정 없이도 지금까지 뷰 영역에서 ...

JPA 캐시

JPA 캐시 데이터베이스에 접근하는 비용은 매우 비쌉니다. 실제 운영하는 서비스라면 DB가 같은 시스템 안에 존재하는 일이 없기 때문에 네트워크 비용까지 발생합니다. 결과값을 뻔히 알 수 있는 쿼리에 대해 이런 값비싼 작업을 수행한다면 어플리케이션의 성능은 낮아질 것입니다. 하이버네이트를 포함한 JPA 구현체들은 캐시를 지원합니다. 하이버네이트의 캐...

AWS ALB에 람다 없이 고정 IP로 접근하기

ALB에 고정 IP로 접근하기 AWS ALB(Application Load Balancer)는 NLB(Network Load Balancer)에 비해 가지는 이점들이 있습니다. 예를 들어 ALB는 서브도메인이나 path ‘/app/**’ 같은 경로로 타겟 그룹에 요청을 전달할 수 있습니다. 하지만 단점 하나가 있는데요, 바로 고정 IP를 부여하지 못...

팩토리 메소드 패턴 (Factory Method Pattern)

팩토리 메소드 패턴 팩토리 메소드 패턴은 부모 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴이며, 자식 클래스가 어떤 객체를 생성할지 결정하도록 하는 생성패턴 입니다. 간단히 요약하자면 부모 클래스 대신 자식 클래스에서 객체를 생성하는 패턴이라고 생각하시면 됩니다. 구조 생성자와 그 하위클래스 객체를 생성하는데 공통적으로 사용될수 있는...

전략 패턴 (Strategy Pattern)

전략 패턴 전략 패턴은 실행 중에 알고리즘을 선택할 수 있게 하는 행위 디자인 패턴 입니다. 즉, 각각의 객체들이 할 수 있는 동작들일 미리 전략으로 만들어 놓고 동작을 동적으로 변경해야 한다면 해당 전략만 변경하여 객체의 동작이 바뀌도록 하는 패턴입니다. 구조 컨텍스트는 전략 구현체중 하나와 참조를 유지하고 전략 인터페이스를 통해서만 객체...

빌더 패턴 (Builder Pattern)

빌더 패턴 빌더 패턴은 복합 객체의 생성 과정과 표현 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 만들수 있게 하는 패턴입니다. 객체를 생성할때 흔하게 사용됩니다. 구조 빌더 인터페이스는 모든 유형의 빌더에 사용되는 공통적인 단계를 선언합니다. 빌더 구현체는 생성 단계에서 서로 다른 구현체를 제공합니다. 이 구현체는 공통...