실전 회피 전략

무한 대기 대신 실패를 다루는 루프를 둔다

실무의 데드락 회피는 모든 요청을 증명하기보다, 위험한 대기를 짧게 끊고 재시도와 대체 경로를 설계하는 쪽에 가깝다.

order

락 순서 고정

가능한 모든 코드 경로가 같은 전역 순서로 자원을 잡게 한다.

try

두 번째 락은 시도

획득 실패 시 블로킹하지 않고 즉시 판단할 수 있게 만든다.

release

보유 락 반납

부분 점유를 오래 유지하지 않아 점유와 대기 시간을 줄인다.

backoff

간격을 두고 재시도

지수 백오프나 랜덤 지연으로 같은 충돌 타이밍을 피한다.

fallback

한계 후 대체 로직

재시도 횟수나 시간 제한을 넘으면 큐 적재, 롤백, 오류 응답으로 전환한다.

성공

두 락을 모두 얻으면 짧은 임계 영역을 수행하고 역순으로 해제한다.

재시도

충돌은 장애가 아니라 정상 경로로 보고, 상태를 깨끗하게 되돌린 뒤 다시 시도한다.

복구

계속 실패하면 사용자 요청을 무한정 붙잡지 않고 상위 정책으로 넘긴다.