AWS를 사용해 무중단 배포 자동화 환경 구축하기 시리즈 개요 VPC와 기본 리소스 VPC와 기본 리소스 생성하기 어플리케이션 구축 및 로드밸런서 적용 AWS 리소스 세팅 CodeDeploy 연동 / 마무리 AWS 리소스 세팅 Auto Scaling 그룹 생성 AWS 리소스 세팅 첫번째 단계로 Auto Scaling 그룹을...
Hibernate @Where
Hibernate @Where @Where 란? 떄때로 커스텀한 SQL을 이용해 엔티티 혹은 컬렉션을 필터링하고 싶은 경우가 있습니다. 이 경우 Hibernate 에서 제공하는 어노테이션중 @Where 이라는 어노테이션을 사용해 쉽게 필터링 할 수 있습니다. @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)...
리액트로 멀티탭 구현하기 (feat. Recoil)
리액트로 멀티탭 구현하기 탭을 클릭했을때 해당 탭의 컴포넌트를 보여주는 방식의 코드나 라이브러리는 인터넷에 검색해보면 많습니다. 당장 npm에만 봐도 조금 오래되긴 했지만 이런 라이브러리도 존재합니다. 하지만 탭을 클릭했을때 해당 탭을 새로운 컴포넌트로써 오픈하고 오픈된 컴포넌트들의 리스트를 관리하는 형태의 예제코드는 별로 없는것 같습니다. 그래서 ...
Spring Transaction Propagation
트랜잭션 전파레벨 Spring의 @Transactional 어노테이션에는 많은 옵션이 존재합니다. 저번에 알아본 격리 레벨 도 그중 하나이지요. 이번에 알아볼 옵션은 Propagation(전파레벨) 옵션입니다. 트랜잭션에서의 전파는 비즈니스 로직의 트랜잭션 경계를 정의합니다. 스프링은 개발자가 설정한 레벨에 따라 트랜잭션을 시작하고 중지합니다. 스프...
Transaction Isolation
트랜잭션 트랜잭션 관리는 데이터베이스와 통신하는 코드를 작성하는 백엔드 개발자라면 누구에게나 중요한 항목입니다. 트랜잭션의 옵션에 따라 성능이 크게 향상될수 있고 메소드 내부에서 일어나는 예외 상황이 달라질수 있기 때문입니다. 따라서 트랜잭션을 이해하고 설정하는 것이 정말 중요하다고 할수 있습니다. Isolation level option Isola...
JPA EntityListeners 에 의존성 주입하기
JPA EntityListeners JPA를 사용하다보면 여러가지 상황(before insert, after insert, before update, after update…)을 캐치하여 작업을 해야할 경우가 생기곤 합니다. 그럴때 하이버네이트 에서 제공하는 EntityListeners를 사용하여 원하는 작업을 수행할 수 있습니다. 위 캡쳐 이미...
JPA & Hibernate Flush Mode
Flush 플러시는 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영하는것을 의미합니다. 플러시는 다음과 같은 경우에 발생합니다. EntityManager의 flush 메소드를 호출했을 때 트랜잭션 커밋시 JPQL 쿼리 실행시 영속성 컨텍스트에 있는 엔티티를 지우고 db에 저장하는 개념이 아니라 영속성 컨텍스트의 변경 내용을 db와 ...
홈서버 구축기
개요 집에서 시놀로지 NAS를 굴린지 3년이 되어간다. 그당시 개인 저장소에 대한 막연한 환상이 있어 구매하였지만 생각보다 코어단을 건드리는 부분에 있어 제약사항이 꽤 많았던것 같다. 뭐 도커를 설치하고 어쩌구 저쩌구 하면 되지만 결국 OS는 DSM이다. 심지어 야심차게 밖아넣은 1TB HDD는 20%도 사용하지 않고 먼지만 쌓여가고 있었다. 그래서...
Hibernate Reactive
개요 Hibernate Reactive가 드디어 정식 출시 되었습니다. (사실 현재기준 3달 지났습니다.) Webflux - R2DBC로 프로젝트를 진행할때 ORM에 대한 갈망을 느끼곤 했었는데, 확실히 갈증을 해소해줄 만한 물건이 나온것 같습니다. 현재는 Quarkus, Panache와 사용했을때 더 효율성을 발휘하는 것으로 보입니다. 그래도 예...
Github로 자바 라이브러리 배포하기
개요 사이드 프로젝트를 진행하다보면 최초 세팅시 공통된 코드가 사용되는 경우가 많습니다. 하지만 이를 모듈화하여 개인 nexus에 배포하자니 서버 구축이 어렵고, Maven Central에 배포하자니 거쳐야하는 단계가 많아 어려움을 겪었었습니다. 이 포스팅 에서는 Github를 이용해 개인 라이브러리를 배포하는 몇가지 방법에 대해 알아보겠습니다. ...