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

그래서 PocketBase로 지었다

블로그에서 강의를 떼어내 따로 지으면서, 앞 편들의 기준을 그대로 댔다. 클러스터 대신 단일 바이너리, fork 대신 백엔드 교체. 주장을 실제로 지어 본 결정 일지. 시리즈 '부산물들' 5편.
2026-06-20
PocketBase의사결정academy단일바이너리시리즈5편

마침, 며칠 전에

블로그에서 강의를 떼어내 따로 짓기로 했다. 글은 글대로 두고, 강의는 회원과 결제가 도는 별도 사이트로.

갈림길이 몇 개 있었다. 그때마다 앞 편들의 기준을 그대로 댔다.

백엔드 — 클러스터 대신 단일 바이너리

회원·주문·수강권을 받칠 백엔드가 필요했다. 익숙한 손이 먼저 k8s를 떠올렸다.

그런데 그건 운영할 면을 다시 늘리는 짓이었다. 4편에서 줄이자고 한 그 표면적.

단일 바이너리 하나(PocketBase)로 인증·DB·관리자·파일을 다 덮었다. 깔 게 하나, 돌볼 게 하나.

분리 — fork 대신 교체

블로그를 통째 fork해서 강의 아닌 걸 떼어낼 수도 있었다. 빠른 출발처럼 보이지만, 버릴 코드를 끌고 와 다시 떼는 매몰비용이다.

프론트만 가져오고, 백엔드는 새로 끼웠다. 끌고 온 게 적으니, 틀려도 가볍게 되돌린다.

결과

고치면 한 줄로 뜬다. 빌드하고, 올린다. 화려한 건 없다. 왕복이 짧다.

주장은 지어 봤을 때만 자기 것이 된다.

그래서 도구는? 여전히 부산물이다. 클러스터도, 단일 바이너리도, 결국은. 그럼 진짜 제품은 무엇이었나. 마지막 편.

이 글에 남긴 포스트잇0

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

이어 읽을 글
이제부터 나는 최맹보다홍명보가 화면에 'FIGHT' 한 단어만 띄우고 '싸워'를 반복하던 국가대표팀 다큐 장면이 밈이 됐다. 웃다가 뜨끔했다 — 명확한 결과물이 안 그려질 때 나도 팀 앞에 큰 그림 하나 걸어놓고 '싸워'라고 하고 있었으니까. 개발자로 살던 내가 리더가 되며 나를 버렸다. 홍명보가 2024년 취임 회견에서 '저는 저를 버렸습니다'라고 했던 것처럼(2014년엔 '대한민국이 날 버렸어'라며 버림받은 쪽이었지만). 옳게 짜인 구조보다 리소스 효율·목적·결과물로 판단하는 자리로 옮기자, 오래 나를 붙들던 꺼림칙함이 남았다 — 이거 이렇게 해도 되나. 분류학을 들여다보다 그 정체를 알았다. 그 불편함은 코드에 새겨진 진실이 아니라, 여러 자리의 시각을 한꺼번에 켜둔 채 아직 어느 축으로 결정할지 못 정한 상태에서 나는 잡음이었다. 이걸로도 되고 저걸로도 되는데 한쪽이 공수가 더 들면 동작하는 걸로 간다. 장기적 문제는 다른 축이 던지는 질문이고, 이 규모·이 시점 축에선 답이 이미 나와 있다. 다만 어떤 꺼림칙함은 잡음이 아니라 진짜 신호다 — 그 둘을 가려내는 게 지금 내 숙제다.감정은 신호였다될지 안 될지 모르는 일을 기한 안에 해내야 하는 요즘, 가장 고약한 건 모르는 걸 모르는 상태였다. 사람에게는 AI에 없는 센서가 있다 — 감정이다. 화남·슬픔·억울함·감동은 내가 모르던 무언가가 근처에 있다는 신호이고, 모델이 loss로 배우듯 사람은 감정으로 모름을 감지한다. 감정을 신호로 읽기 시작하자 마음의 힘듦과 해야 할 일·해야 할 말이 갈라졌다 — 재촉하는 사람의 불안도 같은 신호였다. 그리고 사람도 환각한다 — 모른다는 걸 모른 채 아는 해법으로 문제의 본질을 덮는다. 부딪혀야 신호가 온다.무한 루프는 버그가 아니었다팀과 팀 사이에서 매일 일을 나누다 발견한 조직의 작동 원리. 팀마다 목적이 하나씩 뚜렷할 때 서로의 견제는 상승효과가 되고, 이 루프가 멈추지 않는 것이 목표다 — 옳은 말이 일이 되어 돌아오면 루프는 멈추고, 새 일은 언제나 R&R의 회색지대에서 태어난다. 회색지대의 일에 필요한 것은 끌어안는 사람, 아니면 빠른 지정이다.
dev · 2026. 9. 20.