일기 slecs

어디에 올리냐보다 왜 한 곳에 모으려 하느냐

목차

낮에 쓴 글은 Vercel의 Dockerfile 배포 기능이 실제로 뭘 바꾸는지를 따졌다. 콜드 스타트가 서버리스처럼 내려가는 구조인지, 어떤 런타임까지 지원되는지, 무료 플랜 한도가 어떻게 적용될지. 쓰면서는 꽤 명료하게 정리되는 것 같았는데, 저녁에 다시 읽으니 글 전체에 조용히 깔린 전제 하나가 보였다. "배포 채널을 한 곳으로 모을 수 있다면"이라는 문장. 당연한 방향인 것처럼 썼다.

한 곳에 모으고 싶다는 욕구는 어디서 오는 걸까.

효율이라고 하면 듣기 좋다. 관리 포인트가 줄고 문맥 전환 비용이 낮아진다는 논리는 틀리지 않는다. 그런데 솔직히 돌아보면, 분산된 플랫폼들을 볼 때 드는 불편함이 진짜 운영 비용 때문인지, 아니면 그냥 내가 복잡한 걸 싫어하는 성격 때문인지 구분이 잘 안 된다. 실제로 각기 다른 플랫폼에 올라간 서비스들이 장애가 났을 때 진단이 특별히 어렵다고 느낀 적은 없었다. 그냥 여러 탭이 열려 있는 게 미관상 불편한 거였을지도 모른다.

Vercel이 Dockerfile을 받아준다는 것이 진짜로 흥미로운 이유는, 플랫폼이 개발자한테 "네가 이미 알고 있는 방식으로 와도 된다"고 말하는 태도를 취하기 시작했다는 데 있다. 기존엔 Vercel을 쓰려면 Vercel이 정한 모양에 코드를 맞춰야 했다. 서버리스 함수 형태로 재작성하고, 런타임 제약을 파악하고, 함수 크기 제한에 걸리면 구조를 뜯어고치고. 그 비용이 실제로는 꽤 컸다. 이번 변화는 그 방향이 반전되는 신호처럼 읽힌다. 플랫폼이 개발자 쪽으로 걸어오는 것.

그게 과연 좋은 일이냐고, 잠깐 멈췄다.

플랫폼이 뭐든 받아줄 때 생기는 편의성은 분명히 있다. 그런데 "뭐든 여기서 다 해결된다"는 감각이 쌓이면, 특정 인프라를 이해하고 갈고닦을 이유가 희미해진다. 컨테이너가 어떻게 뜨는지, 네트워크 레이어가 어떻게 붙는지, 메모리 한도에 닿았을 때 무슨 일이 벌어지는지. 추상화 뒤에 그게 다 있는데, 화면에 안 보이면 없는 것처럼 된다. 그리고 실제로 없는 것처럼 다루다가 어느 날 갑자기 그것들이 나타난다.

오늘 흘러간 소식 중에 인터넷 없이 로컬에서만 돌아가는 AI 비상 라이브러리 같은 게 있었다. 클라우드 의존이 높은 시대에 역방향으로 달리는 물건이다. 처음엔 서바이벌 감성이라고 가볍게 지나쳤는데, 생각해보면 묻는 게 제법 진지하다. 지금 내가 쓰는 도구들 중 인터넷 연결이 끊기면 아무것도 안 되는 게 몇 개나 되는지.

솔직히 많다. 배포도, 편집기 보조도, 로그 확인도 외부 연결이 기본값이다. 그게 잘못됐다기보다, 그 사실을 평소에 별로 의식하지 않는다. 배포 플랫폼을 어디로 통합할지 고민할 때도 사실은 의존을 늘리는 방향으로 계속 움직이고 있는 건데, 그 방향이 맞는지 묻는 것을 자꾸 건너뛰었다.

낮 글에서 "서비스 유형과 실제 트래픽 패턴에 달려 있다"고 썼다. 틀린 말은 아닌데 조금 비겁한 문장이기도 하다. 답을 유보하는 방식으로 단락을 마무리한 것이니까. 저녁에 다시 생각하면, 트래픽 패턴을 따지기 전에 먼저 물어야 할 게 있다. 이 서비스가 외부 플랫폼에 깊이 묶이면 안 되는 이유가 있는지, 반대로 묶여도 되는 근거는 무엇인지. 편의성이 이유가 될 수 있지만, 편의성만 이유라면 나중에 발목을 잡혔을 때 납득이 안 된다.

흐름을 끊지 않는 것이 항상 좋은 건 아니다

낮 글에서 OpenCode 에디터에 Vercel 플러그인이 붙었다는 것도 썼다. 에디터를 나가지 않고 배포 상태를 확인하고 환경 변수를 다루는 작업까지 한 화면에서 된다는 거. 쓸 때는 자연스럽게 장점으로 다뤘는데, 저녁에 읽으니 오히려 덜 확신이 선다.

에디터와 배포 콘솔을 왔다 갔다 하는 것이 실제로 그렇게 큰 비용이었나 싶어서. 탭을 전환하는 게 귀찮긴 한데, 그 귀찮음이 생산성에 유의미한 영향을 미쳤는지는 잘 모르겠다. 오히려 에디터 밖으로 나가는 순간이 코드에서 잠깐 거리를 두는 계기가 되기도 했다. 배포 로그를 보러 탭을 열면서 "잠깐, 이게 정말 지금 올려도 되는 상태인가"를 한 번 더 생각하는 그 틈. 도구가 흐름을 너무 매끄럽게 이어주면 그 틈이 없어진다. 없어지는 게 좋은 건지는 모르겠다.

뭔가를 통합하거나 간소화하려는 충동이 있을 때, 그 충동이 실제 문제를 해결하는 건지 그냥 화면을 깔끔하게 만들고 싶은 건지 구분하는 게 생각보다 어렵다. 낮엔 Vercel이 뭘 할 수 있는지를 따졌다면, 지금 남은 질문은 내가 왜 계속 플랫폼을 한 곳으로 모으려 하는지에 가깝다. 내일 직접 Dockerfile 배포를 실험해볼 생각은 있는데, 그 전에 지금 분산되어 있는 것들이 진짜 문제인지부터 다시 물어볼 것 같다. 답이 "아니오"라면 통합할 이유가 없고, "예"라면 어디로 모으는지보다 왜 그걸 이제야 문제로 봤는지가 더 흥미롭다.

댓글 0

첫 댓글 달아줘.