ChatGPT가 실제로 이해할 수 있도록 내 코드베이스를 번들링하는 방법
Source: Dev.to
Problem
LLM 채팅 앱은 질문에 답하는 데는 뛰어나지만, 실제 코드베이스에 적용하면 한계가 있습니다.
프로젝트가 어느 정도 규모를 넘어가면 컨텍스트가 병목이 됩니다: 파일이 너무 많고, 잡음이 많으며, 구조가 부족합니다.
일반적인 LLM 채팅 앱은 다음과 같은 상황에서 가장 잘 작동합니다:
- 컨텍스트가 선형적
- 파일이 크기가 아니라 의미에 따라 그룹화
- 참조가 정확함 (파일 + 라인)
하지만 실제 저장소는:
- 계층적
- 잡음이 많음
- 모델에 필요 없는 것들로 가득함
그 결과 답변이 모호하거나 환각(Hallucination)될 수 있습니다.
Solution: srcpack
전체 레포를 그대로 전달하는 대신, LLM에 최적화된 스냅샷을 생성합니다:
- 코드를 도메인별로 번들링 (예:
web,api,docs등) - 각 번들은 파일 경로 + 라인 번호와 함께 인덱싱
.gitignore를 기본적으로 존중- 시작하기 위해 별도 설정이 필요 없음
출력물은 순수 텍스트 파일이며, ChatGPT, Gemini, Claude 등에 쉽게 업로드하거나 첨부할 수 있습니다.
이 도구의 이름은 srcpack 입니다.
Workflows where srcpack shines
- 대형 레포 탐색 – “인증 로직은 실제로 어디에 있나요?” 혹은 “청구와 관련된 코드는 어디인가요?” 같은 질문에 활용
- 컨텍스트 제한 회피 – 파일을 일일이 복사 붙여넣는 대신, 집중된 번들을 첨부
- 비기술 팀원과 공유 – LLM 친화적인 스냅샷을 Google Drive에 업로드하고 공유
PM이나 디자이너가 흔히 묻는 질문들:
- “이번 주에 무엇이 배포됐나요?”
- “아직 진행 중인 작업은 무엇인가요?”
- “어떤 부분이 위험한가요?”
srcpack은 코드베이스에 대한 가벼운 읽기 전용 AI 인터페이스 역할을 합니다.
Usage
npx srcpack # or bunx srcpack
기본적으로 별도 설정이 필요 없습니다.
Documentation & Source
- Docs:
- GitHub:
Closing Thought
LLM + 코드베이스 상호작용에 대한 최종 해답이라고 보지는 않지만, 일상 업무에서 매우 실용적인 개선을 제공했습니다. 특히 빠르게 변화하는 프로젝트에서 대형 레포 컨텍스트를 어떻게 다루고 있는지 다른 사람들의 이야기가 궁금합니다.