그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록Concurrency
Concurrency

교착 상태에 대해 설명해주세요.

실무4/5
설계4/5
인간4/5
기초4/5

면접관의 질문 의도

데드락 4조건을 외운 사람과 시스템 자원 흐름까지 보는 사람을 가르려는 질문이다. 정의에서 멈추는지, 어느 조건을 어떤 상황에 어떻게 깨야 하는지로 이어가는지를 본다.

큐레이션 답변

학습 자료

교착 상태는 여러 스레드나 프로세스가 서로 가진 자원을 기다리면서 영원히 진행되지 않는 상태다. 상호 배제, 점유 대기, 비선점, 원형 대기 네 조건이 동시에 성립할 때 발생하며, 어느 하나만 깨도 막을 수 있다. 다만 어떤 조건을 어떻게 깨는지는 시스템 특성에 따라 갈린다 — 자원 획득 순서 통일은 락 종류가 많지 않을 때 잘 듣고, tryLock 타임아웃은 회복은 되지만 재시도 폭주를 부를 수 있다. 그래서 예방과 회복 전략을 함께 두고 트레이드오프를 본다.

좋은 답변 구조

  1. 01교착 상태를 4가지 필요 조건으로 분해한다
  2. 02어느 조건을 깨야 이 시스템에 맞는지 판단 기준을 제시한다
  3. 03예방(자원 순서 통일·중첩 락 회피)과 회복(tryLock·타임아웃·검출) 전략을 비교한다
  4. 04본인 서비스에서 실제로 어떻게 풀었는지로 마무리한다

자주 실수하는 포인트

4가지 조건만 외우고 어느 조건을 어떻게 깨야 하는지로 이어가지 못한다
락 순서 표준화 같은 예방만 말하고 tryLock·타임아웃 같은 회복 전략은 빠뜨린다
DB 락 데드락과 애플리케이션 락 데드락을 같은 기준으로 다룬다

실무 맥락

  • 여러 스레드가 같은 자원에 동시 접근하는 결제·정산 처리
  • DB 락과 애플리케이션 락이 함께 걸리는 트랜잭션 흐름
  • 공유 자원을 다루는 장기 실행 배치 작업

본인 경험에 녹이는 힌트

스레드 덤프에서 데드락을 잡아본 경험이 있다면 그 추적 과정과 연결할 수 있다

락 순서를 표준화해서 장애 빈도가 줄었던 사례를 운영 신뢰도 개선과 엮을 수 있다

tryLock 타임아웃 값을 어떻게 정했는지 자기 서비스 트래픽 특성과 연결할 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1교착 상태와 기아 상태는 어떻게 구분하나요
Q2ReentrantLock의 tryLock은 어떤 장단점이 있나요
Q3락 순서 규약을 팀에서 어떻게 강제하나요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문