mugeon

분산 트랜잭션 (feat. JTA, 2PC)

2PC (Two-Phase Commit) 최근 마이크로서비스 아키텍처가 보편화되면서 하나의 비즈니스 로직이 여러 서비스에 걸쳐 실행되는 경우가 많아졌다. 이때 가장 골치 아픈 문제 중 하나가 바로 분산 트랜잭션이다. 왜 2PC가 필요할까? 일반적인 단일 데이터베이스 환경에서는 트랜잭션의 ACID 속성이 자동으로 보장된다. 하지만 여러 데이터베이스...

JUnit5, AssertJ 활용방법 및 Spring boot 테스트 코드 작성법

서론 처음에 테스트 코드 작성한 이유는 취업을 위해서 시작을 했습니다. 하지만 시간이 지나면서 테스트 코드를 안쓰면 더 어색하고, 개인적으로 느끼고 학습한 테스트 코드의 장점과 단위 테스트를 진행을 해야되는 이유를 팀 또는 다른 사람들에게 공유하기 위해서 테스트코드 작성하였습니다. 본론 1. 테스트를 꼭 해야하나? 테스트 코...

객체지향의 사실과 오해

서론 책을 읽은 이유 최근 프로젝트를 하면서 과연 내가 객체지향을 생각하면서 코드를 작성을 하는가에 대한 의문점을 가지게 되었다. 그래서 많은 개발자분들이 추천하는 조영호 님의 객체지향의 사실과 오해를 읽고 리뷰를 한다. 책을 8월에 구매를 하고 지금 리뷰를 작성을 합니다. 왜냐하면 처음에 책을 읽을 때 개인적으로 책을 읽는데 어렵다고 생...

Jenkins + SVN + CodeDeploy를 이용한 Pipeline Blue-Green 무중단 배포

서론 최근 업무에서 무중단 배포를 구축하면서 학습한 내용을 공유하기 위해 글을 작성을 하였습니다. 기존에 CI/CD를 구축하지 않고 war를 fileZira 또는 SCP를 통해서 war파일을 target에 전달하여 스크립트로 실행하는 환경에서 무중단 배포로 바꾸는 이유는 기존에 배포를 하기 위해서는 전 직원의 업무를 10분 정도 못하...