S∆SS.

S∆SS Studio Notes · 원격(遠隔) · Nº 00

원격(遠隔) — 00 들어가기

손이 닿지 않는 기계를, 카페에서든 침대에서든 부리는 법. 이 글은 화면을 자랑하는 튜토리얼이 아니다. 그 화면에 이르기까지 무엇이 끊기고, 왜 끊겼고, 어떻게 다시 이었는지 — 아무도 적어 두지 않은 원격의 기록이다. 대상은 노트북을 서버처럼 혹사하다 지친 사람, 그리고 언젠가 그러게 될 사람.

§ 00 · 한 장면에서 시작한다

새벽 두 시, 침대다. 손에는 노트북이 아니라 태블릿 하나. 화면을 켜고, 방 건너편에서 화면도 꺼진 채 조용히 돌아가는 작은 기계에 접속한다. 코드 한 줄을 고치고, 명령을 내리고, 배포가 나가는 것을 지켜본다. 몇 분 뒤, 지구 반대편 누군가의 브라우저에서 그 한 줄이 바뀐다. 나는 자리에서 일어난 적이 없다.

이 장면이 당연해 보인다면, 당신은 이미 원격을 아는 사람이다. 이 장면이 마법처럼 보인다면 — 이 글은 그 마법의 뒷무대에 관한 것이다. 무대 위는 깔끔하다. 무대 뒤는 그렇지 않다.

먼저 솔직히 밝힌다. 저 장면에 이르기까지, 나는 한글이 깨지는 것을 봤고, 접속이 거부당하는 것을 봤고, 멀쩡하던 프로그램이 열리지 않는 것을 봤다. 하나도 내 잘못이 아니었고, 하나도 검색으로 바로 나오지 않았다. 이 글은 그 하나하나를 어떻게 뚫었는지의 기록이다.

§ 01 · 아무도 기다려 주지 않는다

왜 이런 것을 세우게 되었는지부터 말해야겠다. 기술이 좋아서가 아니다. 나는 두 장면을 보았다.

하나는 결혼을 앞둔 프리랜서였다. 클라이언트의 척수반사에서 튀어나온 것 같은 요구와 수정 건이 밤에 도착했고, 클라이언트는 그것을 긴급대응 사항이라 불렀다. 그는 웨딩 촬영과 신혼여행 준비를 접고 작업으로 돌아갔다. 나는 그것을 옆에서 보았다.

다른 하나는 장례식장이었다. 상주인 줄 알면서도, 회사 일은 회사 일 아니냐고 지시가 내려왔다. 검은 옷을 입은 사람이 조문객 사이에서 화면을 들여다보고 있었다. 그것도 나는 옆에서 보았다.

우리는 이미 개인의 사정이 정(情)으로 이해되지 않는 시대에 산다. 그리고 AI는 그것을 가속하고 있다 — 응답이 24시간 가능해지자, 기대도 24시간이 되었다. 이것은 내가 굳이 장황하게 설명하지 않아도 이미 알 것이다. 그렇다면, 우리가 해야 할 일은 무엇인가.

시대를 원망하는 것은 아무것도 바꾸지 못한다. 내가 택한 답은 이것이다 — 그 요구가 왔을 때, 내 삶을 통째로 접지 않고도 응답할 수 있는 상태를 미리 만들어 두는 것. 장례식장에서 노트북을 펼치는 대신, 주머니의 태블릿으로 십오 분 만에 처리하고 다시 상주 자리로 돌아갈 수 있도록. 그것이 이 글이 다루는 전부다.

아마 이 글을 본 사람은 어디서 거짓말이냐, 요즘이 어떤 시대인데 라고 생각할 것이다. 나는 두 가지를 말하고 싶다. 첫째, 상식이 통하는 국경과 생활반경 안에서 살아온 점 — 축하한다. 둘째, 같은 하늘을 이고 같은 땅에 산다고 해서 같은 시대, 같은 세기를 사는 것은 아니다. 내 말을 못 믿겠으면 여름휴가나 겨울휴가 때, 뉴스에 나오는 흉흉하고 저렴한 나라에 한번 가보기를 권한다. 상식이 당신의 목숨을 구해 주는 방탄조끼가 아니라는 것을 잘 알게 될 것이다.

§ 02 · 노트북은 서버가 아니었다

오랫동안 나는 노트북 한 대로 모든 것을 했다. 개발도, 빌드도, 그리고 — 서버 흉내도. 밖에 나가서도 붙어 일하려고 노트북을 켜 둔 채로 두었다. 그때마다 뭔가 어긋났다. 뚜껑을 닫으면 세션이 끊겼고, 계속 켜 두면 배터리가 상시 100%에 물려 수명을 깎았고, 무거운 빌드를 돌리면 팬도 없는 몸이 뜨거워지며 느려졌다.

이유는 간단했다. 노트북은 이동하며 잠깐씩 쓰라고 만든 물건이지, 24시간 깨어 응답하라고 만든 물건이 아니다. 서버의 첫째 덕목은 성능이 아니라 — 자지 않는 것이다. 노트북은 그 하나를 못 한다. 자도록 설계되어 있으니까.

그래서 맥미니 한 대를 들였다. 화면 없이, 구석에서, 콘센트에 물린 채, 그저 켜져만 있는 기계. 뚜껑이 없으니 닫을 일이 없고, 배터리가 없으니 열화가 없고, 냉각이 있으니 오래 돌려도 견딘다. 처음 옮기던 날, 하던 프로젝트 하나를 통째로 이 기계로 이관하고 환경을 다시 점검했다 — 저장소, 인증, 데이터베이스, 스모크 테스트. 전부 그대로 통과했다. 노트북이 힘겹게 하던 일을, 맥미니는 지루할 만큼 조용히 해냈다.

이 글에서 그 기계를 맥미니라 부르겠다 — 내가 쓰는 물건이 그것이니까. 그러나 맥미니를 반드시 사라는 뜻은 아니다. 윈도우 데스크톱을 쓰든, 맥북을 뚜껑 닫은 클램쉘 모드로 세워 두든, 그건 당신의 자유다. 요지는 기계의 종류가 아니라 두 가지다. 첫째, 당신이 쉬고 있을 때 기계가 대신 일하게 하라. 둘째, 절대로 부서지면 안 되는 것을 밖으로 짊어지고 나가지 마라. 이름이 무엇이든 그 역할이 상주 시스템이다 — 잠들지 않고, 늘 같은 자리에 있고, 언제 접속해도 응답하는. 일하는 자리는 당신이 있는 곳이고, 상주 시스템은 그 기계다.

§ 03 · 부술 수 있는 것, 부수면 안 되는 것

요즘 나는 인스타그램과 스레드를 시장조사 삼아 들여다본다. 한때 취미와 유희의 앱이던 것이 시장을 읽는 창이 되었다는 것 — 그 자체가 격세지감이다. 그러다 몇 장면을 보았고, 이 글을 쓰기로 마음먹은 건 그 장면들 때문이다.

뉴욕 지하철에서 노트북을 손바닥만큼만 열어 둔 개발자를 보았다. 클로드와 코덱스를 멈추지 않으려는 것이었다. 그가 소프트웨어로 먼저 밥을 벌던 사람인지, 바이브 코딩으로 들어온 사람인지는 모른다. 한국의 어느 부부 개발팀이 그린 만화도 보았다 — 남편이 클로드를 계속 돌리려고, 지하철에서부터 집에 도착할 때까지 노트북을 펼친 채 워커홀릭처럼 귀가했다는 이야기. 실리콘밸리의 한 개발자는 맥북을 열어 두고 폰으로 핫스팟을 걸어, 두세 시간 동안 클로드가 알아서 에이전틱 루프를 돌게 둔다고 했다. 다들 제 업을 열심히 꾸려 가는 사람들이다. 흉이 아니다.

그런데 나 역시 맥북에어를 집에 두고, 집에서 일하거나 아이패드로 원격으로 기계를 부리는 사람이라, 그 장면들 앞에서 묘한 위화감이 들었다. 우리는 같은 도구를 쓴다. 그러나 나는 그 도구가 담긴 몸체를 들고 다니지 않는다.

우스갯소리 하나. 나는 바이크로 서울을 누비거나 경기도로 야간주행을 갈 때, 절대로 맥북을 가방에 넣지 않는다. 사람 몸과 바이크는 반파되어도 소생하고 재생한다. 그러나 소스코드를 만드는 최종 인프라인 맥과, 그 안에 담긴 채 아직 커밋되지 않은 코드는 — 부서지면 되살아나지 않는다. 밖으로 짊어지고 나가는 것은 부술 수 있는 것이어야 한다. 부수면 안 되는 것은 상주 시스템에 둔다.

애플센터에 가면 살릴 수 있지 않느냐고 할 수 있다. 덤프트럭이 밟고 지나갔거나 초보운전 경차가 치고 지나간 맥북을 되살릴 전문가를, 나는 아직 알지 못한다. 게다가 맥북은 내가 써 본 노트북 중 가장 빨리, 아무 이유 없이 자연사한 물건이다. 열네 달 만에 급사해 액정만 빼고 전 부품을 갈아야 한다는 견적서를 받아 보면 — 맥을 믿지 않게 된다. 믿지 않으니, 집에 세워 두고 원격으로만 부린다. 이 글은 그 불신에서 자란 방법이다.

§ 04 · 아무도 도달하는 법을 쓰지 않는다

원격이란 결국 도달의 문제다. 내가 있는 자리에서 저편의 기계까지, 명령과 결과가 그 선을 타고 오간다. 선이 끊기면 아무리 실력 있는 사람도 그 자리에서 아무것도 못 한다. 결과를 만드는 것은 실력이지만, 일을 무너뜨리는 것은 언제나 끊긴 도달이다.

개발도 같다. 화려한 것은 코드다 — 새 기능, 예쁜 화면, 영리한 알고리즘. 그래서 블로그는 코드를 쓴다. 완성된 화면을 스크린샷으로 자랑한다. 그러나 그 화면에 이르는 길 — 어떻게 원격 기계에 붙었고, 어떻게 그 기계를 깨워 두었고, 접속이 끊겼을 때 무엇을 했는지 — 그 지루한 도달의 과정은 아무도 쓰지 않는다. 자랑할 게 없으니까.

문제는 초보자가 무너지는 자리가 정확히 그 도달의 과정이라는 것이다. 코드는 AI 도구가 대신 짜 줄 수 있다. 그러나 "밖에서 붙으려는데 접속이 안 됩니다", "한글이 깨져서 명령을 못 칩니다", "프로그램이 열리다 말고 오류가 납니다" — 여기서 사람들은 멈추고, 검색하고, 안 나오면 포기한다. 블로그의 성공담에는 이 순간이 없다. 글쓴이는 이미 뚫었거나, 애초에 안 겪었으니까.

이 글은 그 반대를 택한다. 성공한 화면이 아니라, 막혔던 자리와 그 원인을 쓴다. 왜냐하면 도달하는 법을 아는 사람만이 어디서든 오래 일할 수 있기 때문이다.

§ 05 · 이 글이 다루는 것

이 원고는 하나의 원격 체계를 처음부터 끝까지 세운다. 태블릿 한 대에서 시작해, 방 구석의 작은 기계에 붙고, 코드를 고쳐 세상에 배포하기까지. 네 개의 장으로 나뉜다.

① 잠들지 않는 기계. 서버의 첫째 덕목은 자지 않는 것이라 했다. 그런데 기계는 가만두면 잔다. 화면 설정, 전원 옵션, 그리고 화면 뒤에서 조용히 잠을 막는 도구들 — 눈에 보이는 설정과 명령줄 양쪽으로, 기계가 확실히 깨어 있게 만드는 법.

② 세 개의 실. 태블릿과 먼 기계를 잇는 데는 세 겹의 실이 필요하다. 하나는 두 기계를 같은 방에 있는 것처럼 잇는 사설망, 하나는 태블릿에서 명령을 치는 창, 하나는 접속이 끊겨도 하던 일이 죽지 않게 붙드는 그물. 셋을 어떻게 엮는지.

③ 블로거가 안 알려주는 것. 이 글의 심장이다. 실제로 겪은 오류들 — 한글이 깨지고, 접속이 거부당하고, 프로그램이 열리지 않던 순간들 — 을 증상·원인·처방으로 하나씩 해부한다. 검색해도 안 나오는 것들이다. 겪어서 원인까지 팠으니까 쓸 수 있다.

④ 첫 원격 배포. 마지막으로, 이 모든 것을 이어 실제로 한 줄을 고치고 세상에 내보낸다. 원격이 뚫렸는지는 결과가 세상에 닿는 것으로만 증명된다.

한 가지 미리 약속한다. 이 글은 편한 길만 보여주지 않는다. 편의를 위해 안전장치를 끄는 선택을 할 때는, 그것이 무엇을 맞바꾸는 것인지 그 자리에서 밝힌다. 원격을 아는 것과 원격을 맹신하는 것은 다르다.

Read this note at sass.studio.