낡은 C# 코드를 RAG용 문서로 바꿀 때 빠지는 함정
오래되고 복잡한 C# 를 RAG에 넣기 좋은 깔끔한 문서로 바꾸는 일은 단순한 코드 정리보다 훨씬 어렵다. 메서드, 주석, 이름 규칙을 뽑아 문서를 만들 수는 있지만, 실제로 중요한 업무 규칙은 코드 여러 곳에 흩어져 있다. , 예외 처리, 급하게 넣은 수정, 전체 실행 흐름 속에 숨어 있어서 클래스별 또는 기능별 문서만으로는 빠지는 부분이 생긴다.
겉보기에는 문서가 잘 정리돼도, 실제 RAG에서 쓰면 단계 사이의 문맥, 규칙 간 의존성, , 업무 의도가 부족해진다. 단순히 클래스나 메서드 단위로 잘라 넣거나, 도메인·기능별로 묶거나, 주석과 이름을 참고해 보강하는 방식만으로는 충분하지 않다. 한 답변은 코드 구조와 업무 의도를 분리해서 봐야 한다고 짚었다.
코드의 호출 관계와 의존성은 문장으로 납작하게 만들기보다 AST와 관계 그래프로 보관하고, 검색할 때 해당 메서드와 가까운 관련 코드를 함께 가져오는 편이 낫다. 업무 의도는 코드만으로 완전히 알기 어려우므로 , , 티켓, 담당자의 지식 같은 별도 자료와 함께 연결해야 한다.
핵심 포인트
- 복잡한 C# 코드에서는 업무 규칙이 여러 서비스, 클래스, , 예외 처리에 흩어져 있다.
- 클래스별 또는 메서드별 문서만 만들면 실행 흐름과 의존성이 빠지기 쉽다.
- 코드 구조는 AST와 관계 그래프로 다루고, 검색할 때 관련 메서드와 가까운 코드를 함께 가져오는 방식이 제안됐다.
- 업무 의도는 코드 안에 항상 드러나지 않으므로 , , 티켓, 사람의 지식과 연결해야 한다.
- 용 RAG에서는 더 긴 문서보다 정확한 문맥 선택이 토큰과 비용을 줄이는 데 더 중요하다.