가시성부터 timed lock까지 요구가 늘 때만 도구를 확장한다
가장 강한 도구를 기본으로 쓰지 않고 상태의 최소 계약에서 출발합니다.
| 요구 | 도구 | 결과 |
|---|---|---|
| 최신 flag | volatile | boolean 상태 |
| 복합 불변식 | synchronized | 블록 보호 |
| 명시적 제어 | ReentrantLock | owner 책임 |
| 취소 대기 | lockInterruptibly | Interrupted |
| 시간 예산 | tryLock(timeout) | Acquired·Timeout |
핵심: 실패 결과는 로그 문자열보다 타입과 상태로 관찰 가능하게 만듭니다.