
R.I.P. 내가 만든 시스템이 무지개 다리를 건넌 이야기
카카오뱅크 Oslo 시스템의 도입, 운영, 종료 과정을 통해 기술적 선택의 유한성과 가역성을 돌아보았습니다. 장애 격리에는 성공했지만 장기 운영 비용과 Bus Factor 문제로 EOS를 결정했습니다.

카카오뱅크 Oslo 시스템의 도입, 운영, 종료 과정을 통해 기술적 선택의 유한성과 가역성을 돌아보았습니다. 장애 격리에는 성공했지만 장기 운영 비용과 Bus Factor 문제로 EOS를 결정했습니다.

약관 서버의 DB 부하를 줄이기 위해 Redis 캐시와 강한 일관성 전략을 적용했습니다. 캐시 무효화 실패와 이벤트 순서 문제는 트랜잭션 동기화와 정책으로 해결했습니다.


Redis 분산 락과 스프링 AOP로 입하 확정 처리 API의 동시성 이슈를 해결했습니다. 또한 @Transactional과의 실행 순서 문제와 커넥션 사용 이슈를 @Order로 정리했습니다.

JPA `Transactional`과 DB 쿼리 성능의 관계를 설명하는 글입니다. 트랜잭션 적용 방식에 따라 쿼리 특성과 성능 영향이 달라질 수 있음을 다룹니다.

MongoDB 트랜잭션 도입 과정에서 멤버십 결제와 해지 로직이 충돌하며 이중 결제가 발생했습니다. 공통 키 기반 Lock과 모니터링으로 동시 접근을 제어해 문제를 줄였습니다.


ArchUnit으로 Java 아키텍처 원칙을 테스트 코드로 검증하는 방법을 소개했습니다. 패키지 의존성, 순환 의존성, 어노테이션 규칙을 자동으로 강제하는 예시를 담았습니다.

트랜잭션 롤백과 중복 조회에 의존하던 CDC의 한계를 짚고, QueryPie의 쿼리 시뮬레이션 기반 접근을 소개했습니다. DBMS 부하를 줄이면서도 변경 전후 데이터를 확보하는 구조와 효과를 설명했습니다.
쿠팡 파트너스
이 게시물은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

트랜잭션 롤백에 의존하던 CDC의 성능 저하와 DBMS 종속성 문제를 다뤘습니다. QSI 기반 쿼리 시뮬레이션으로 변경 전후 데이터를 생성해 부하를 줄인 방식을 소개했습니다.

트랜잭션 기반 CDC의 롤백 부하와 DBMS 종속성 문제를 정리하고, QSI 쿼리 시뮬레이션으로 이를 대체하는 방법을 소개했습니다.\n트랜잭션 없이 변경 전후 데이터를 생성해 성능과 확장성을 높인 사례를 설명했습니다.


Spring Batch 배치가 멈춘 원인을 트랜잭션 분리 실패와 스레드 풀 정책에서 찾았습니다. `CallerRunsPolicy`와 `@Transactional` 누락이 겹치며 경합이 발생했고, 설정 개선이 필요했습니다.

MySQL 기반 message-relay의 쿼리 지연과 lock wait 문제를 분석하고 개선한 사례를 소개했습니다. NOWAIT와 LIMIT 조합으로 lock 경합을 줄여 성능을 안정화했습니다.
![[Node.js] 트랜잭션을 활용한 테스트 격리 환경 구현하기(1/2)](https://devocean.sk.com/thumnail/2024/9/4/b3b2d4017fdd951afd27980944ce8f41a68589d419b4b62b1b8d2c26328f8346.jpg)

TypeORM에서 트랜잭션 기반 테스트 격리 시 세션이 달라지는 문제를 분석했습니다. 하나의 세션을 고정하기 위해 QueryRunner와 Repository 주입 방식을 사용했습니다.