임계 영역을 줄여도 상태 판정과 커밋 경계는 함께 둔다
느린 I/O는 밖으로 옮기되 불변식에 참여하는 읽기·검증·쓰기는 분리하지 않습니다.
| 코드 | lock 안 | 이유 |
|---|---|---|
| 입력 파싱 | 밖 | 공유 상태 아님 |
| 현재 상태 읽기 | 안 | 판정 기준 |
| 불변식 검증 | 안 | 경쟁 방지 |
| 상태 commit | 안 | 원자 변경 |
| 로그·I/O | 가능하면 밖 | 긴 점유 방지 |
핵심: unlock 실패가 본래 업무 예외를 가리지 않도록 소유권 구조를 단순하게 유지합니다.
느린 I/O는 밖으로 옮기되 불변식에 참여하는 읽기·검증·쓰기는 분리하지 않습니다.
| 코드 | lock 안 | 이유 |
|---|---|---|
| 입력 파싱 | 밖 | 공유 상태 아님 |
| 현재 상태 읽기 | 안 | 판정 기준 |
| 불변식 검증 | 안 | 경쟁 방지 |
| 상태 commit | 안 | 원자 변경 |
| 로그·I/O | 가능하면 밖 | 긴 점유 방지 |
핵심: unlock 실패가 본래 업무 예외를 가리지 않도록 소유권 구조를 단순하게 유지합니다.