모든 태그
태그

transaction 기술 블로그 글

transaction 태그가 달린 국내 IT 기업 기술 블로그 글을 최신순으로 모았습니다.

전체 37최신 20개 표시
홈에서 필터

최신 게시글

20개 표시

오늘

백엔드

데드락을 해결하려다, 락을 줄이게 된 이야기

동시성 문제를 다루며 락과 데드락을 고민한 사례를 다뤘습니다. 데드락을 해결하려다 오히려 락을 줄이는 방향으로 접근을 바꿨습니다.

#동시성#transaction
500

오늘

백엔드

선착순 수강 신청 동시성 이슈

선착순 수강 신청의 정원 초과를 막기 위해 동시성 제어 방식을 비교했습니다. 조건부 원자적 UPDATE와 유니크 제약, 트랜잭션으로 정합성을 보장했습니다.

#동시성#JPA#transaction
1300

아키텍처

애플리케이션 계층에서 관계 다루기

애플리케이션 계층에서 관계를 다루는 이유와 구조를 정리했습니다. DB/JPA에 맡기기보다 이벤트 전파와 메타데이터로 관계를 명시적으로 관리하는 방식입니다.

#JPA#DB#event
3500

백엔드

DB 트랜잭션 중심 대량요청 처리 최적화

대량 요청 환경의 병목을 DB 트랜잭션 관점에서 분석하고 개선한 사례입니다. 비관적 락을 낙관적 락과 재시도로 전환해 커넥션 효율과 안정성을 높였습니다.

#DB#transaction#동시성
56900

백엔드

트랜잭션 스크립트에서 숙소 메타 + 가격 계산 모듈로 — 전시 아키텍처 개선기 (2/3)

상세 화면 API에서 컬렉션 접근이 과도하게 발생하던 구조를 개선한 글입니다. 트랜잭션 스크립트에서 숙소 메타와 가격 계산 모듈로 분리한 과정을 다룹니다.

#transaction#module
5800

백엔드

“장보기 지원금이 곧 소멸돼요” 알림 뒤에서 일어난 일

장보기 지원금 소멸 알림 배치에서 메시지 발송 대기 중 DB 커넥션을 오래 점유해 타임아웃이 발생했습니다. 이를 위해 리소스 사용 구간과 발송 대기 구간을 분리해 배치 안정성을 높였습니다.

#Spring Batch#DB#Transaction
23200

백엔드

배송최적화 시스템 구축기 Part 01. 올리브영이 멀티 센터 체제로 배송 시간을 14시간 단축한 과정

멀티 센터 전환에 맞춰 배송최적화 시스템을 도입하고 주문분배·이관을 자동화했습니다. 그 결과 배송 리드타임을 평균 14시간 단축하고 운영 개입을 크게 줄였습니다.

#Redis#API#모니터링
11500

백엔드

Spring 트랜잭션 동기화로 레거시 알림톡 발송 시스템 한계 넘어서기

레거시 알림톡 발송을 트랜잭션 커밋 이후 Kafka 기반 구조로 분리했습니다. 데이터 정합성과 확장성을 높이며 공통 발송 체계를 만들었습니다.

#Spring#Kafka#MSA
34200

백엔드

SQS 기반 알림톡 처리에서 발생한 DB 커넥션 데드락 분석기

SQS 기반 알림톡 처리로 전환한 뒤 DB 커넥션 타임아웃과 데드락이 발생한 원인을 분석했습니다. REQUIRES_NEW 제거와 SQS 메시지 수 조정으로 커넥션 경합을 해소했습니다.

#SQS#DB#transaction
41600

백엔드

InnoDB 행 잠금의 2원 2규칙

MySQL InnoDB의 넥스트 키 락을 2원 2규칙으로 정리해 동작 원리를 설명했습니다. 동등 조건, 범위 조건, LIMIT, DESC 정렬에서의 잠금 차이도 예제로 살펴보았습니다.

#MySQL#InnoDB#DB
10500

백엔드

MySQL InnoDB Log에 대한 이해 - (1)

MySQL InnoDB의 Redo Log와 WAL 개념을 개요 수준에서 설명한 글입니다. 트랜잭션 무결성과 영속성 관점의 로그 관리 흐름을 정리했습니다.

#MySQL#InnoDB#transaction
14600

아키텍처

매달 수 백만 건의 여행을 책임지는 NOL 주문 이야기

NOL 주문 시스템의 통합 주문 구조와 3단계 처리 흐름을 소개했습니다. 분산 트랜잭션, 이벤트 전파, 보상 처리로 대량 주문의 안정성과 확장성을 확보했습니다.

#MSA#Redis#Kafka
4400

아키텍처

이벤트 드리븐 아키텍처 도입기

앱스토어의 동기 호출 중심 구조를 인메모리 이벤트 버스로 분리해 결합도를 낮췄습니다. 트랜잭션 훅과 비동기 핸들러를 지원해 확장성과 유연성을 높였습니다.

#이벤트 드리븐 아키텍처#event bus#transaction
1300

아키텍처

7ms로 끝내는 인가 체크, flex는 아키텍처부터 다르게 설계합니다

분산환경의 메시지 신뢰성과 인가 성능을 동시에 해결하기 위해 구조를 분리한 사례를 소개했습니다. 모든 요청의 권한 체크를 평균 7ms 이내로 처리하도록 설계했습니다.

#Kafka#transaction#API
1900

백엔드

실무에서 만나는 DB isolation level

MySQL 기본 격리 수준인 REPEATABLE READ 때문에 결제 트랜잭션에서 오래된 잔액이 유지되는 문제를 겪었습니다. 락 위치와 격리 수준을 조정해 동시성 이슈를 해결하는 과정을 정리했습니다.

#DB#transaction#MySQL
24500

아키텍처

R.I.P. 내가 만든 시스템이 무지개 다리를 건넌 이야기

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

#MSA#모니터링#refactoring
3200

백엔드

캐시를 적용하기 까지의 험난한 길 (TPS 1만 안정적으로 서비스하기)

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

#cache#Redis#Circuit Breaker
48000

백엔드

SSG 자동화센터 운영시스템에서 분산 락을 사용하는 방법

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

#Spring Boot#Redis#AOP
12500

백엔드

JPA Transactional 잘 알고 쓰고 계신가요?

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

#JPA#transaction#DB
10700

백엔드

똑닥 멤버십과 MongoDB 트랜잭션 충돌 방지 방법

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

#MongoDB#transaction#동시성
4500