최근 OpenClaw 라는 AI 툴이 등장해 인기를 끌고 있다. 나도 혹시 쓸모가 있을까 싶어 급히 Mac Mini를 주문하고 이 유행에 동참해 보았다. 사실 나중에 알고 보니 Mac에서만 동작한다는 건 이미 업데이트된 정보였는데, 역시 사람은 공부를 해야 한다. 😅 설치는 쉬웠지만, 설정은 만만치 않았다 OpenClaw 설치 자체는 어렵지 않았다. 문제는 설정 과정이었다. OpenClaw가 사용할 LLM 서비스 API Key 가 필요했고, 인터넷 검색을 시키려면 Brave API 도 필요했다. 처음에는 내가 이미 구독 중인 Claude MAX 요금제를 그대로 활용하려 했다. 그런데 Anthropic 측에서 이를 약관 위반으로 판단해 막아둔 상태였고, 내가 시도하던 시점에는 사용이 불가능했다. 그래서 차선책으로 Gemini 무료 티어 를 기본 LLM으로 설정했다. 그런데 작업 하나를 요청했을 뿐인데 바로 API 사용량 초과가 떴다. 내가 사용하기 얼마 전에 분당 사용량 제한 정책이 도입된 모양이었다. 어쩔 수 없이 Gemini를 유료로 전환하고, 가장 저렴한 모델을 적용했다. 원격에서 작업을 지시하기 위해 텔레그램 봇 까지 설정을 마쳤다. 잠깐씩 틈틈이 하다 보니 여기까지 오는 데만 며칠이 걸렸다. 그때 그 시절, 리눅스를 설치하던 밤 여기까지 하고 나니 문득 옛 기억이 떠올랐다. 1990년대 말에서 2000년대 초, 리눅스 배포판이 막 알려지던 시절이었다. 어렵게 배포판을 구해서 밤새 설치하고 설정을 마치면… "이제 뭘 해야 하지?" 하며 컴퓨터 전원을 끄던 그때 말이다. OpenClaw 설정을 끝낸 지금, 딱 그 느낌이었다. OpenClaw + Claude Code, 합체를 시도하다 이 녀석을 무엇에 쓸까 고민하다가, OpenClaw에서 Gemini 대신 Claude Code 에게 실제 작업을 맡기는 구조를 시도해 보기로 했다. 구상은 이랬다. 내가 "제미나이에 대해서 검색...
요즘 개발되는 앱의 상당수는 앱 단독으로 동작하지 않고, 서버와 통신하는 구조로 만들어진다. 내가 개발하는 앱도 당연히 백엔드 서버를 이용하고 있다. 서버 개발이라는 벽 지난 포스팅 에서도 언급했듯이, 나는 요즘 일반적으로 많이 쓰이는 PHP나 Node.js 같은 기술에 대한 경험이 별로 없다. 그래서 이전에는 작은 기능 하나를 서버에 추가하려 해도 오랜 시간을 소비해야 했다. 결국 가급적이면 서버에 의존하지 않는 기능만 만들곤 했다. 내가 AI를 개발에 이용하기 시작한 주요 이유 중 하나가 바로 이 서버 개발 때문이었다. 처음에는 외주를 통해 개발되어 있던 기존 서버에 Cursor를 이용해 엔드포인트를 하나씩 추가하거나 수정하는 방식으로 진행했다. 응답이 제각각인 문제 그런데 이 과정에서 문제가 생겼다. AI가 새로운 엔드포인트를 만들 때마다 서버의 응답 형태가 조금씩 달라지면서, 클라이언트와 통합하는 데 어려움이 발생한 것이다. REST API에 대한 경험 없이 단순히 AI에게 구현만 시킨 결과였다. 문서화로 인터페이스 통일하기 이러한 비효율을 극복하기 위해 선택한 방법이 바로 지난 포스팅 에서 이야기한 문서화였다. 기능 개발의 전반적인 상황을 설명하고, 클라이언트와 서버 간의 인터페이스까지 함께 문서화하도록 했다. 그리고 생성된 문서를 앱과 서버 양쪽 프로젝트에 포함시켜, 이를 기반으로 개발하도록 함으로써 각 구현 단계에서 서로 다른 방식으로 구현되는 것을 방지했다. AI는 항상 새로운 개발자다 여기서 한 가지 주의할 점이 있다. 이미 한 번 구현된 서버에 새로운 엔드포인트를 추가해야 할 때, 기존과 동일한 방식으로 인터페이스를 구성해야 한다는 것을 반드시 함께 지시해야 했다. AI는 항상 새로운 개발자라고 보면 된다. 새로운 개발자는 자기 방식으로 개발하려는 경향 이 있다. 그래서 이전에 작성한 문서를 함께 제공하고, 이를 기반으로 작성하라고 명확히 지시해야 한다. 요즘은 AI 에이전트들이 프로젝트의 기존 코...