CodePoet / Essay

무한 루프는 버그가 아니었다

팀과 팀 사이에서 매일 일을 나누다 발견한 조직의 작동 원리. 팀마다 목적이 하나씩 뚜렷할 때 서로의 견제는 상승효과가 되고, 이 루프가 멈추지 않는 것이 목표다 — 옳은 말이 일이 되어 돌아오면 루프는 멈추고, 새 일은 언제나 R&R의 회색지대에서 태어난다. 회색지대의 일에 필요한 것은 끌어안는 사람, 아니면 빠른 지정이다.
2026-08-29
리더십조직R&R

이름으로 가득한 일주일

월요일에 이번 주 노트를 연다. 리더 회의, 실무 회의, 팀 회의. 기획과 논의할 것, 백엔드와 논의할 것. 프론트엔드·QA·운영·사업·고객지원. 그 아래로 사람 이름이 스무 개 가까이 이어진다. 이름마다 논의할 내용이 한 칸씩.

이 노트에는 상설 섹션이 하나 있다. R&R 미정의 과제. 매주 갱신하는데, 비어 있던 주가 없다. 이 문의는 어느 창구로 가야 하나. 이 작업은 누구의 것인가. 그런 문장이 한 줄씩 쌓이는 자리다. (처음 리더가 되었을 땐 이런 질문들이 매일 머리를 떠나지 않았다.)

내 일은 만드는 일이라고 오래 생각했다. 요즘의 내 일은 만나고, 나누고, 분장하는 일이다.

팀마다 목적이 하나씩

그 많은 자리를 돌다 보면 보이는 게 있다. 잘 도는 자리에는 공통점이 있다. 팀마다 목적이 하나씩, 뚜렷하게 있다.

기획은 사용자가 원하는 것을 만든다. 백엔드는 안정성을 지킨다. QA는 무너질 자리를 미리 밟아 본다. 사업은 팔 곳을 찾고, 법무는 법적 문제를 막고, 운영은 이슈를 받아낸다. 여섯 개의 목적. 하나도 겹치지 않는다.

하나의 제품에 새 기능이 들어오면 이들이 한자리에 모인다. 각자 자기 목적의 자리에서 말한다. 기획은 사용자를 대신해 따지고, 백엔드는 안정성을 대신해 따지고, 법무는 법을 대신해 따진다. 서로가 서로를 견제한다. 그 견제를 통과한 것만 검증된 채로 나아간다.

견제는 대개 나쁜 말로 쓰인다. 붙잡는 말, 늦추는 말. 그런데 이 자리들을 매일 돌면서 반대라는 걸 알았다. 견제가 속도를 늦추는 게 아니었다. 서로의 목적이 뚜렷해서 견제가 성립할 때만, 조직은 앞으로 간다.

무한 루프

개발자에게 무한 루프는 버그다. 종료 조건을 빠뜨린 실수. 프로세스를 죽이고 원인을 찾아야 하는 상황.

조직에서는 반대였다. 모이고, 따지고, 검증되고, 나아가고, 다시 모이는 — 이 루프가 멈추지 않고 도는 것이 목표였다. 제품이 살아 있는 한 새 기능은 계속 들어오고, 루프는 계속 돌아야 한다. 무한 루프는 버그가 아니라 설계 목표였다.

조용한 종료 조건

이 루프에도 종료 조건이 있다. 요란하게 터지지 않는다. 조용히 발동된다.

올바른 얘기는 대개 일을 만든다. 이 기능엔 고지가 필요하다고 말하면 고지 작업이 생기고, 이 구조는 마이그레이션이 필요하다고 말하면 마이그레이션이 생긴다. 말한 사람의 일이 되거나, 들은 팀의 일이 된다. 어느 쪽이든 누군가의 일주일이 무거워진다.

그러니 다들 배운다. 옳은 말을 할수록 일이 늘어난다는 것을. 그리고 어느 순간부터 아무도 말하지 않는다.

그건 어디어디 팀의 일인데요. 우리 팀 일은 아닌데요.

경계를 긋는 말이 늘어난다. 틀린 말이 아니라서 더 막기 어렵다. 각자 자기 경계 안에서는 성실하다. 그런데 루프는 선다. 모이고, 따지고, 검증되고, 나아가던 회전이 각자의 성실 속에서 멈춘다.

새 일은 회색지대에서 태어난다

조직이 크면 자리 잡힌 일에는 구조가 있다. R&R이 그어져 있고, 창구가 있고, 프로세스가 있다. 거기서는 루프가 저절로 돈다. 말이 어느 창구로 가야 하는지 다들 아니까. (그 창구를 조직과 조직 사이에 놓던 기록.)

문제는 새로운 일이다. 새 일이 추진될 때는 모든 것이 회색지대에 있다. 이 일이 니 일이냐 내 일이냐. 이 문의는 어디로 가느냐. 아무것도 그어져 있지 않다. 구조는 일이 자리를 잡은 뒤에야 생긴다. 구조는 언제나 새 일보다 늦다.

그리고 회색지대는 하필 종료 조건이 가장 잘 발동되는 자리다. 경계가 없는 곳일수록 경계를 긋는 말이 쉽다. 우리 일 아닌데요, 한마디면 되니까.

노트의 R&R 미정의 과제 섹션이 매주 차 있는 이유를 그제야 알았다. 정리가 덜 된 게 아니었다. 새 일을 하는 조직의 정상 상태였다.

끌어안는 사람

그래서 회색지대의 일은 둘 중 하나를 기다린다.

하나는 그걸 끌어안고 가는 누군가다. 니 일이냐 내 일이냐가 정해지기 전에, 일단 자기 쪽으로 당겨서 굴러가게 만드는 사람. 그 사람이 있으면 루프는 회색지대에서도 돈다.

그 누군가가 없다면 — 의사결정권자가 빠르게 지정해 줘야 한다. 이 일은 여기 것이다, 하고 종지부를 찍는 일. (그 종지부가 처음 찍히던 회의의 기록.) 지정이 늦을수록 회색지대의 일들은 그 자리에서 식는다.

내 노트에는 섹션이 하나 더 있다. 내가 혼자 하면 되는 것. 열어 볼 때마다 줄이 늘어나 있다.

이 줄들이 처음부터 내 것이었는지, 누구의 것도 아니어서 여기로 흘러들어온 것인지는 아직 다 가려내지 못했다. 다만 이제 이것 하나는 안다. 회색지대의 일 앞에서는 둘 중 하나가 일어나야 한다. 누군가 끌어안거나, 누군가 지정하거나. 내 손이 닿는 자리에서는 그 일이 오래 떠 있게 두지 않기로 한다.

이 글에 남긴 포스트잇0

아직 포스트잇이 없어요. 첫 자리를 남겨보세요.

이어 읽을 글
감정은 신호였다될지 안 될지 모르는 일을 기한 안에 해내야 하는 요즘, 가장 고약한 건 모르는 걸 모르는 상태였다. 사람에게는 AI에 없는 센서가 있다 — 감정이다. 화남·슬픔·억울함·감동은 내가 모르던 무언가가 근처에 있다는 신호이고, 모델이 loss로 배우듯 사람은 감정으로 모름을 감지한다. 감정을 신호로 읽기 시작하자 마음의 힘듦과 해야 할 일·해야 할 말이 갈라졌다 — 재촉하는 사람의 불안도 같은 신호였다. 그리고 사람도 환각한다 — 모른다는 걸 모른 채 아는 해법으로 문제의 본질을 덮는다. 부딪혀야 신호가 온다.이제부터 나는 최맹보다홍명보가 화면에 'FIGHT' 한 단어만 띄우고 '싸워'를 반복하던 국가대표팀 다큐 장면이 밈이 됐다. 웃다가 뜨끔했다 — 명확한 결과물이 안 그려질 때 나도 팀 앞에 큰 그림 하나 걸어놓고 '싸워'라고 하고 있었으니까. 개발자로 살던 내가 리더가 되며 나를 버렸다. 홍명보가 2024년 취임 회견에서 '저는 저를 버렸습니다'라고 했던 것처럼(2014년엔 '대한민국이 날 버렸어'라며 버림받은 쪽이었지만). 옳게 짜인 구조보다 리소스 효율·목적·결과물로 판단하는 자리로 옮기자, 오래 나를 붙들던 꺼림칙함이 남았다 — 이거 이렇게 해도 되나. 분류학을 들여다보다 그 정체를 알았다. 그 불편함은 코드에 새겨진 진실이 아니라, 여러 자리의 시각을 한꺼번에 켜둔 채 아직 어느 축으로 결정할지 못 정한 상태에서 나는 잡음이었다. 이걸로도 되고 저걸로도 되는데 한쪽이 공수가 더 들면 동작하는 걸로 간다. 장기적 문제는 다른 축이 던지는 질문이고, 이 규모·이 시점 축에선 답이 이미 나와 있다. 다만 어떤 꺼림칙함은 잡음이 아니라 진짜 신호다 — 그 둘을 가려내는 게 지금 내 숙제다.뿌옇게 읽어도 된다룰루 밀러 《물고기는 존재하지 않는다》를 《죽음의 수용소에서》·《무엇이 내 인생을 만드는가》와 나란히 읽었다. 낯선 책이 뿌옇게 읽히는 게 오래 내 탓인 줄 알았는데, 독서는 완성된 영화가 아니라 문장이 올 때마다 흐릿한 모형을 고쳐 짓는 일이었다. 완모식표본은 종의 모범생이 아니라 이름이 떠내려가지 않게 박은 닻이고, 임베딩·클러스터링도 같은 일을 한다 — 기준이 지도를 만든다. 그러다 알았다. 개발자로 살다 막 리더가 된 내가 매일 하는 일이 이거였다는 걸. 모르는 걸 실패로 오역해 화가 났고, 그 화는 실은 경계의 신호였고, 프랑클이 말한 유머로 반 뼘 올라서니 나를 화나게 한 사람 얼굴에 내 얼굴이 겹쳤다. 분류는 세상 그 자체가 아니라, 어떤 문제를 이해하기 위해 특정 관점에서 그린 임시적인 지도다.
dev · 2026. 9. 20.