퓨전보드 개발로그 · 3화
백점 만점 추천 점수를 버렸다: 우선순위가 적합성으로 둔갑하고 있었다
8월 10일 밤, README에 철학을 넣었더니 화면이 안 바뀌어 있었다. 이어서 받은 리뷰와 감사가 진짜 약점을 짚었다. 점수 하나에 적합성, 근거, 위험, 내 관심도가 섞여 있었다. 점수를 없애고 서로 보상되지 않는 판정축과 네 가지 결정으로 바꿨다.
8월 10일 밤 9시 2분, README에 철학을 적어 달라고 했다. 기존 소개 두 문단을 붙여 넣고 그 아래에 한 줄을 달았다. 여기에 우리 철학 적어. 수학적 사고력.
철학을 검증 순서로 적었다
수학적 사고력을 기능 설명으로 넣지 않고 가설을 만드는 순서로 적었다. 문제를 다시 정의하고, 패턴을 찾고, 추상화하고, 제약을 정하고, 합성하고, 최적화하고, 검증한다. 주어진 일을 바로 수행하기 전에 이 문제를 꼭 이 방식으로 풀어야 하는지를 먼저 묻는다는 뜻이다. 목적은 좋은 도구 하나를 추천하는 게 아니라 서로 다른 기술의 본질을 꺼내 조합하고, 성립 조건을 검증하는 것이다.
4분 뒤 GitHub에서 README를 열어 보고 보낸 말은 “안바꼈는데”였다. AI는 철학 섹션을 추가했다고 답했지만, 변경은 초안 PR 브랜치에만 있었다. 파일을 고친 것과 내가 보는 화면에 반영된 것을 같은 “완료”로 말한 것이다. PR을 main에 병합하고 실제 README에 섹션이 보이는 걸 확인하고서야 끝났다.
리뷰가 짚은 진짜 약점
밤 9시 16분에는 PR과 저장소 전체를 본 외부 리뷰를 그대로 붙여 넣었다. 철학 섹션의 위치와 중복과 문체, 공개 커밋에 들어간 에이전트 지침 폴더, 라이선스와 자동 검사가 없다는 점까지 적혀 있었다. 피드백을 보고 고칠 부분을 고치라고 했다.
리뷰가 짚은 가장 큰 약점은 코드의 안정성이 아니라 판단 점수를 얼마나 믿을 수 있느냐였다. 고치는 과정에서 감사 에이전트들이 그 문제가 실제로 생기는 경로를 찾아냈다. 백점 만점 점수 하나에 여러 판단이 가중합으로 섞여 있었다.
- 내가 먼저 보고 싶다고 정한 우선순위가 기술 적합성처럼 점수를 올렸다
- 기능 일부만 겹쳐도 강하게 어울리는 후보로 보였다
- 조사가 덜 끝난 기록도 검증된 것처럼 보였다
- 판정은 보류인데 보고서는 소스를 빌려 쓰라고 권하는 모순이 있었다
숫자가 정교해 보일수록 그 안에 무엇이 섞였는지는 더 보이지 않았다.
서로 보상되지 않는 판정축
밤 9시 59분 커밋에서 점수를 없앴다. 대신 프로젝트마다 판정축을 따로 매긴다.
- 필요 적합성: 프로젝트의 채워지지 않은 요구를 실제로 채우는가
- 인터페이스 준비도: 입력과 출력을 바로 잇거나 어댑터로 맞출 수 있는가
- 상보성: 빈칸을 채우는지, 기존 기능을 넓히는지, 바꾸는지, 겹치는지
- 제약과 위험: 라이선스, 보안, 외부 전송, 운영 부담, 되돌릴 수 있는지
- 근거 수준: 검증된 출처인지, 부분 근거인지, 카탈로그 문맥뿐인지, 합성 샘플인지
- 검토 우선순위: 내가 먼저 보고 싶은지. 기술 적합성에는 영향을 주지 않는다
한 축이 좋다고 다른 축의 부족을 메워 주지 않는다. 최종 결정은 네 가지다. 최소 실험, 추가 조사, 도입 보류, 연결 근거 없음. 최소 실험은 아무 때나 열리지 않는다. 프로젝트의 모든 제약이 구조화된 근거로 통과했을 때만 열린다. 보고서도 보류 상태에서는 구현을 권하지 않게 고쳤다. 당시 테스트 26개가 모두 통과했다.
배운 것
서로 보상되면 안 되는 판단을 숫자 하나로 합치면, 그 숫자는 아무것도 말하지 않으면서 모든 걸 말하는 것처럼 보인다. 내 관심도는 기술적 확신이 아니고, 모른다는 사실은 통과가 아니다. 그리고 그날 밤의 “안바꼈는데”는 이후 모든 작업의 확인 기준이 됐다. 파일이 바뀐 것과 사용자가 보는 화면이 바뀐 것은 다르다.