이전에 만들어놓았던 gemini_controller 라는 도커 컨테이너가 있었다.

gemini CLI를 알게 되었을 때 nas 전체를 컨트롤하는 AI 모델을 만들고 싶었다. 과감하게 SSH로 접속하여 npm install -g를 사용해 설치했고, 편하게 사용하고 있었는데, 어느 순간부터 디스크에는 충분한 용량이 있는데도 불구하고 용량이 없다며 아무것도 할 수 없는 상황이 반복되었다.

처음에는 문제의 심각성을 몰랐지만, 점차 아무것도 되지 않자 심각성을 느꼈고, 원인을 끝내 밝혀내지 못했지만 gemini CLI가 사용할수록 어딘가에 쓰레기 캐시 파일을 만드는 것 아니냐는 의심이 들기 시작했다.

그때 당시의 에러 메시지는 잘 기억나지 않지만, 검색해도, gemini에게 물어봐도 해결되지 않았고, gemini가 캐시 파일을 삭제해보면 된다는 조언도 들었다. 그래도 해결되지 않아서 재부팅을 했는데, 이후 내 NAS는 아무것도 되지 않는 상태가 되어버렸다. 벽돌이 된 것이다.

결국 OS를 다시 설치했고, NAS에 접속해서 초기 설정 화면이 나왔다. 이전에 쓰던 디스크 데이터는 걱정했지만, 다행히도 디스크의 모든 파일은 그대로 남아 있었다. 그러나 mariadb나 기타 웹 설정들, Web UI에서는 표시되지 않던 내부적으로 관리되던 데이터들은 모두 사라졌고, Docker 컨테이너들도 함께 삭제되었다. 다행히 나는 gemini CLI로 전환해 놓았던 도커 컨테이너들은 별도로 compose로 만들어놓았기 때문에 다시 빌드 후 실행하는 것만으로 복구할 수 있었다.

사용자 설정들도 모두 초기화되었고, 조금 당황스러웠던 점은 내 계정은 그대로였지만 다른 유저들은 모두 삭제되어서 동일 이름으로 새 유저를 생성하면 이전 유저 권한이 그대로 남아 있어서 컨트롤이 불가능했고, chmod로 권한을 변경해보려고 해도 파일을 볼 수도, 제어할 수도 없었다. 이 문제를 해결하기 위해 각 유저의 파일을 일일이 다운로드 받아 삭제하고, 유저 아이디로 다시 업로드하여 권한을 업데이트하는 방법밖에 없었다.

후... 그때를 생각하면 지금도 아찔하다.. 포멧과 복원의 경계에 있었던것 같던 기분..

그 일이 있고 난 후, AI 에이전트는 아직 버그가 많고 베타 버전임을 몸소 느꼈다. 이런 일이 다시 발생할까 하는 공포와 함께, 분리된 환경에서 안정적으로 운영하기 위해 도커 컨테이너 같은 격리 환경의 구현이 반드시 필요하다고 판단했다.

cli니까 SSH로 접근할 수도 있고, 문제가 생기면 컨테이너만 삭제하면 되는거니까 말이다.

이 컨테이너의 가장 핵심 기능은 다음과 같다:

  1. nas의 docker 명령어에 접근 가능할 것
  2. perforce 명령어도 접근 가능하고 컨트롤 가능할것

이 부분은 잼미니에게 만들어달라고 요청했고, 간단하게 처리해주었다.

그런데 요즘 claude 를 알게되었다. 회사에서 claude 계정을 주어서 사용해봤는데 완전 신세계였다..

잼미니 는 많이 달래고 달래서 겨우 일을 처리하는 느낌이라면 claude 는 진짜 믿고 맡겨도 되는 느낌이었다. 큰 프로젝트 파악도 잘 했고 기능구현도 잘 했다. 잼미니 는 뭔가 시키면 구현 중 문제가 발생한다면 도와줘야하는 부분이 많았지만 claude 는 시키면 구현 중 발생하는 문제 처리 능력이 잼미니 보다 훨씬 좋았다.

잼미니 는 시키면 구현 중 문제가 생기면 도와줘야 하는 부분도 많고, 많이 달래고 달래서 겨우 일을 처리하는 느낌이라면, Claude는 시키면 구현 중 발생하는 문제 처리 능력이 잼미니 보다 훨씬 좋았다. 진짜 믿고 맡길 수 있는 느낌이었다. 큰 프로젝트 파악도 잘 했고, 기능 구현도 잘 했다.

또 잼미니는 해결하는 방식이 좀 무섭게 느껴졌는데, “내가 원한 기능이 작동만 하면 된다”는 식으로 접근하는데, 이 방식이 다른 부분까지 망쳐놓고 내 목표한 한 가지 기능만 완성시키는 느낌이었다. 반면 Claude는 전체 구조를 파악해서, 이 구조를 그대로 따르거나 조금 수정하는 방식을 먼저 제안하고 바로 실행하는 편이었다.

또 잼미니 는 해결하는 방식이 좀 무섭게 느껴졌는데, 사용자가 원한 기능이 작동만 하면 된다는 식으로 접근한다. 이 방식이 다른 부분까지 망쳐도 사용자가 목표한 한 가지 기능만 완성시키면 된다같은 느낌이었다. 그래서 어떤 기능 하나를 만들고, 두번째 기능을 만드는데, 첫번째 기능이 걸리적거리면 첫번째 기능을 망치고 두번째 기능을 구현한다. 그래서 첫번째 기능이 동작하지 않는다고 하니 첫번째를 고치다가 두번째를 망친다..

이거 완전 개발자 수도꼭지 짤이잖아..? 어떻게 보면 개발자 고증을 잘한걸수도..?

수도꼭지 고치기

반면 Claude는 전체 구조를 파악해서, 이 구조를 그대로 따르거나 조금 수정하는 방식을 먼저 제안하고 바로 실행하는 편이었다. 그런 사고 기반이라 그런지 과감한 변경은 내가 아이디어를 내어 설계를 해줘야하는것같다.

단점이라면.. 가격..? chatgpt 는 진작에 api 키를 받아 사용한 만큼 돈을 내고있다. 이게 엄청 싸다. chatgpt 가 아마 토큰 가격이 젤 싸지않을까 싶다. 잼미니 는 무료긴한데.. 무료값한다.. 그리고 claude.. 이건 가장 머리가 좋은데 가장 비싸다.. 개인적으로 사용할려고 개인플랜을 살까 했지만 토큰 다 떨어져서 기다리는건 chatgpt 부터 싫었기에 api 키를 받아서 사용하고 싶었으나 claude 토큰가격이 좀 많이 비쌌다. 예전에 봤을땐 그랬는데 요즘엔 가격이 비슷해진것같아서 한번 발급받아서 지금 사용중에 있다.

처음 내 프로젝트들을 init 할때 거의 5.5달러가 나갔다.. 하지만 그 후 사용중에는 그렇게 많이 나가지 않는것같다. 이렇게 생각하면 성능 20만원짜리를 어쩌피 사용량도 그렇게 많지않으니까 한달에 만원꼴도 안되는걸로 사용하는건데 훨씬 합리적이지 않나? 물론 진짜 활용 잘하는 사람들은 월정액 쓰는게 나을것이다. 한국에서 가장 잘쓰는 사람이 있다는데 그 분은 한달에 20만원짜리 계정 하나도 금방써서 3계정을 만들어서 돌린다는 얘기를 들었다.. 그렇게 쓰는것도 대단한것같다.

여튼 이제 ai agent 컨테이너가 처음에는 잼미니 밖에 없었지만 여기에는 codex 도 깔려있고 이제 claude 도 깔려있다. 그래서 원래 이름의 취지와 안맞다는 생각이 들어서 이름을 변경했다.

작업은 간단했지만 사연이 길군..