데드락은 컴퓨터 과학 용어지만 사람 사이의 교착을 돌아보게 하는 좋은 비유다

데드락(deadlock)은 원래 컴퓨터 과학 용어다. 여러 작업이 서로가 가진 자원을 기다리면서 누구도 앞으로 나아가지 못하는 상태를 뜻한다. 시스템 안에서는 아주 구체적인 문제지만, 사람 사이의 갈등과 조직의 교착을 돌아볼 때도 꽤 유용한 비유가 된다.
물론 사람은 스레드가 아니고, 관계는 운영체제가 아니다. 그래서 둘을 완전히 같다고 보면 곤란하다. 다만 데드락의 구조를 빌리면 왜 모두가 멈췄는지를 더 차분하게 볼 수 있다.
데드락은 대개 네 가지 조건이 겹칠 때 생긴다
운영체제 교재는 데드락이 가능해지려면 보통 네 가지 조건이 함께 성립한다고 설명한다.
- 동시에 공유할 수 없는 자원이 있다
- 이미 가진 것을 놓지 않은 채 다른 자원을 기다린다
- 강제로 빼앗기지 않는다
- 서로가 서로를 기다리는 순환이 생긴다
사람 사이의 교착도 비슷한 모습을 보일 때가 있다. 각자 자기 시간, 권한, 체면, 정보, 결재권을 쥔 채 다른 쪽의 양보를 기다리고, 먼저 풀 장치가 없으면 일이 멈춘다.
인간 관계에 비유할 때는 ‘구조’만 빌리는 편이 안전하다
데드락 비유가 좋은 이유는 누가 더 나쁜가보다 무엇이 서로를 묶고 있는가를 먼저 보게 만들기 때문이다. 예를 들면 이런 식이다.
- 두 팀이 서로의 승인 없이는 일을 못 한다
- 둘 다 이미 일정과 책임을 쥔 채 추가 자원만 기다린다
- 누구도 우선순위를 재조정할 권한이 없다
- 결정 순서가 꼬여 서로 먼저 움직이기만 바란다
이때 필요한 것은 종종 설득보다 구조 조정이다.
교착을 풀려면 보통 하나의 조건을 깨야 한다
시스템에서 데드락을 막는 방법도 결국 네 조건 중 하나를 깨는 것이다. 사람과 조직에서도 비슷하다.
- 자원 경쟁을 줄인다
- 순서를 명확히 정한다
- 중재자가 우선순위를 정한다
- 일부 요구를 먼저 내려놓는다
즉, 갈등이 오래 간다고 해서 반드시 감정만의 문제는 아니다. 순서와 권한, 자원 배분의 구조가 잘못되어 있을 수도 있다.
마치며
데드락은 사람을 설명하는 만능 이론이 아니다. 하지만 교착 상태를 개인 성격 문제로만 보지 않게 해 준다는 점에서 좋은 비유다. 서로가 서로를 기다리고, 아무도 먼저 풀 수 없는 구조가 있으면 결국 관계도 프로젝트도 멈춘다.
문제를 푸는 첫 단계는 종종 누가 잘못했는가보다 어떤 조건이 서로를 묶고 있는가를 보는 일이다. 그 질문은 시스템에서도, 사람 사이에서도 꽤 유효하다.