작업을 맡기다 보니 대시보드가 필요해졌다
PetV3에서 시작한 대시보드를 직접 사용하며 다듬고 있다. 지금은 기존 기능을 유지하면서 개편 과정의 회귀를 고치는 중이다.
시작은 진행 상황 확인
PetV3에서 여러 AI 작업을 병렬로 진행하면서, 이 흐름을 더 넓게 활용할 방법을 생각하게 됐다. 각 대화를 열어 무엇이 끝났고 어디에 내 판단이 필요한지 확인하는 것은 가능했다. 다만 창을 오가며 작업 사이의 관계까지 매번 맞춰 보는 과정이 번거로웠다. 이미 있는 정보를 한곳에 모으면 작업을 더 늘리더라도 확인하는 부담을 줄일 수 있겠다고 생각했다.
필요한 기능은 실제로 사용하면서 늘어났다. 작업목록뿐 아니라 담당 세션, 변경 파일, 커밋 범위까지 함께 보고 싶어졌다. 서로 영향을 주는 작업은 관계도로 확인하고, 선택한 항목에서 상세 내용과 대화로 이어지고 싶었다. 디자인 전문성을 보여 주려는 시도보다는, 직접 쓰면서 반복하는 조작을 줄이고 정보를 더 잘 볼 수 있게 만드는 실험이었다. 동시에 다른 프로젝트에도 적용할 수 있는 시스템으로 확장하고 싶었다.
이 글을 정리하면서 AI에게 이전 프롬프트와 대화 기록을 살펴보고 대시보드 관련 요구가 어떻게 이어졌는지 요약해 달라고 요청했다. 돌아온 요약에는 아래와 같은 초기 요청과 수정 사례가 있었다. 그 내용을 바탕으로 당시의 의도와 지금의 생각을 함께 정리했다.
8월 30일 — 읽는 화면에서 누르는 화면으로
이전 기록을 정리한 내용을 보면, 대시보드를 다른 프로젝트에도 쓸 수 있는 스킬로 만들고 싶다는 생각은 이미 이때부터 있었다. PetV3에서 동작을 확인한 기능을 공통 스킬에도 반영해 달라고 요청했다. 지금 와서 갑자기 범용 제품을 떠올린 것은 아니다. 다만 실제 요구를 가장 많이 발견한 곳이 PetV3였고, 구현도 그 프로젝트와 함께 자랐다.
인터랙티브 화면이 작동하기 시작하자 다음 요청은 곧바로 탐색으로 이어졌다. 최근 커밋을 누르면 메시지와 상세 정보가 열리고, 다시 이전 화면으로 돌아올 수 있으면 좋겠다고 했다. Git 상태에서는 원격 저장소 정보를, 작업큐에서는 선택한 작업의 상세 내용을 보고 싶었다. 숫자로 구분된 메뉴도 표시만 하는 항목이 아니라 클릭해 들어갈 수 있는 입구가 되기를 원했다.
당시에는 실행 강도를 여러 단계와 사용자 설정으로 나누고, 운전석의 속도계처럼 ASCII 게이지로 표현해 달라는 요청도 했다. 수치를 많이 늘어놓는 것보다 현재 어떤 강도로 작업하고 있는지 빠르게 알아보고 싶었다. 이때부터 대시보드는 상태를 출력하는 화면에서, 내가 선택하고 확인하는 도구로 바뀌기 시작했다.
9월 1일 — 움직임과 정확한 상태
요약에서 다시 확인한 요청 중에는 작업 변화를 실시간에 가깝게 보고 싶다는 요구가 남아 있다. ChatGPT와 Claude 세션이 활동 중일 때 ASCII 애니메이션이나 로딩 표시로 구분해 달라고 했다. 화면이 살아 있다는 느낌도 원했지만, 무엇이 진행 중인지 눈에 빨리 들어오는 것이 목적이었다.
이 요구에는 주의할 점도 있었다. 최근 기록이 바뀌었다는 것과 작업 프로세스가 실제로 살아 있다는 것은 같은 정보가 아니다. 당시 구현 기록은 활동 추정에 물음표를 남기고, 애니메이션 갱신과 무거운 상태 수집의 주기를 분리한 것으로 설명한다. 보기 좋게 움직이는 표시가 확인하지 않은 사실까지 뜻해서는 안 된다는 기준이 생겼다.
같은 날 이미 한 차례 UI 회귀를 겪었다. 메인 화면의 스크롤이 지나치게 길어지고 클릭 위치가 맞지 않아 직접 문제를 지적했다. 정보를 더 보여 주려다 기본 조작이 어려워진 것이다. 이 문제를 고치며 얻은 기준을 Codex와 Claude 양쪽의 대시보드 스킬에도 반영해 달라고 요청했다. 같은 문제가 다른 프로젝트에서 반복되지 않게 하고 싶었다.
9월 1–2일 — 화면 조작이 작업에 닿으려면
상태를 보는 것에서 다음 관심은 실제 작업을 조절하는 것으로 옮겨 갔다. 사용량을 다 쓰면 멈추는 옵션을 대시보드에 두고, 기본은 정지하도록 해 달라고 요청했다. 필요할 때는 내가 강도를 조절할 수 있기를 원했다.
이후 기록에는 대시보드에서 방금 바꾼 모드를 확인했는지 묻는 장면도 있다. 버튼이나 게이지가 바뀌었다는 사실만으로 AI가 그 설정을 읽고 다음 작업에 반영했다고 볼 수는 없었다. 화면의 선택, 전달된 설정, 실제 실행은 각각 확인할 대상이었다.
이 경험은 대시보드의 방향에 영향을 줬다. 조작할 수 있는 화면을 만드는 데서 끝나지 않고, 요청이 어디까지 전달됐는지 보여 줄 필요가 있었다. 지금 대화 연결에서도 ‘전달 확인’과 ‘작업 반영 완료’를 구분하려는 이유가 여기에 있다. 연결 모듈이 있다는 사실만으로 기존 Codex·Claude 대화에서 실제 송수신까지 검증됐다고 보지는 않는다.
9월 3일 — 관계도와 프로젝트의 개성
작업이 더 쌓이자 목록만으로는 관계를 파악하기 어려워졌다. 당시 전달한 요청에는 작업을 누르면 상세 내용을 보고, 마우스 휠로 확대하고, 드래그로 이동하는 그래프가 들어 있다. 단계별 진행 상황도 작업 원문이 바뀌면 화면에 바로 반영되기를 원했다.
메뉴를 정리할 때도 기능은 유지하되 중복은 통합하고, 상세히 볼 내용은 분리해 달라고 했다. 그래프를 크게 만드는 것이 목적은 아니었다. 어떤 일이 무엇에 연결돼 있고 어디를 확인해야 하는지가 더 잘 보여야 했다.
neofetch처럼 프로젝트 성격에 맞는 ASCII 아트를 보여 달라는 요구도 이때 이미 있었다. 단순 장식을 하나 추가하기보다 화면 전체의 디자인과 어울리기를 원했다. 지금 요청한 크기별 아트와 기존 애니메이션 유지도 그 방향의 연장이다. 화면에 개성은 있되, 작업 정보와 메뉴를 방해하지 않는 구성을 찾고 있다.
내가 맡은 역할
이 과정에서 나는 부족한 기능과 불편한 동작을 프롬프트로 설명하고, 나온 결과를 직접 보면서 다음 요청을 조정했다. 세부 구현이나 기술 스택을 모두 내가 설계한 것은 아니다. 내 관심은 화면을 통해 실제 작업 상태를 이해하고 필요한 판단을 내릴 수 있는지에 있었다.
모델도 바꿔 가며 시험하고 있다. 지금은 Astra로 작업을 이어 가면서 요구가 얼마나 잘 유지되는지, 수정 결과가 실제 사용에 맞는지 확인하는 중이다. 새로운 모델을 쓴다는 사실만으로 개선을 판단할 수는 없다. 이전에 잘 쓰던 기능이 유지되는지도 함께 봐야 한다.
9월 4–5일 — Astra와 재작업
이번에는 그 문제가 눈에 띄게 드러났다. 나는 기존 메뉴, 레이아웃, 애니메이션을 유지하면서 관계도와 드래그, 클릭 동작을 개선하고 싶었다. 그런데 개편된 화면에서는 관계도가 중심을 차지하고 기존 기능을 찾기 어려워졌다. 좁은 화면에서는 상세 영역까지 숨겨져 관계도만 남은 것처럼 보였다.
요청했던 것은 기능을 더하고 버그를 고치는 일이었다. 사용하던 화면을 단순한 다른 화면으로 교체하는 결과는 기대와 달랐다. 그래서 기존 디자인과 번호 메뉴를 유지하고, 그 안에 새 기능을 통합하도록 다시 요청했다. 그래프의 드래그와 선택, 화면 크기를 바꿨을 때의 동작도 함께 확인해야 한다고 구체화했다.
현재는 이 회귀를 바로잡는 재작업이 진행 중이다. 기존 UI가 복구됐거나 모든 동작이 검증됐다고 쓰기에는 아직 이르다. 이번 결과를 다시 사용해 보고 판단하려고 한다.
유지할 것도 요구사항
이번에 다시 느낀 것은 개선 요청에 ‘무엇을 바꿀지’만 적으면 부족하다는 점이다. 기존 메뉴의 접근성, 익숙한 배치, 애니메이션처럼 계속 유지해야 하는 것도 요구사항이었다. 새 기능이 생겨도 원래 하던 일을 더 어렵게 만들면 내가 원한 개선이라고 할 수 없다.
코드 검사와 실행 시험도 필요하지만, 매일 보던 화면에서 느끼는 차이는 직접 사용해야 드러난다. 나는 구현을 맡기는 대신 이 차이를 확인하고 설명하는 역할을 계속 맡고 있다. 대시보드가 보기 좋은 것과 프로젝트를 관리하기 편한 것은 함께 충족돼야 한다.
다른 프로젝트에서도
장기적으로는 다른 사람이 설치한 뒤 자신의 프로젝트에서 실행할 수 있는 도구로 만들고 싶다. 저장소의 커밋과 작업 문서, 연결 가능한 이슈를 읽고 프로젝트에 맞는 정보를 보여 주는 형태다. 스킬로 초기 분석과 실행을 돕고, 대시보드는 실제 상태를 계속 보여 주는 프로그램으로 두는 방향을 검토하고 있다.
다만 커밋 이력만으로 앞으로 할 일이나 작업의 의존 관계를 모두 알 수는 없다. 기록에서 확인한 정보와 AI가 추정한 관계는 구분해야 한다. 프로젝트에 맞는 구성이란 정보를 임의로 채우는 것이 아니라, 어떤 근거를 어디에서 가져올지 정하는 일에 가깝다.
지금의 공개 범위
우선은 PetV3에서 사용하면서 다듬는 과정을 공개하려고 한다. 독립 제품으로 배포하기 전에는 현재 회귀를 해결하고, 다른 프로젝트에서도 본체를 수정하지 않고 설정만으로 사용할 수 있는지 확인해야 한다. 그 결과를 보고 별도 저장소로 분리할 시점을 정할 생각이다.
지금 내게 필요한 다음 증거는 기능 목록이 더 길어지는 것이 아니다. 기존에 잘되던 일을 유지하면서 새 기능도 쓸 수 있는지, 그리고 그 경험이 다른 프로젝트에서도 이어지는지다. 오늘은 Astra와 함께 그 조건을 다시 맞추고 있다.