AI 개발 프로젝트 - POC 구현 과정의 경험
화창한 5월이었다.
나는 최종 보스와의 결전을 앞두고 있었다.
최종 보스는 바로 문서의 웹뷰다.
지난 3개월 동안 깨달았다.
웹뷰를 제외한 나머지 기능들은 비교적 쉽게 만들 수 있었다.
물론 이 말은 *“최종 보스보다는 쉽다”*는 뜻이지,
결코 “바이브 코딩이면 다 된다”는 뜻은 아니었다.
결국 문서를 보여주지 못하면 서비스 완성이 안된다.
바꿔 말하면 문서 보기만 만들면 게임오버다.
(이 때는 그런 줄 알았다. 피씨에서 외부 API와 연동해 기능을 구현하는 POC였기 때문이다)
고민을 했다.
이전 실패 경험을 통해서 깨달은 것은,
-AI가 문서를 알아서 판독하고 그 문서에 적합한 뷰를 만들 수 있는 게 아니다
-AI가 문서를 파악하기에는 문서가 너무 크다(xml 파일 사이즈가 7mb 넘는 것도 있음)
-문서 타입이 여러 종류가 있다
-xml 문서를 웹뷰로 만들려면 파싱하고 렌더링해야 한다.
그래서 문서 구조 파악을 시작했다
-일단 눈으로 문서 여러 개를 살펴본다.
-dart.fss.or.kr 사이트의 공시 문서보기와 xml을 비교한다
-각 xml 문서의 공통점, 차이점을 정리해서 기능요건정의서로 만든다
그리고 코딩을 해서 결과를 검증하면서 파싱 로직을 만들었다.
이 과정을 통해서 문서의 속성이 정의되었고 또 그동안 알지 못했던
새로운 속성도 이해하게 되었다.
하나의 속성이 밝혀질 때마다 파싱 로직은 복잡해진다
복잡해지면 다시 정리해서 새로운 아키텍처의 파싱 로직으로 리팩토링한다.
이 과정은 클로드코드가 없었으면 할 수 었었을 것이다.
클로드코드 만세!!!
잠깐이지만 최종 보스를 깰 수 있을 것 같았다.
희망을 품었다.
나도 발전하고 있구나!!!
그런데 예상하지 못했던 상황이 발생했다.
"문서 보기"라는 최종 보스는 새끼 보스를 하나 숨겨두고 있었는데
그것은 바로 테이블 <table>이다.
공시 문서 xml 파일에는 수백 개, 수천 개의 <table>이 있는데
다양한 형태와 쓰임새를 가지고 있다.
눈으로 볼 때는 비슷한데 코드는 복잡했다.
이 다양한 테이블들을 dart.fss.or.kr 수준으로 보여줘야 한다.
마찬가지로 테이블 속성, 타입을 파악하는 로직을 만들고 테스트하고 검증해서
50% 넘는 수준의 파싱 로직을 만들었는데 여전히 해결하지 못한 난제가 쌓여 있었다.
새끼 보스가 엄마 보스보다 더 어려웠다.
<table>은 "표"를 잘 해석하면 될 것 같았는데 레이아웃용 테이블코드가 너무 많았다.
예를 들어 천 개중 500개는 클리어했는데 나머지가 500개인데 이건 하나하나 뜯어봐야 하는 상황이다.
클로드코드한테 하나씩 알려주고 파싱 로직을 개선하는데 하나 고치면 다른 하나가 깨진다
분명 규칙은 있을 텐데(규칙이 있으니까 dart.fss.or.kr에서는 깔끔한 뷰가 만들어지겠지),
이 규칙을 내가 알 수가 없다.
불행히 개발 가이드에 이 부분에 대한 규칙은 없다.
깰 수 있을 것 같았던 최종 보스 "문서 보기"도 거의 다 된 것 같았는데
각 모듈별로 합치니까 문제가 생긴다.
문서가 너무 커서 잘게 쪼개서 문서를 로딩해야 하는데 연결 고리를 만드는데 계속 실패한다
내가 문제인가?
클로드코드가 문제인가?
현재 AI 능력으로는 만들 수 없는 과제인가?
반복되는 실패로 지쳐간다.
"자동화"를 목표로 했는데 그 목표까지 가기 위해서는
매일매일 눈으로 오류를 잡아내는 노가다를 해야 한다.
더구나 클로드코드는 오류 하나 지우면 새 오류 하나 추가하는 상황이다.
점점 지쳐간다.
이 프로젝트는 완수하기 불가능할 것 같다.
이때 클로드코드가 PDF로 만들어보자고 제안한다.
(사실 내가 먼저 가능하냐고 물었지만...)
그런데 PDF로 만들더라도 문서. 테이블은 잘 정렬돼야 하는 거 아냐?
어차피 마찬가지 아닌가?
하는 의심이 들었지만
AI는 PDF가 훨씬 더 가능성이 높다고 나를 설득한다.
"빠른 출시 가능, 유지보수 용이"
"직관적이고 일관된 문서 형식으로 이용자 편의성 확보"
태풍과 싸우다 망망대해 조난을 당한 나에게
저 멀리 불빛이 보이는 것 같았다
섬이다.
이제 살 수 있어!!!
조금만 더 힘내자!!!
AI에 가스라이팅 당한 나는 최종보스와 현재 경기장에서 승부를 포기하고
새로운 경기장에서 다시 싸우기로 결심했다.
나에게 유리한 경기장에서 싸워야 이길 수 있다.
타이슨이 말했다.
"누구나 그럴싸한 계획을 갖고 있다. 처맞기 전까지는."
누가 처맞을지는 세 번째 스테이지 "KO"로 이어집니다