DRAFT작업 노트입니다. 출간된 글이 아니며, 자유롭게 갱신·재구성됩니다.
CodePoet / Essay
부산물들1 / 6

도구는 다 부산물이었다

k3s·k8s·portainer·coolify·gitops를 다 거쳤지만, 혼자 만들 때 끝까지 남은 건 '고치자마자 배포된다' 한 줄이었다. 도구는 목적이 아니라 부산물이었다. 시리즈 '부산물들' 1편.
2026-06-20 · 1회 읽음
인프라배포도구혼자 만들기시리즈1편

매번 도구부터 깔았다

새 걸 만들고 싶을 때마다, 손이 먼저 간 건 코드가 아니었다. 도구였다.

이번엔 제대로 굴러가게 해두자. 배포부터 그럴듯하게 깔아 두면, 그 위에서 만들고 싶은 게 술술 자랄 것 같았다. 그래서 만들기 전에 차렸다. 클러스터를 세우고, 파이프라인을 그리고, 대시보드를 띄웠다.

순례

k3s를 올렸다. k8s로 갔다. portainer로 GUI를 얹고, gitops로 배포 파이프라인을 그렸다. 한동안은 coolify. 이름을 다 적고 보니 순례다.

저마다 그럴듯한 약속이 있었다. 선언적으로 적어 두면 알아서 맞춰지는 상태. 한 번 그려 두면 손 안 대도 굴러가는 배포. 우아한 운영.

깔 때마다 잠깐 뿌듯했다. 그런데 깔고 나면, 도구가 운영 대상이 됐다. 버전을 올리고, 인증서를 갈고, 깨진 파이프라인을 들여다봤다. 만들려던 건 저기 그대로 있는데 — 나는 도구를 돌보고 있었다.

돌아보니 순서가 반대였다

나는 도구가 제품을 만든다고 생각했다. 좋은 인프라를 먼저 깔아 두면 그 위에서 제품이 자란다고.

돌아보니 반대였다. 제품을 만들다 보면 도구는 그제야 남는 것이었다. 먼저가 아니라 나중. 본질이 아니라 — 부산물.

도구는 다 부산물이었다.

쓸모가 없었다는 말이 아니다. 자리가 틀렸다는 말이다. 목적 자리에 부산물을 올려 두니, 정작 만들 것이 도구를 돌보는 시간에 밀렸다.

그럼 끝까지 남은 건

혼자 만드는 구간에서, 그 많은 걸 다 걷어내고도 손에 쥐고 있던 건 화려한 스택이 아니었다.

고친 걸 바로 띄워 볼 수 있는가. 그 한 가지.

고치자마자 배포된다 — 솔로 구간에선 그게 전부였다. 왜 하필 그거 하나였는지는, 다음 편에서 꺼낸다.

이 글에 남긴 포스트잇0

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

이어 읽을 글
머릿속에서 MSA는 그려지는데 고양이는 안 그려진다MSA라는 말엔 설계도가 펼쳐지는데, 고양이라는 말엔 색도 질감도 없는 흐릿한 형체 하나만 뜬다는 걸 알아챈 날의 기록. 딸은 오만가지 고양이를 재잘거리는데, 나는 언제부턴가 세상을 요약만 하고 있었다 — 좋아한다는 게임조차 뜯어본 적 없이 심볼로 봤다. 설계도가 선명하고 고양이가 흐릿한 건 재능의 배치가 아니라 시간의 배치였다. 개발을 배우던 방식을 그대로 옮긴다 — 많이 보고, 역기획서로 뜯어보고, 직접 그린다. 끝그림은 나만의 그림체로 내 것을 만드는 것. 시리즈 '프로그래머가 그림을 배우는 방법' 1편.감정은 신호였다될지 안 될지 모르는 일을 기한 안에 해내야 하는 요즘, 가장 고약한 건 모르는 걸 모르는 상태였다. 사람에게는 AI에 없는 센서가 있다 — 감정이다. 화남·슬픔·억울함·감동은 내가 모르던 무언가가 근처에 있다는 신호이고, 모델이 loss로 배우듯 사람은 감정으로 모름을 감지한다. 감정을 신호로 읽기 시작하자 마음의 힘듦과 해야 할 일·해야 할 말이 갈라졌다 — 재촉하는 사람의 불안도 같은 신호였다. 그리고 사람도 환각한다 — 모른다는 걸 모른 채 아는 해법으로 문제의 본질을 덮는다. 부딪혀야 신호가 온다.무한 루프는 버그가 아니었다팀과 팀 사이에서 매일 일을 나누다 발견한 조직의 작동 원리. 팀마다 목적이 하나씩 뚜렷할 때 서로의 견제는 상승효과가 되고, 이 루프가 멈추지 않는 것이 목표다 — 옳은 말이 일이 되어 돌아오면 루프는 멈추고, 새 일은 언제나 R&R의 회색지대에서 태어난다. 회색지대의 일에 필요한 것은 끌어안는 사람, 아니면 빠른 지정이다.
dev · 2026. 9. 20.