깨진 유리창 이론 원문을 1982년 애틀랜틱에서 읽었다

CTO 와 마주 앉으면 깨진 유리창 얘기가 자주 나온다. 유리창 하나를 그대로 두면 나머지도 깨진다, 그러니 작은 것부터 방치하지 말자. 들을 때마다 공감은 된다. 린트 경고를 무시하기 시작한 저장소가 어떻게 되는지는 다들 봤으니까.

매번 뭔가 하나가 걸렸다. 그래서 원문을 찾아 읽었다. 1982년 3월 《애틀랜틱 먼슬리》에 실린 제임스 Q. 윌슨과 조지 켈링의 글이다. 유리창 비유는 거기서 나온 게 맞다.

읽어보니 이 글의 출발점은 주민의 마음가짐이 아니었다.

밝은 사무실 유리 파티션에 금이 하나 가 있고 그 뒤 안내 데스크 의자가 비어 있는 장면

이 글에서 내가 한 건 1982년 3월 《애틀랜틱 먼슬리》 원문을 찾아 끝까지 읽고 평소 듣던 요약과 대조한 것까지다. 이후 인용하는 후속 연구와 실험은 논문과 공개 자료로 확인했고 내가 재현한 게 아니다.

원문에는 순찰 인력이 배치돼 있었다

윌슨과 켈링의 글은 1970년대 뉴저지에서 있었던 도보순찰 실험에서 나왔다. 주가 28개 도시를 대상으로 지역사회 개선 프로그램을 돌리면서 예산으로 경찰 도보순찰을 지원했고, 켈링이 그 결과를 평가했다.

결과는 이랬다. 도보순찰은 기록된 범죄를 줄이지 못했다. 그런데 그 동네 주민들은 더 안전하다고 느꼈다. 두 저자는 이 어긋남을 설명하려고 했고, 도보순찰 경관이 한 일은 범죄와 싸운 게 아니라 질서를 유지한 것이라고 봤다. 시끄러운 무리를 옮기고, 주민들이 중요하게 여기는 비공식 규칙을 집행하는 일.

그러니까 이 이야기의 앞에는 처음부터 배치된 사람이 있다. 주민들이 마음을 다잡아서 동네가 나아진 게 아니라, 예산이 붙고 인력이 걸어 다니기 시작한 뒤에 체감이 바뀐 것이다. 유리창은 그 상태를 설명하기 위해 나온 비유고, 원인이 아니라 지표에 가깝다.

이 절반이 인용될 때 대체로 빠진다. 남는 건 "작은 것을 방치하지 마라"라는 규범 한 줄이다. 규범만 떼어놓고 보면 마음가짐 얘기가 되지만, 원문 맥락에서 이건 예산 얘기다.

하나 더 적어둘 게 있다. 1982년 글은 논증이지 실증이 아니다. 두 사람은 무질서가 범죄를 유발한다는 걸 통제된 방식으로 검증하지 않았다. 주장이 틀렸다는 뜻은 아니고, 이 글이 근거로 인용될 때 무엇이 인용되고 있는지는 알고 쓰자는 뜻이다.

코드에서는 맞고 사람에서는 반박됐다

원문들을 훑으면서 제일 뜻밖이었던 게 이 부분이다.

이 이론을 소프트웨어에 적용해서 실제로 재본 연구가 있다. 스피넬리스, 로우리다스, 케차기아, 샤르마가 2024년 10월에 올린 「Broken Windows: Exploring the Applicability of a Controversial Theory on Code Quality」(arXiv:2410.13480)다. C 코드 메트릭과 자바 코드 스멜을 파일 커밋 단위로 놓고, 개발자가 손대는 파일의 기존 품질에 따라 자기 코드의 품질을 조정하는지 봤다.

결론은 대체로 이론 쪽이었다. 과거 코드 품질이 이후 변경에 영향을 준다. 개발자는 마주친 코드 상태에 따라 다르게 행동한다.

세 번째 발견이 더 쓸모 있다. 스타일 불일치가 구조적 문제와 반드시 같이 가지는 않는다. 들여쓰기가 제멋대로인 파일이 설계까지 썩어 있는 건 아니고, 포매터를 통과한 파일이 구조적으로 멀쩡한 것도 아니다. 둘은 따로 논다.

이건 실무에서 자주 뒤섞이는 지점이다. 보이는 게 스타일이라서, 유리창 얘기가 나오면 손이 먼저 가는 쪽도 스타일이다. 린트 규칙을 조이고 포매터를 강제하면 저장소는 눈에 띄게 깨끗해진다. 그런데 그 작업은 구조적 부채를 건드리지 않는다. 창틀을 닦은 것이지 깨진 유리를 간 게 아니다. 게다가 깨끗해진 화면은 "우리는 유리창을 관리하고 있다"는 착시를 만든다. 진짜 부채가 다음 분기로 넘어가기 딱 좋은 조건이다.

그런데 사람과 동네 쪽으로 가면 그림이 반대다. 하코트와 루드윅이 2006년 《시카고 대학 로 리뷰》 73권에 실은 「Broken Windows: New Evidence from New York City and a Five-City Social Experiment」는 뉴욕의 1989~1998년 범죄 데이터를 독립적으로 다시 분석하고, 거기에 MTO(Moving to Opportunity) 실험 결과를 붙였다. MTO는 뉴욕·시카고·로스앤젤레스·볼티모어·보스턴 다섯 도시에서 저소득 가구 약 4,600곳에 주거 바우처를 무작위로 배정한 사회 실험이다. 무질서가 심한 동네에 살던 가구 일부를 덜 무질서한 동네로 옮긴 셈이니, 이론을 검증하기에 꽤 좋은 설계다.

두 사람의 결론은 무질서와 범죄 사이의 단순한 1차 관계를 지지하는 근거가 없다는 것이었다. 깨진 유리창식 치안이 희소한 법집행 자원의 최적 배분이라는 주장도 지지되지 않았다.

같은 이론인데 근거가 이렇게 갈린다.

코드에 대해서는 2024년 커밋 단위 메트릭 분석에서 전염이 관측됐다. 사람과 동네에 대해서는 2006년 5개 도시 무작위 배정 실험에서 지지되지 않았다.

이 표가 불편한 건 실무에서 이 비유가 쓰이는 방향이 정확히 반대라서다. 대화는 대개 코드에서 시작한다. 저 경고 무시하지 말자, 저 TODO 쌓이면 위험하다. 여기까지는 근거가 있다. 그런데 문장은 거기서 멈추지 않고 사람 쪽으로 넘어간다. 우리 조직에 주인의식이 없다, 다들 자기 일만 한다. 넘어가는 순간 근거는 뒤에 두고 온다.

코드에 대해 참인 명제를 사람에게 그대로 쓸 수 있다고 믿는 순간, 이 비유는 오작동하기 시작한다.

유리창을 지키는 비용은 계산된다

비유를 조금 더 밀어보자. 유리창을 안 깨지게 하려면 누가 지켜야 한다. 24시간 한 자리를 채우는 데 사람이 몇 명 필요한지는 계산이 된다.

주당 168시간을 40시간으로 나누면 4.2명이다. 여기에 휴가·병가·교육을 반영하는 보정 계수를 곱하는데, 실무에서 흔히 쓰는 값이 1.15~1.25다. 그러면 한 자리에 대략 4.8~5.3명이 필요하다. 한 명이 아니라 다섯 명이다.

이 숫자를 놓고 보면 선택지가 셋으로 좁혀진다.

유리를 갈아 끼우는 길이 있다. 리팩터링과 현대화 시간을 예산 항목으로 잡는 것이다. 경비를 세우는 길도 있다. 유지보수 전담을 배치하는 건데 다섯 명어치다. 아니면 깨진 채로 두는 길이 있다. 대신 그렇게 결정했다고 적어둔다.

셋 다 정당한 선택이다. 3번도 그렇다. 모든 유리창을 고치는 조직은 없고, 안 고치기로 한 것을 적어두면 그건 방치가 아니라 관리다.

그런데 실제로 자주 벌어지는 건 이 셋 중 어느 것도 아니다. 유리값도 안 내고 경비도 안 세우면서 규범만 선포하는 네 번째. 이건 결정을 미룬 것이고, 그렇다고 비용이 사라지지는 않는다. 남은 사람의 시간으로 옮겨갈 뿐이다.

여기서 원 비유의 조건 하나가 드러난다. 이 논리가 성립하는 건 수리비가 신호 비용보다 훨씬 쌀 때뿐이다. 유리 한 장은 싸니까, 안 고치는 게 "여긴 아무도 안 본다"는 신호로 읽히는 게 손해다. 그런데 10년 된 결제 모듈 교체는 3인·3개월짜리다. 부등호가 뒤집힌다. 그 구간에 이 비유를 갖다 대면 행동은 안 나오고 죄책감만 남는다.

린트 경고는 유리창이 맞다. 레거시 시스템은 유리창이 아니라 건물 구조 문제다. 둘을 같은 단어로 부르는 순간 둘 다 관리에서 빠진다.

지시에는 뺄셈이 있어야 한다

"깨진 유리창을 두지 마라"는 지시가 아니다. 뺄셈이 없기 때문이다.

우선순위는 정의상 뒤로 밀리는 게 있다는 뜻이다. 뒤로 밀리는 것을 말하지 않으면 그건 순위가 아니라 목록이고, 실행하는 쪽에서는 "다 하라"와 구분되지 않는다. 그리고 다 못 하면 실행한 사람의 문제로 정산된다. 관리하는 쪽에서 가장 저렴한 형태다. 결정을 안 해도 되고 책임은 아래에 남는다.

개선이 필요하다면 이 정도는 같이 와야 지시가 된다.

  • 목록: 지금 무엇이 유리창인지. 이름이 붙은 항목이어야 한다. "코드 품질"은 항목이 아니다.
  • 순서: 그중 이번 분기에 손대는 건 어디부터 어디까지인지.
  • 대가: 그걸 하느라 미뤄지는 게 무엇인지. 이게 빠지면 나머지는 장식이다.
  • 면제: 안 고치기로 한 것. 위에서 말해줘야 아래가 죄책감 없이 넘어간다.
  • 판정: 고쳐졌다는 걸 무엇으로 보는지. 사람 눈이 아니라 지표나 산출물로.

말로만 하면 추상적이니 나란히 붙여본다.

선포: "기술 부채를 방치하지 맙시다. 각 팀이 책임감을 갖고 챙겨주세요."

지시: "결제 모듈 에러 핸들링(항목), 이번 분기 1순위(순서). 대신 관리자 개편은 다음 분기로 미룹니다(대가). 로그 수집기 교체는 내년까지 안 합니다(면제). 종료 조건은 결제 실패 알림의 미분류 비율 30% 아래(판정)."

지시 쪽이 길다. 길어야 한다. 짧은 쪽은 아무도 반박할 수 없고 아무 일도 일어나지 않지만, 긴 쪽은 읽는 사람이 당장 반박할 수 있다. 관리자 개편이 왜 밀리냐고 물을 수 있고, 30%가 왜 그 숫자냐고 물을 수 있다. 반박 가능하다는 게 지시의 조건이다.

여기서 흔한 반론이 "내가 세부를 다 알 수는 없다"인데, 그건 사실이고 정당하다. 다만 그때 정직한 형태는 규범이 아니라 위임이다. 목록은 너희가 만들어 와라, 대신 그중 무엇에 시간을 줄지는 내가 정한다. 이건 제대로 된 지시다. 목록만 받아가고 배분을 안 하면 다시 규범으로 돌아가고, 그러면 실무자는 자기가 쓴 목록으로 자기가 평가받는 상태가 된다.

실무 쪽에서 이 대화를 지시로 바꾸는 방법도 같은 구조다. 유리창 목록을 만들어 올리되, "어디부터 할까요"가 아니라 "이걸 하려면 무엇을 미뤄야 하는데, 무엇을 미룰까요"로 묻는다. 앞의 질문은 "다 해야지"로 되받을 수 있지만 뒤의 질문은 안 된다. 답이 안 오면 그 자체가 답이고, "다 해라"라고 오면 그건 기록으로 남는다. 나중에 뭔가 깨졌을 때 마음가짐 얘기가 다시 나오는 걸 막아주는 건 그 기록 한 줄이다.

자발성은 요구할 수 있는 항목이 아니다

유리창을 고치는 행위는 조직 용어로 조직시민행동(OCB)에 해당한다. 직무 기술서에 없는데 하는 일. 지시받지 않았는데 고치는 것.

이게 무엇과 같이 가는지를 잰 메타분석이 있다. 마이어·스탠리·허스코비치·토폴니츠키가 2002년 《Journal of Vocational Behavior》 61권에 실은 조직몰입 메타분석이다. 조직몰입을 세 종류로 나눈 게 핵심인데, 여기서는 둘만 보면 된다. 정서적 몰입은 있고 싶어서 남는 것이고, 지속적 몰입은 나가는 비용이 커서 남는 것이다.

조직시민행동과의 상관은 이렇게 나왔다.

정서적 몰입, 그러니까 있고 싶어서 남는 쪽은 상관이 .32 다. 22개 연구 6,277명 기준이다. 지속적 몰입, 나가는 비용 때문에 남는 쪽은 −.01 이다. 13개 연구 4,367명이다.

같은 표에서 성과는 .16 대 −.07, 결근은 −.15 대 .06이었다.

−.01은 관계가 없다는 뜻이다. 남아 있는 것과 유리창을 고치는 것은 별개다. 감축 이후에 남는 인력의 몰입이 어느 쪽으로 기우는지를 생각하면, 이 숫자가 무슨 말을 하는지는 분명하다. 잔류율은 유지되는데 자발적 수리만 사라지는 상태가 통계적으로 가능하다는 뜻이다.

그리고 원 이론에는 조용한 전제가 하나 더 있다. 주민이 계속 살 생각이라는 것. 내년에도 여기 있을 사람이니까 남의 창까지 신경 쓴다. 희망퇴직과 미충원은 그 전제를 직접 건드린다. 옆집이 언제 비는지 모르고 내 자리도 확실치 않은 상태에서 남의 창을 고치는 건 착한 게 아니라 계산이 안 되는 것이다. 마음가짐이 나빠진 게 아니라 전제가 사라졌다.

그러니 자발성은 요구할 수 있는 투입이 아니다. 관측되는 결과다. 요구한다는 것 자체가 이미 없다는 신호고, 지분 없는 사람에게 주인 행세를 시키는 쪽에 가깝다. 소유권은 안 주고 책임만 이전하는 것.

예산은 숫자가 아니라 서열 발표문으로 읽힌다

앞에서 말한 조건이 지금 업계 전체에서 한꺼번에 흔들리고 있다.

2026년 1분기 테크 업계 감원은 81,747명으로, 최소 2024년 1분기 이후 분기 기준 최대치였다. 연중 누적으로는 14만 명대가 보도됐다. 같은 기간에 아마존·마이크로소프트·알파벳·메타 네 곳이 공시한 2026년 설비투자 계획 합계는 약 7,000억 달러다. 2025년의 거의 두 배다. 보도에 따르면 메타는 5월 감원을 AI 투자 비용의 상쇄로 내부에 설명했다.

여기서 인과를 "AI가 사람을 대체했다"로 잡는 건 근거가 약하다. 실제로 벌어진 건 대체라기보다 재배분에 가깝다. 인건비를 줄여서 데이터센터로 옮긴 것이고, 사람이 하던 일이 모델로 넘어갔다는 증명은 그 숫자 안에 없다.

그런데 직원 입장에서 읽히는 건 인과가 아니다. 순위다.

사람들은 예산을 숫자로 읽지 않는다. 무엇이 중요한지에 대한 발표문으로 읽는다. 그리고 그 독해는 대체로 정확하다. 비용 절감 자체는 납득된다. 회사가 어렵다고 하면 대부분 수긍한다. 못 견디는 건 결핍이 아니라 모순이다. 한쪽에서 몇십만 원짜리 도구 결재가 반려되는데 다른 쪽에서 조 단위가 흐르는 게 보이면, 그 순간 메시지가 번역된다. "돈이 없다"가 아니라 "너희 순위가 낮다"로. 이번에는 팀 대 팀 구도도 아니고 사람 대 도구 구도다.

여기에 AI 특유의 요소가 하나 더 붙는데, 이게 아마 가장 단단한 유리창이다. 도구로 세 배 빨라진 사람에게 돌아오는 게 여유가 아니라 물량이면, 개선의 이득이 위로만 흐른다는 걸 본인 경험으로 확인하게 된다. "유리창을 왜 고치나"에 대한 답을 조직이 직접 시연해준 셈이다. 고쳐도 내 것이 안 된다는 걸 한 번 확인하면 그 뒤로는 설득이 안 된다.

방향을 뒤집으면 이론이 오히려 잘 맞는다

여기까지 오면 순서가 뒤집힌다. 직원들의 마음에 깨진 유리창을 만든 게 회사 쪽인 경우가 많고, 그 방향에서 이 이론은 훨씬 잘 작동한다.

원 이론에서 인과를 만드는 건 손상 자체가 아니라 신호다. 유리 한 장은 싸다. 비싼 건 "여긴 아무도 안 보고 있고 뭘 해도 반응이 없다"는 메시지다. 조직에 그대로 대입하면 목록이 나온다. 나간 사람 자리가 반년째 비어 있는 것. 걷어내겠다던 레거시가 두 번의 로드맵을 건너 그대로 있는 것. 작년에 올린 개선 제안이 반려도 승인도 아니고 그냥 묻힌 것. 각각은 작다. 신호는 크다.

그리고 전파되는 게 감정이 아니라 증거라서 빠르다. 한 사람의 제안이 묻히는 걸 옆에서 본 사람은 직접 시도해볼 필요가 없다. 남이 대신 실험해준 결과를 공짜로 얻었으니까. 그래서 "분위기가 나빠졌다"는 표현은 부정확하다. 각자 관측한 데이터로 합리적으로 갱신한 결과에 가깝고, 그러니 사기 진작 이벤트로는 안 움직인다. 데이터가 안 바뀌었으니까.

여기에 비대칭이 붙는다. 깨지는 건 한 번의 사건인데 복구는 반복된 사건이어야 한다. 한 번 묻힌 제안이 한 번의 좋은 응답으로 회복되지 않는다. 사전 확률이 내려간 상태에서 좋은 응답 하나는 예외로 분류된다. 그래서 늦게 손댈수록 비용이 선형이 아니라 가파르게 오른다. 원 비유의 "빨리 고쳐라"가 옳은 진짜 이유가 이것이다. 미덕이 아니라 복리다.

그리고 분위기 단계를 지나 구성으로 굳는 지점이 있다. 사람이 나가면서 확정되는데, 나가는 순서가 문제다. 시장성 있는 사람이 먼저 나가고 남는 건 나가는 비용이 큰 쪽이다. 그러면 조직의 평균 성향이 실제로 바뀐다. 아까 −.01이 있던 자리다. 여기서부터는 문화 문제가 아니라 인적 구성 문제라 되돌리는 데 몇 년이 걸린다.

처방은 원문에서 그대로 가져올 수 있다. 빨리, 눈에 보이게, 작은 것부터. 조직에서 그건 대규모 개편이 아니라 응답이다. 하나에 답을 주는 것. 그리고 여기서 중요한 건 "안 한다"도 응답이라는 점이다. 원 비유에서도 창을 판자로 막는 것조차 방치보다 낫다. 무응답이 거절보다 나쁘다. 거절은 결정이지만 무응답은 아무도 없다는 신호이기 때문이다. 앞에서 얘기한 "안 고치기로 한 건 적어둔다"가 여기서 다시 만난다.

셀 수 있는 것

이걸 실제로 재보고 싶으면 셀 수 있는 게 몇 개 있다.

  • 제안이 올라간 뒤 응답까지 걸린 시간의 중앙값. 평균은 소용없다. 늦게 답한 몇 건이 다 가린다.
  • 공석의 평균 지속 기간. 충원 계획이 아니라 실제 채워진 날까지.
  • 올라온 제안 중 "안 한다"로 명시 종결된 비율. 이게 가장 유용하다. 낮으면 무응답률이 높다는 뜻이고, 무응답률이 조직 유리창의 가장 직접적인 지표다.

이 셋은 사람의 마음가짐을 묻지 않는다. 조직의 응답 능력만 잰다. 그리고 원문이 애초에 잰 것도 그쪽이었다. 뉴어크에서 바뀐 건 주민의 태도가 아니라 거리를 걷는 사람의 수였다.

다음에 이 얘기가 나오면

깨진 유리창을 그대로 두면 다른 것도 깨진다. 맞는 말이다. 이 문장을 근거로 쓰려면 원문에 같이 있던 것들을 빼놓지 않아야 한다. 배치된 인력, 그걸 감당한 예산, 그리고 무엇을 안 지킬지에 대한 결정.

그래서 이 이야기가 나올 때 되물을 게 두 개 있다. 수리비가 얼마고 누가 고치나. 둘 중 하나라도 답이 없으면 그건 깨진 유리창이 아니라 이미 내려진 결정이다. 결정이면 리스크 목록에 올라가야지 개인의 책임감에 얹히면 안 된다. 그리고 이걸 하려면 무엇을 미루나. 답이 없으면 그건 지시가 아니고 선포다.

두 질문의 좋은 점은 상대를 몰아세우지 않는다는 것이다. 그 사람 예산선도 본인이 정한 게 아닐 가능성이 크다. 위로 갈수록 유리창은 적고 크다. 다만 자기가 못 고치는 창을 아래로 위임하면 그 경로가 곧 전염 경로가 된다.

같은 문장을 방향만 바꿔서 쓰면 된다. 먼저 세어야 할 유리창이 코드가 아니라 조직에 있다. 그리고 그쪽은 셀 수 있다.


참고 문헌

  • James Q. Wilson, George L. Kelling, "Broken Windows", The Atlantic Monthly 249(3), 1982년 3월, 29–38쪽.
  • Bernard E. Harcourt, Jens Ludwig, "Broken Windows: New Evidence from New York City and a Five-City Social Experiment", University of Chicago Law Review 73(1), 2006, 271–320쪽.
  • Diomidis Spinellis, Panos Louridas, Maria Kechagia, Tushar Sharma, "Broken Windows: Exploring the Applicability of a Controversial Theory on Code Quality", arXiv:2410.13480, 2024.
  • John P. Meyer, David J. Stanley, Lynne Herscovitch, Laryssa Topolnytsky, "Affective, Continuance, and Normative Commitment to the Organization: A Meta-analysis of Antecedents, Correlates, and Consequences", Journal of Vocational Behavior 61(1), 2002, 20–52쪽.

댓글

이 블로그의 인기 게시물

아이들은 우리 게임에 들어오지 못한다

AI가 썼다는 브라우저 300만 줄에서 112만 줄은 남의 코드였다

AI가 준 선택지, 초5 아들은 어떻게 골랐을까?