static HttpServletRequest가 동시 요청 데이터를 섞는 과정
요청 객체를 static 필드에 보관하면 한 요청이 다른 요청의 상태를 덮을 수 있습니다. 겹치는 실행 순서와 요청 범위 안에서 값을 전달하는 방법, 동시성 검증 기준을 살펴봅니다.
JavaServletConcurrencyDebugging
TOPIC ARCHIVE
트랜잭션, 동시성, 상태 이력과 데이터 손실 방지 조건을 다룬 기록입니다.
CURATED NOTES
각 글은 하나의 대표 주제에만 분류했습니다. 시리즈가 있는 글에서는 구현 순서와 앞뒤 글도 함께 확인할 수 있습니다.
트랜잭션·데이터 정합성 · 6개 글 · 작성일 최신순
요청 객체를 static 필드에 보관하면 한 요청이 다른 요청의 상태를 덮을 수 있습니다. 겹치는 실행 순서와 요청 범위 안에서 값을 전달하는 방법, 동시성 검증 기준을 살펴봅니다.
목록 응답 객체를 전체 주문처럼 저장하면 화면에 없던 값이 null로 덮일 수 있습니다. 식별자와 변경 의도만 받고 서버에서 현재 상태를 다시 읽는 방법을 살펴봅니다.
JOIN으로 성적서 대상 행이 늘어나자 Java 반복문이 행마다 번호를 증가시켜 Report ID가 건너뛰었습니다. 발급 대상과 연결 주문을 별도 쿼리로 조회해 해결한 사례입니다.
DB Link 대신 각 DB에 직접 연결하고 매퍼를 분리한 뒤, 조건에 따라 참여하는 데이터소스를 하나의 Spring 트랜잭션 선언으로 관리하도록 Atomikos 기반 JTA를 구성했습니다.
Spring 서비스의 멤버 변수가 동시 요청 사이에서 주문 데이터를 섞을 수 있었습니다. 요청 데이터를 지역 변수로 옮기고 주문 유형의 공통 동작을 인터페이스로 분리했습니다.
공인 성적서의 원본·재발급·폐기 상태를 발행 순번으로 연결했습니다. 진위 확인과 동시 재발급도 같은 상태 규칙으로 처리했습니다.