사라지지 않는 것은 흐르는 것이 아니라 기록되는 것이다

a010장인영

Hatched by a010장인영

Sep 04, 2026

7 min read

93%

0

당신의 수도관과 코드 저장소는 같은 문제를 안고 있다

물이 어느 날 갑자기 나오지 않을 때 사람들은 수도꼭지를 의심한다. 그러나 진짜 원인은 대개 눈에 보이지 않는 곳에 있다. 낡은 관, 누수, 압력 조절 실패, 오염 감시의 빈틈이 오랜 시간 쌓인 끝에 일상 표면으로 드러난다. 코드도 마찬가지다. 어제까지 작동하던 프로그램이 오늘 사라졌을 때 문제는 단순히 파일 하나를 잃어버린 데 있지 않다. 저장 위치가 불분명했고, 변경 과정이 기록되지 않았으며, 복구할 구조가 준비되지 않았다는 뜻이다.

이 둘은 전혀 다른 영역처럼 보인다. 하나는 지방자치단체의 상수도 정책이고, 다른 하나는 개발자의 깃허브 사용법이다. 하지만 두 영역은 한 가지 깊은 질문에서 만난다.

우리에게 정말 필요한 것은 자원이 풍부한 시스템인가, 아니면 자원이 끊겨도 다시 회복할 수 있는 시스템인가?

상수도는 물을 공급하는 장치이면서 동시에 물의 흐름을 감시하고, 오염을 차단하고, 낡은 부분을 교체하고, 문제가 생겼을 때 경로를 복원하는 기억 장치다. 버전 관리는 코드를 저장하는 도구이면서 동시에 창작의 변화를 기록하고, 실수를 되돌리고, 여러 사람이 같은 결과물을 안전하게 다루도록 하는 시간 장치다.

두 시스템이 가르쳐 주는 핵심은 간단하지만 강력하다. 지속 가능한 창작과 공공 서비스는 생산 능력보다 흐름의 관리 능력에 좌우된다.

보이지 않는 인프라가 일상을 지탱한다

좋은 인프라는 평소에 눈에 띄지 않는다. 수도관이 정상적으로 작동하면 우리는 물이 어디에서 왔는지, 어떤 관을 지났는지, 언제 교체되었는지 생각하지 않는다. 코드가 정상적으로 저장되어 있으면 개발자는 파일의 과거 버전을 매번 걱정하지 않는다. 바로 이 무관심이 인프라의 성공을 보여 주는 신호일 수 있다.

그러나 보이지 않는다는 것은 중요하지 않다는 뜻이 아니다. 오히려 반대다. 가장 중요한 구조일수록 결과 뒤에 숨어 있다. 물이 깨끗하게 나오는 것은 정수장에서 처리했기 때문만이 아니다. 노후관을 교체하고, 하수도 기반을 강화하고, 수질을 엄격하게 관리하며, 공급망 전체를 점검하기 때문이다. 코드가 안전하게 남는 것도 저장 버튼을 한 번 눌렀기 때문이 아니다. 변경 이력을 남기고, 독립된 저장 위치를 마련하고, 문제가 발생한 시점으로 돌아갈 수 있게 만들었기 때문이다.

여기서 인프라를 세 층으로 나누어 볼 수 있다.

  1. 생산층: 물을 정수하고 코드를 작성하는 능력이다.
  2. 전달층: 물을 가정까지 보내고 코드를 협업자와 실행 환경으로 전달하는 구조다.
  3. 기억층: 어떤 변화가 있었는지, 어디에서 문제가 생겼는지, 어떻게 이전 상태로 돌아갈 수 있는지를 보존하는 장치다.

많은 조직과 개인은 생산층에만 투자한다. 더 좋은 정수 시설을 짓고, 더 빠른 개발 도구를 사용하고, 더 많은 기능을 만든다. 하지만 전달층과 기억층이 약하면 성과는 쉽게 사라진다. 공급관이 낡으면 정수장에서 아무리 깨끗한 물을 보내도 가정에는 오염된 물이 도착할 수 있다. 기록이 없으면 아무리 훌륭한 코드를 작성해도 작은 실수 하나가 전체 작업을 무너뜨릴 수 있다.

결과물을 만드는 능력은 시작을 가능하게 한다. 결과물을 보존하는 구조는 계속할 수 있게 한다.

물의 흐름과 코드의 시간은 같은 방식으로 망가진다

시스템은 대개 한 번의 거대한 재난으로 무너지지 않는다. 작은 누수가 발견되지 않은 채 남고, 오래된 관이 조금씩 약해지고, 점검이 다음 달로 미뤄진다. 코드 역시 비슷하다. 임시 파일 하나를 별도 저장하지 않고, 변경 내용을 설명하지 않으며, 실행되는 상태만 믿는다. 당장은 아무 문제가 없어 보이지만 복잡성이 쌓일수록 복구 비용은 급격히 커진다.

이 과정을 침묵의 부채라고 부를 수 있다. 침묵의 부채는 당장 오류로 나타나지 않는 미정리 상태다. 물에서는 누수와 노후관으로 나타나고, 코드에서는 덮어쓰기, 이름이 불분명한 파일, 사라진 버전, 재현되지 않는 실행 환경으로 나타난다. 공통점은 문제가 발생한 뒤에야 과거의 방치가 현재의 위기로 변한다는 데 있다.

가령 한 개발자가 인공지능의 도움을 받아 이틀 만에 작은 서비스를 만들었다고 하자. 화면도 잘 작동하고, 기능도 풍부하다. 하지만 변경할 때마다 원본 파일을 복사해서 최종, 최종2, 진짜최종이라는 이름으로 저장했다면 이 프로젝트는 빠르게 만들어졌을 뿐 안전하게 만들어진 것은 아니다. 한 달 뒤 오류가 발생했을 때 어떤 변경이 원인이었는지 확인할 수 없고, 작동하던 상태로 돌아갈 수도 없다.

지역의 물 관리에서도 비슷한 착시가 발생한다. 새로운 공급 사업은 눈에 잘 보이고 정치적 성과로 설명하기 쉽다. 그러나 노후관 교체와 수질 관리, 하수도 인프라 강화는 성과가 조용하다. 아무도 사고가 나지 않은 날을 축하하지 않기 때문이다. 그럼에도 시민의 체감 안전과 생활의 질을 결정하는 것은 종종 새로 지은 시설보다 문제가 발생하기 전에 관리된 연결망이다.

따라서 시스템의 성숙도를 판단할 때 현재의 출력만 보아서는 안 된다. 다음 세 가지를 물어야 한다.

  • 문제가 생기면 원인을 추적할 수 있는가?
  • 과거의 안정적인 상태로 돌아갈 수 있는가?
  • 특정 사람이나 특정 장치 하나에 의존하지 않고 서비스를 계속할 수 있는가?

이 질문은 수도 행정에도, 개인의 창작 활동에도, 인공지능을 활용한 개발에도 그대로 적용된다.

복구 가능성이 진짜 생산성이다

사람들은 흔히 생산성을 속도와 동일시한다. 빨리 만들고, 빨리 배포하고, 빨리 결과를 내는 것이 생산적이라고 생각한다. 그러나 복잡한 작업에서는 속도보다 복구 가능성이 더 중요하다. 복구 가능성이란 실패가 일어나지 않는 상태가 아니라, 실패가 일어나도 제한된 비용으로 정상 상태를 회복할 수 있는 능력이다.

이를 간단한 식으로 표현하면 다음과 같다.

실질적 생산성 = 생성 속도 × 복구 가능성

생성 속도가 아무리 빨라도 복구 가능성이 0이면 실질적 생산성은 0에 가까워진다. 하루 만에 만든 프로그램을 한 번의 덮어쓰기로 잃어버렸다면 그 하루는 생산이 아니라 재작업의 예고였을 수 있다. 반대로 변경을 자주 저장하고, 각 단계의 의도를 기록하며, 이전 버전으로 돌아갈 수 있다면 작은 실험을 훨씬 과감하게 시도할 수 있다.

여기서 중요한 역설이 나온다. 보존 장치는 창작을 느리게 하는 것이 아니라 창작의 위험을 낮춰 속도를 높인다.

수도 관리에서도 여분의 공급 경로와 엄격한 수질 감시는 비용처럼 보인다. 하지만 이 구조가 있으면 한 구간을 정비하는 동안 전체 공급을 중단하지 않아도 된다. 개발에서도 버전 기록과 백업은 추가 업무처럼 보인다. 그러나 이 장치가 있으면 새로운 기능을 시험하다가 실패해도 전체 프로젝트를 잃지 않는다.

이것은 안전과 혁신이 서로 반대라는 통념을 뒤집는다. 안전은 혁신을 억제하는 울타리일 수 있지만, 잘 설계된 안전은 혁신을 가능하게 하는 바닥이기도 하다. 바닥이 단단할수록 사람은 더 높은 곳에서 실험할 수 있다.

특히 인공지능을 활용한 창작 환경에서는 이 원리가 더욱 중요하다. 인공지능은 코드를 빠르게 생성하지만, 생성 속도가 빠른 만큼 변경의 양도 빠르게 늘어난다. 사람이 모든 줄을 기억하며 따라갈 수 없는 속도로 파일이 수정되면, 기록 체계가 없는 팀은 생산성의 혜택보다 혼란의 비용을 먼저 경험하게 된다.

이때 필요한 것은 인공지능을 덜 사용하는 것이 아니다. 인공지능이 만든 변화까지 추적 가능한 흐름 안에 넣는 것이다. 누가, 언제, 무엇을, 왜 바꾸었는지 남아 있어야 한다. 그래야 자동화가 인간의 기억을 대체하는 것이 아니라 인간의 판단을 강화할 수 있다.

시스템을 설계하는 네 가지 원칙

물 관리와 버전 관리를 하나의 관점으로 묶으면 실천 가능한 네 가지 원칙이 나온다.

첫째, 흐름을 보이게 만들어야 한다.

물이 어디에서 취수되어 어떤 처리 과정을 거치는지 알 수 있어야 하듯, 코드가 어떤 상태에서 어떤 상태로 변했는지 확인할 수 있어야 한다. 개인 프로젝트라면 작업을 시작하기 전에 현재 상태를 저장하고, 변경 단위를 작게 나누어 기록하라. 기록에는 단순한 날짜보다 의도를 담아야 한다. “수정”보다 “로그인 실패 시 오류 메시지 추가”가 훨씬 유용하다.

둘째, 약한 연결부를 먼저 관리해야 한다.

전체 시스템의 성능은 가장 취약한 구간에 의해 제한된다. 정수 시설이 훌륭해도 노후관이 문제라면 공급 체계 전체가 흔들린다. 코드가 아무리 정교해도 원본 저장소가 한 대의 노트북에만 있다면 프로젝트는 취약하다. 따라서 가장 먼저 찾아야 할 것은 화려한 개선점이 아니라 단일 실패 지점이다.

셋째, 복구 절차를 실제로 시험해야 한다.

백업이 있다는 믿음과 백업에서 복구할 수 있다는 사실은 다르다. 물 공급망은 비상 상황을 가정하고 우회 공급을 점검해야 한다. 코드 저장소도 이전 버전을 내려받아 실제로 실행해 보아야 한다. 복구 버튼이 존재하는지보다 복구 과정이 사람의 기억에 의존하지 않는지가 중요하다.

넷째, 유지 보수를 성과로 인정해야 한다.

새로운 기능과 대규모 시설은 눈에 잘 보이지만, 오래된 관을 교체하고 불필요한 파일을 정리하는 일은 눈에 띄지 않는다. 그러나 장기적인 신뢰는 유지 보수의 누적 결과다. 조직은 사고가 없었던 시간, 데이터가 손실되지 않은 시간, 시민이 불편을 겪지 않은 시간을 비용이 아니라 성과로 측정해야 한다.

오늘 바로 세울 수 있는 작은 성전

거대한 공공 인프라는 많은 예산과 행정 체계를 필요로 한다. 하지만 개인과 작은 팀도 같은 원칙을 즉시 적용할 수 있다. 중요한 것은 도구의 이름보다 습관의 구조다.

새 프로젝트를 시작할 때는 먼저 저장소를 만들고, 작업의 목적을 짧게 기록하라. 한 번에 모든 것을 완성하려 하지 말고, 작동하는 작은 상태를 자주 저장하라. 큰 변경을 하기 전에는 현재 상태를 남기고, 변경 후에는 무엇이 달라졌는지 설명하라. 마지막으로 저장소가 고장 났다고 가정하고 다른 환경에서 프로젝트를 복구해 보라.

개인 창작물에도 같은 원칙을 적용할 수 있다. 글의 초안, 사진의 원본, 영상의 편집본, 연구 자료를 하나의 기기에만 두지 말라. 파일 이름과 폴더 구조를 일관되게 만들고, 중요한 버전에는 날짜와 목적을 남겨라. 이 과정은 작업을 관료적으로 만드는 것이 아니라 미래의 자신에게 길을 안내하는 일이다.

Key Takeaways

  • 생산보다 흐름을 먼저 설계하라. 무엇을 만들지뿐 아니라 어디에 저장되고 어떻게 전달되며 어떤 기록이 남는지 정한다.
  • 단일 실패 지점을 제거하라. 노트북 한 대, 계정 하나, 담당자 한 명에게만 의존하는 구조는 반드시 보완한다.
  • 변경을 작게 나누고 의도를 기록하라. 복구와 협업의 핵심은 파일 자체보다 변화의 맥락이다.
  • 백업을 믿지 말고 복구를 시험하라. 실제로 이전 상태를 되살릴 수 있는지 정기적으로 확인한다.
  • 유지 보수를 생산성의 일부로 계산하라. 사고가 나지 않은 시간과 잃어버리지 않은 작업은 보이지 않지만 분명한 성과다.

마지막에는 무엇이 남는가

우리는 흔히 좋은 결과물을 많이 만드는 사람을 능력 있는 사람이라고 생각한다. 하지만 장기적으로 더 강한 사람은 결과물을 반복해서 만들 수 있고, 실패한 결과물에서도 배울 수 있으며, 시간이 지나도 자신의 작업을 다시 불러낼 수 있는 사람이다.

깨끗한 물은 정수장에서 끝나지 않는다. 물이 흐르는 모든 관과 밸브, 검사 절차와 유지 보수가 함께 만들어 낸다. 좋은 코드는 편집기에서 끝나지 않는다. 코드가 변화한 시간, 실험의 흔적, 실패에서 되돌아오는 경로까지 포함한다.

진짜 창작의 유산은 완성된 한 번의 결과가 아니라, 다시 시작할 수 있도록 남겨 둔 경로다.

그러므로 앞으로 새로운 프로젝트를 시작할 때 “얼마나 빨리 만들 수 있는가?”만 묻지 말자. “문제가 생겼을 때 어디로 돌아갈 수 있는가?”, “내가 없어도 이 흐름을 이해할 사람이 있는가?”, “몇 년 뒤의 내가 이 작업을 다시 이어 갈 수 있는가?”를 함께 물어야 한다.

시스템의 가치는 평온한 날의 효율만으로 결정되지 않는다. 끊김과 오류와 망각이 찾아온 뒤에도 흐름을 회복하는 능력으로 결정된다. 결국 우리가 보존해야 하는 것은 물이나 코드만이 아니다. 다음 시도를 가능하게 하는 기억의 구조다.

Sources

← Back to Library

Hatch New Ideas with Glasp AI 🐣

Glasp AI allows you to hatch new ideas based on your curated content. Let's curate and create with Glasp AI :)

Start Hatching 🐣