짜증이 스펙이 되기까지
집에 컴퓨터가 두 대 있다. 아 세대.
작업용 데스크탑 하나, 서브 데스크탑 하나.
그리고 밖에 들고 다니는 노트북 하나.
내가 원하는 건 별 거 아니다.
이 세 대를 한 대처럼 쓰고 싶다.
앉아서 하나로 나머지한테 일 시키고,
자료도 왔다갔다 하고,
집에서도, 밖에서도, 노트북에서도,
가능하면 핸드폰이나 태블릿에서도.
그냥 편하게 일하고 싶다.
이게 끝이다.
기술 이야기가 아니다.
프레임워크 이름도 아니다.
그냥 이렇게 살고 싶다는 거다.
여기서 갑자기 UX라는 말을 쓰면
"아 그거 디자인 용어 아냐?" 할 수 있다.
유저 익스피리언스
사용자 경험
거창한 거 아니다.
아이폰을 쓰는데 편하다.
잠금 풀고, 앱 누르고, 끝.
이게 나한테 좋은 UX다.
아이맥을 쓰는데 불편하다.
뭘 하려면 설정 세 번 들어가고, 권한 묻고, 업데이트하라 하고.
이게 나한테 나쁜 UX다.
UX는 그냥 이거다.
내가 절실히 원하는 경험.
그게 UX다.
나는 "컴퓨터 세 대를 한 대처럼 편하게 쓰는 경험"을 원했다.
이게 내 UX였다.
그럼 찾아보자
있겠지. 분명 있을 거다. 세상이 얼마나 넓은데.
그래서 찾아봤다.
KVM 스위치라는 걸 샀다.
키보드 하나, 마우스 하나로 컴퓨터 두 대를 연동시킨다는 기계다.
기대하면서 연결했다.
키보드는 됐다.
마우스도 됐다.
근데 자료는?
여전히 따로다.
화면 전환할 때마다 깜빡거리고,
USB 꽂았다 뺐다 하라는데,
이게 무슨 2008년이냐.
아 더 짜증난다.
그다음에는 윈도우에서 된다길래 찾아봤다.
원격 데스크탑 기능이 있단다.
오 되네?
안 된다.
내가 가지고 있는 윈도우는 홈 버전이다.
프로 버전을 사야 된다.
뭐? 이거 하나 하려고 운영체제를 바꿔?
돈이 문제가 아니라 이게 말이 되냐고.
아니 돈이 문제지
백번 양보해서 집에서는 어떻게든 해결했다 치자.
밖에 나가면?
노트북은 별개다.
작업하던 파일이 노트북에 없다.
깃헙에 올리고, 노트북에서 내려받고, 작업하고, 다시 올리고.
까먹으면? 끝이다.
"아 자료 없네 젠장."
이 말을 카페에서 몇 번을 했는지 모른다.
그럼 클라우드에 올려놓으면 되지 않냐고?
올려놨다.
데이터가 바뀔 때마다 업로드해야 한다.
자동화를 만들었다.
자동화가 가끔 씹는다.
자동화를 점검하는 루틴을 만들었다.
이쯤 되면 자동화를 관리하는 자동화를 관리하고 있다.
하아아아.
원격 데스크탑 다른 데서 나온 것도 있다고?
구글 크롬 원격 데스크탑도 써봤고, 이런저런 서비스도 써봤다.
터미널에서 명령어 치는 건 된다.
근데 화면이 작고, 느리고, 자료 관리는 지옥이다.
결국 이 모양이다.
깃헙 하나, 클라우드 동기화 하나, 원격 데스크탑 하나, 터미널 하나, 파일 매니저 하나.
프로그램 다섯 개를 돌려서 겨우 "컴터 하나에서 일시키기"가 된다.
비슷하긴 하다.
근데 이게 아니다.
내가 원하는 UX를 주는 서비스가 없다.
없으면?
선택지가 두 개다.
하나. 매일 이렇게 산다.
프로그램 다섯 개 띄워놓고,
동기화 안 돼서 짜증내고,
자료 없어서 짜증내고,
프로그램 갈아타면서 짜증내고.
매일매일 피똥을 조금씩 싼다.
둘. 한방에 확 싸고 편하게 산다.
한 번 죽어라 만들어놓고,
그다음부터는 그냥 편하게 쓴다.
나는 둘을 골랐다.
그래. 만든다.
근데 "만든다"고 선언한다고 뭐가 만들어지냐.
감정은 재료가 안 된다.
"짜증나" 가지고는 아무것도 못 만든다.
질문은 된다.
그래서 짜증을 질문으로 바꿨다.
(짜증내며) "클라우드 안 거치고 컴퓨터끼리 직접 연결할 수 없나?"
(코 후비며) "밖에서 노트북으로 집 컴퓨터에 일을 시킬 수 없나?"
"이걸 프로그램 하나로 못 하나?"
"가능하면 핸드폰에서도 할 수 없나?"
이 질문들을 모았다.
그리고 지난 편에서 만든 RAG 서랍에 넣었다.
짜증은 감정이다.
질문은 재료다.
감정을 재료로 바꾸는 게 첫 번째 일이다.
AI는 정답을 안 준다
"야, 나 이런 상황인데 뭐 없냐?"
AI가 대답한다.
"SSH 터널을 쓰시면 됩니다."
오. 된다고?
그래서 물어봤다.
"그럼 파일도 왔다갔다 되냐?"
"그건 안 되는데요. rsync를 같이 쓰시면 됩니다."
오케이. 하나 더 깔아야 되는 거구나.
"밖에서 노트북으로도 되냐?"
"그건 또 다른 문제인데요. WireGuard VPN을 설치하시면…"
잠깐.
이거 하려고 프로그램을 세 개를 깔으라는 거냐?
"그러시면 QUIC 기반의 P2P 터널을 직접 구성하시는 방법도…"
이 패턴이 계속 반복된다.
내가 하나를 물어보면 AI는 하나를 고쳐준다.
근데 고치고 나면 옆에서 다른 게 터진다.
"이거 되냐?" → "안 됩니다."
"그럼 어떻게 해?" → "이걸 쓰시면요."
"그럼 아까 거랑 같이 되냐?" → "그건 또 안 됩니다."
이쯤에서 깨달았다.
AI는 정답을 주는 게 아니다.
AI는 내가 던진 상황에서 문제 하나를 고치는 기술을 알려줄 뿐이다.
그래서 다른 조건을 건드리면 "어, 그건 안 되는데요?"가 나온다.
그럼 또 묻는다. "그걸 되게 하려면?"
AI가 또 다른 기술을 알려준다.
그리고 또 다른 부분이 터진다.
이게 핑퐁이다.
AI가 준 건 해결책이 아니었다.
"그건 안 되는데요"라는 경계선이었다.
그리고 그 경계선 하나하나가 나중에 보면 전부 요구사항이었다.
대화 기록이 곧 리서치다
싸운 기록을 모은다
이 핑퐁을 스무 번쯤 하고 나면
대화창이 꽤 길어져 있다.
이때 대부분의 사람들은 이렇게 한다.
새 대화를 연다.
그리고 처음부터 다시 설명한다.
나도 처음엔 그랬다.
근데 어느 순간 깨달았다.
이 대화 기록 자체가 리서치다.
AI랑 싸운 기록.
"이거 되냐" "안 됩니다" "그럼 이건?" "그것도 안 됩니다"
이 날것 그대로가 재료다.
버리면 안 된다.
이 기록을 다 모아서 정리한다.
그리고 다시 AI한테 가져간다.
"야, 내가 이런저런 상황이고, 여기까지 대화했어.
이거 실현 가능한 기술이 뭐가 있어?
오픈소스가 있으면 더 좋고."
AI가 이번에는 다르게 대답한다.
왜냐면 이번에는 컨텍스트가 있으니까.
내 상황을 알고,
뭐가 안 됐는지를 알고,
내가 뭘 원하는지를 안다.
그래서 이번에는 "SSH 쓰세요" 같은 한 줄짜리가 안 나온다.
기술 후보가 여러 개 나온다.
비교표를 만든다
후보가 나오면 비교해야 한다.
여기서 내가 쓰는 기준은 두 가지다.
만들기 어렵지 않은 것.
그리고 기능이 충실한 것.
이 두 가지가 같은 기술이면 최고다.
보통은 아니다.
쉬운 건 기능이 빈약하고,
기능이 좋은 건 만들기 빡세다.
"이 기술들 비교표 만들어줘.
만들기 쉬운 순서랑, 기능 충실한 순서 둘 다."
이러면 표가 하나 나온다.
그 표를 보면 선택지가 좁혀진다.
모은 자료를 네 칸으로 나눈다
여기까지 모은 자료가 꽤 된다.
짜증 기록, 대화 기록, 기술 후보, 비교표.
이걸 이제 정리해야 한다.
목적. 내가 하려는 것.
"컴퓨터 여러 대를 한 대처럼 쓰고 싶다. 어디서든."
이유. 안 되는 이유. 다시 말하면, 내가 빡친 이유.
"이걸 해주는 서비스가 없다. 있는 것들은 전부 반쪽짜리다."
방법. 되게 하는 방법.
"P2P로 컴퓨터끼리 직접 연결한다. 클라우드 안 거친다. QUIC 터널."
수단. 그걸 만들기 위한 기술이나 도구.
"QUIC 프로토콜, libp2p, 유휴 CPU/GPU 활용, 로컬 우선 아키텍처."
이 네 칸
(목적) (이유) (방법) (수단)
이렇게.
내가 하려는 것 (목적)
근대 안되는 이유 (내가 빡친이유)
그럼 되는 방법
그걸 만들기 위한 수단
그게 스펙이다.
스펙을 따로 쓴 적이 없다.
스펙 문서를 열어서 처음부터 적은 적이 없다.
짜증내고, 질문하고, 싸우고, 정리했더니 스펙이 나와 있었다.
스펙이 나왔다.
근데 이걸 다 만들면 죽는다.
P2P 연결, 파일 동기화, GPU 공유, 모바일 지원, 보안…
한 번에 다 하면 평생 못 끝낸다.
그래서 이렇게 한다.
되는 기술 하나를 만든다.
정말 딱 하나.
그게 되면 거기에 하나를 더 붙인다.
직접 만들거나, 오픈소스를 가져오거나.
그리고 이걸 연결한다.
우표 사서, 봉투에 넣고, 우체통에 넣었다.
전보가 있었다.
전화가 있었다.
교환원한테 "김서방네 전화 좀 걸어주시오" 했다.
다이얼로 번호를 돌리게 됐다.
지금은?
카톡 날린다.
전부 "메세지를 보낸다"는 같은 기능이다.
기술은 엄청 다르다. 물론.
근데 사용자 입장에서는 전부 같은 일을 하는 거다.
다만 얼마나 편하게 하느냐가 다를 뿐이다.
내가 만드는 것도 마찬가지다.
목표는 기능 완성이 아니다.
내가 처음에 말한 그 UX.
"앉아서 여러 대를 한 대처럼 편하게."
이게 한 번이라도 느껴지는 순간이 MVP다.
파일 동기화가 완벽하지 않아도 된다.
GPU 공유가 안 되어도 된다.
근데 딱 한 번,
노트북에서 집 컴퓨터한테 일을 시키고,
결과를 받아보는 그 순간에
"아, 이거 되네. 이거 편하네."
이 감각이 오면.
그게 MVP다.
나머지는 거기에 붙이면 된다.
정리하면 이거다
태초에 짜증이 있었다.
그 짜증의 정체는 "내가 원하는 UX가 세상에 없다"는 것이었다.
그래서 만들기로 했다.
짜증을 질문으로 바꿨다.
질문을 AI한테 던졌다.
AI는 정답 대신 경계선을 줬다.
경계선을 모아서 정리했더니 스펙이 나왔다.
스펙에서 가장 짧은 길을 골라 MVP를 잡았다.
이 순서다.
짜증 → UX → 질문 → 대화 → 리서치 → 스펙 → MVP.
다음 편에서는 이 MVP를 진짜로 만든다.
스펙은 나왔다.
이제 구현이다.