TOPIC ARCHIVE

트랜잭션·데이터 정합성

트랜잭션, 동시성, 상태 이력과 데이터 손실 방지 조건을 다룬 기록입니다.

CURATED NOTES

트랜잭션·데이터 정합성

각 글은 하나의 대표 주제에만 분류했습니다. 시리즈가 있는 글에서는 구현 순서와 앞뒤 글도 함께 확인할 수 있습니다.

트랜잭션·데이터 정합성 · 6개 글 · 작성일 최신순

트랜잭션·데이터 정합성일반 기술 예시 · 9분조회 집계 중

static HttpServletRequest가 동시 요청 데이터를 섞는 과정

요청 객체를 static 필드에 보관하면 한 요청이 다른 요청의 상태를 덮을 수 있습니다. 겹치는 실행 순서와 요청 범위 안에서 값을 전달하는 방법, 동시성 검증 기준을 살펴봅니다.

JavaServletConcurrencyDebugging
트랜잭션·데이터 정합성일반 기술 예시 · 8분조회 집계 중

목록 조회 객체를 그대로 저장하면 데이터가 사라지는 이유

목록 응답 객체를 전체 주문처럼 저장하면 화면에 없던 값이 null로 덮일 수 있습니다. 식별자와 변경 의도만 받고 서버에서 현재 상태를 다시 읽는 방법을 살펴봅니다.

JavaSpringData IntegrityRegression Testing
트랜잭션·데이터 정합성프로젝트 2023.04 · 6분조회 집계 중

JOIN으로 늘어난 행마다 Report ID가 증가한 문제

JOIN으로 성적서 대상 행이 늘어나자 Java 반복문이 행마다 번호를 증가시켜 Report ID가 건너뛰었습니다. 발급 대상과 연결 주문을 별도 쿼리로 조회해 해결한 사례입니다.

Oracle SQLJoin CardinalityID GenerationJava
트랜잭션·데이터 정합성프로젝트 2025.03 — 2025.08 · 8분조회 집계 중

DB Link 제거 후 복수 DataSource를 한 트랜잭션으로 관리하기

DB Link 대신 각 DB에 직접 연결하고 매퍼를 분리한 뒤, 조건에 따라 참여하는 데이터소스를 하나의 Spring 트랜잭션 선언으로 관리하도록 Atomikos 기반 JTA를 구성했습니다.

Spring JTAAtomikosMyBatisXA DataSource
트랜잭션·데이터 정합성프로젝트 2024.10 — 2025.04 · 6분조회 집계 중

Spring Singleton 서비스에 요청 데이터를 멤버 변수로 두면 생기는 일

Spring 서비스의 멤버 변수가 동시 요청 사이에서 주문 데이터를 섞을 수 있었습니다. 요청 데이터를 지역 변수로 옮기고 주문 유형의 공통 동작을 인터페이스로 분리했습니다.

JavaSpringConcurrencyRefactoring
트랜잭션·데이터 정합성프로젝트 2024.09 — 2024.10 · 6분조회 집계 중

재발급 성적서를 덮어쓰지 않고 발행 순번으로 관리하기

공인 성적서의 원본·재발급·폐기 상태를 발행 순번으로 연결했습니다. 진위 확인과 동시 재발급도 같은 상태 규칙으로 처리했습니다.

Data ModelingOracleAudit TrailConcurrency