Devlog · 개발 이야기

3개월 동안
이 앱이 어떻게 만들어졌나

2026년 4월 말, "AI 에게 프로젝트마다 계정을 갈아 끼우는 게 너무 귀찮다" 는 한 문장으로 시작했습니다. 그 한 문장이 3개월 후 지금의 AgentManager 가 됐고, 이 페이지는 그 사이 있었던 결정과 실수를 시간순으로 정리한 이야기입니다.

3개월 2026-04-272026-07-23 혼자서, 매일 조금씩

하루 만에 뼈대만 세워보기

일단 돌아가는 걸 만드는 게 목표였습니다. 프로젝트 목록, 채팅 창, AI 응답이 흘러나오는 화면 — 세 개면 충분했습니다. 저녁까지 "그럭저럭 쓸 만한 최초 버전" 이 나왔고, 다음 날부터는 여기에 하나씩 붙여나가는 방식으로 진행했습니다.

보기 좋게 다듬기

처음엔 AI 응답이 그냥 텍스트가 쭉 나왔습니다. 볼드도 코드도 표도 없이. 여기에 마크다운 렌더링, 코드 색깔 입히기, 자동 스크롤을 붙였습니다. 검색, 단축키 (Ctrl+K 로 어디든 이동), 이전 대화 다시 열기 같은 편의 기능도 이때 대부분 완성했습니다. "채팅 앱처럼 보이게" 하는 기본기 작업이 이 시기의 전부였습니다.

웹 앱에서 데스크탑 앱으로

브라우저 탭으로 열어 쓰는 것도 나쁘진 않았는데, 두 가지가 걸렸습니다. 하나는 내 컴퓨터의 파일에 접근 하려면 매번 파일을 업로드해야 한다는 것, 다른 하나는 로그인 정보를 안전하게 저장 할 방법이 없다는 것이었습니다. 데스크탑 앱으로 옮기니 두 문제가 한 번에 풀렸고, 계정을 여러 개 저장해두고 클릭 한 번으로 갈아 끼우는 기능도 이때 들어갔습니다.

혼자 안 쓸지도 모르겠다

파일 미리보기 (문서·엑셀·PPT), 변경사항 diff 보기, 대시보드, 그리고 모바일에서 데스크탑 세션 이어보기. 앱 안에서 몇 번 클릭으로 원격 접속 링크를 만들 수 있게 했습니다. 이 즈음부터 "이거 나 말고 다른 사람도 쓸 수 있겠는데?" 라는 생각이 처음 들었습니다.

내 도구로 매일 쓰던 시절

대화를 여러 갈래로 나눠서 실험 (분기), 각 상태를 저장해두고 되돌리기 (스냅샷), 자주 쓰는 지시문을 템플릿으로 저장, AI 가 편집한 내용을 하나씩 훑어보며 수락하거나 거절하는 화면. 실제로 매일 쓰면서 필요한 걸 그때그때 붙였고, "쓰다 답답한 부분 → 바로 고침" 사이클이 이때가 제일 빨랐습니다.

Claude Project Manager → AgentManager

원래는 Claude 한 종류만 다루는 앱이었는데, 다른 AI (Codex) 도 함께 다룰 수 있게 확장하면서 이름이 안 맞기 시작했습니다. 두 종류 이상의 AI 를 한 창에서 다루는 게 본질이니 AgentManager 로 이름을 바꿨습니다. 각 AI 마다 명령어 규칙이 미묘하게 달라서 이 부분을 앱 안에서 잘 숨기는 게 어려운 작업이었습니다.

사용자한테는 안 보이는데 결정적인 것들

AI 가 응답을 다 끝냈는지, 아직 하는 중인지, 아니면 멈춰버린 건지 정확히 감지하는 로직. 30초 넘게 응답이 없으면 "확인" 버튼이 뜨는 것, 사용 한도에 걸리면 자동으로 잠깐 쉬고 재시도하면서 무슨 일인지 알려주는 배너. 화면상으로는 티가 안 나지만 이런 게 안 되면 앱이 답답해집니다. 이 시기 커밋 대부분이 fix (버그 수정) 로 시작했던 이유.

AI 를 계속 켜두면 빨라진다

기본 방식은 대화 한 번마다 AI 를 새로 켰다가 끕니다. 그래서 매번 프로젝트 정보를 다시 읽습니다. 직접 재보니 30번 정도 대화하면 같은 작업이 6.6배 느려집니다. 그래서 AI 를 계속 켜두는 모드 를 추가했습니다. 프로젝트 정보를 딱 한 번만 읽고 계속 기억. 채팅 화면 위쪽 버튼으로 대화 중에도 언제든 전환할 수 있습니다.

교환: 대신 프로젝트당 메모리를 200-500MB 정도 계속 씁니다. 자주 쓰는 프로젝트면 압도적으로 이득, 잠깐 뭐 하나 물어보는 용도면 기본 방식이 낫습니다. 그래서 사용자가 선택할 수 있게 남겨뒀습니다.

공개 배포

여기까지는 "나만 쓰는 개인 툴" 이었습니다. 다른 사람한테 공개하려면 세 가지가 필요했습니다:

  • 안전 등급 — AI 가 프로젝트 안에서 뭘 할 수 있는지 프로젝트마다 다르게 설정. 처음 만나는 프로젝트에는 읽기만, 자기 프로젝트엔 다 허용 같은 식으로.
  • 한국어 / 영어 지원 — 어느 나라 사람이 써도 되게.
  • 첫 실행 안내 — 뭘 골라야 하는지 5단계로 친절하게 물어보는 화면.

이 세 개를 다 만든 날 저녁, 처음 공개 배포를 눌렀습니다.

가장 뼈아팠던 실수 — 안전 등급이 실제로는 안 막고 있었다

공개 배포하고 몇 시간 뒤에 발견. 안전 등급을 만들 때 참고한 옵션이 사실은 안전 장치가 아니었습니다. 다른 용도의 옵션이었는데 이름만 비슷했던 것. 결과적으로 "안전", "표준", "신뢰" 로 설정해둔 프로젝트가 전부 "다 허용" 과 똑같이 동작하고 있었습니다. 이미 자동 업데이트로 사용자한테 나간 상태.

바로 실제로 어떻게 동작하는지 눈으로 확인한 다음 진짜 안전 장치로 바꿔서 몇 시간 안에 급하게 재배포.

교훈: 특히 보안 관련 옵션은 "이렇게 될 거야" 라고 짐작하지 말고 실제로 눈으로 확인해야 합니다. 잘못된 상태가 사용자한테 나가는 건 최악입니다.

어두운 배경에 검은 글씨

"첫 실행 안내부터 글자가 안 보여요" 라는 실사용자 제보. 확인해보니 원래 어두운 배경에 밝은 글씨가 나와야 하는데, 몇몇 화면에서 글자 색을 지정하는 걸 잊어서 브라우저 기본값인 검은색으로 나오고 있었습니다. 검은 배경에 검은 글씨 = 안 보임.

한 줄 고치니 앱 전체의 비슷한 문제가 다 풀렸습니다. 같은 김에 밝은 테마에서 대비가 낮은 부분들도 함께 손봤습니다.

안 쓰는 기능은 없애기

공개 배포하고 실제로 써보니 "이 필드 안 쓰겠는데?" 싶은 것들이 하나씩 보였습니다. 프로젝트에 태그 붙이는 기능, 프로젝트마다 지시문 저장하는 기능 — 다 없앴습니다. 그리고 창이 작을 때 프로젝트 추가 화면이 스크롤이 안 돼서 저장 버튼을 못 누르던 버그도 이때 잡았습니다. 덜어내는 게 붙이는 것보다 어렵다 는 말이 실감났습니다.

안전 등급을 클릭 한 번으로 바꿀 수 있게

안전 등급이 프로젝트 편집 창 안에만 있으니까 "이거 프로젝트마다 못 바꾸는 거야?" 라는 오해가 생겼습니다. 채팅 화면 위쪽에 색깔 배지를 하나 달아서 — 민트색 = 안전/표준, 노랑 = 신뢰, 빨강 = 다 허용 (위험) — 클릭하면 그 자리에서 바꿀 수 있게 했습니다. 같은 김에 위쪽 버튼들 배치도 다시 정리해서 세션 이름이 가운데 오도록 조정.

외부 연동 걷어내기

얼마 전에 붙였던 다른 앱과의 연동 기능이 있었는데, 실제로 써보니 굳이 이 앱 안에 있을 필요가 없더군요. 깔끔하게 걷어내고, 대신 이 페이지 다른 섹션에서 링크로만 소개하는 형태로 정착했습니다.

혼자 검토하면 놓치니까, 다른 AI 한테도 시켜보자

공개 배포 첫날에 중요한 버그를 두 번이나 겪고 나서 판단. 다른 AI (다른 회사 것) 한테 지금까지 만든 걸 리뷰시키고, 동시에 이 AI 의 다른 세션한테도 일부러 트집 잡는 관점 으로 리뷰시켰습니다.

다른 AI 는 "문제 없음" 판정했는데, 트집 잡는 관점 리뷰가 두 개의 진짜 문제를 잡았습니다:

  • 안전 등급을 바꿀 때마다 다른 프로젝트에 저장된 설정이 조용히 지워지고 있었음. 조합에 의해서 우연히 발생하는 부작용.
  • 안전 등급 변경 성공 알림이 사용자에게 항상 이상한 문자로 표시 (예: "Trust Level → safe" 대신 그냥 "safe").
교훈: 자기가 만든 걸 자기가 리뷰하면 놓치는 게 있습니다. 완전히 다른 관점에서 한 번 더 봐야 진짜 버그가 잡힙니다.

이 페이지

지금 보고 있는 이 페이지 자체가 마지막 작업이었습니다. 단순한 소개 페이지 하나 만들고 도메인 연결까지 하루 안에. 새 버전이 나올 때마다 페이지가 자동으로 최신 다운로드 링크를 잡아오도록 만들어서, 앞으로 페이지를 다시 배포할 필요가 없습니다.