# 그냥 LLM이 코드베이스 전체를 이해해주면 안 될까: 번들링을 통한 RAG 시도

> Clean Markdown view of GeekNews topic #20309. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=20309](https://news.hada.io/topic?id=20309)
- GeekNews Markdown: [https://news.hada.io/topic/20309.md](https://news.hada.io/topic/20309.md)
- Type: news
- Author: [letaem77a](https://news.hada.io/@letaem77a)
- Published: 2025-04-14T01:44:39+09:00
- Updated: 2025-04-14T01:44:39+09:00
- Original source: [gist.github.com/atjsh](https://gist.github.com/atjsh/89f3627f3abaef86af68c7ee2cd50e7c)
- Points: 19
- Comments: 8

## Summary

TypeScript 코드베이스를 **번들링**하여 하나의 JavaScript 파일로 압축한 후, 이를 LLM에 전달하여 코드베이스 관련 질문에 대한 정확도를 평가했습니다. 그러나 **정보 손실** 문제가 발생할 수 있으며, 이는 **Semantic search**를 통해 보완할 수 있을 것으로 예상합니다. 이러한 방법을 통해 LLM이 코드베이스 전체를 이해하도록 하는 가능성을 탐색했습니다.

## Topic Body

> "이 글에서는 많은 파일을 내포하는 TypeScript 코드베이스를 번들링(bundling)을 통해 1개의 JavaScript 파일로 압축한 후 LLM에게 전달하였을 때, LLM이 코드베이스와 관련된 질문에 얼마나 정확하게 답변할 수 있는지 확인할 것이다."  
  
- NestJS 기반 웹 서버 코드베이스 1개 준비  
- esbuild로 코드 압축(번들링)  
- 압축된 코드는 prompt에 끼워넣어짐  
- ChatGPT o3-mini에 프롬프트 전달  
- 코드베이스와 관련된 질문에 얼마나 정확하게 대답하는지 확인  
  
1. Swagger 생성 테스트: 대부분의 시도에서 21개 엔드포인트 중 19개 이상의 엔드포인트를 정확하게 문서화하는 데 성공  
2. API 엔드포인트에 대한 설명 요청 테스트: 비개발자/개발자용 매뉴얼을 성공적으로 생성  
- 한계점이 존재  
- 결론  
> "LLM에 대해 코드베이스 전체를 RAG하기 위해, 코드베이스 전체를 한 파일로 압축하여 LLM에게 전달하는 테스트를 설계했다.  
>  
> 현존하는 번들링 툴을 그대로 사용하여 코드베이스를 압축하였을 때, LLM은 코드베이스 전체에 대한 API 문서화를 진행하거나, 특정 API에 대한 자세한 매뉴얼을 작성할 수 있었다.  
>  
> 코드베이스 압축을 진행하며 발생하는 정보 손실에 대해서는 원본 파일에 대한 추가적인 Semantic search를 통해 보완할 수 있을 것으로 전망한다."

## Comments



### Comment 37169

- Author: mendong
- Created: 2025-04-14T16:50:54+09:00
- Points: 1

번들링한 파일을 프롬프트에 넣거나 어플리케이션에 첨부해서 LLM에 쿼리하는 것이 RAG라고 할 수 있나요? 어느 부분이 Retrival에 해당하는지 궁금합니다

### Comment 37173

- Author: labeldock
- Created: 2025-04-14T18:29:11+09:00
- Points: 1
- Parent comment: 37169
- Depth: 1

저도 비슷한 생각

### Comment 37174

- Author: bejunth
- Created: 2025-04-14T18:35:50+09:00
- Points: 1
- Parent comment: 37173
- Depth: 2

번들링한 파일을 토대로 llm이 retrival해서 원래 코드를 가져오는 것 아닌가요?

### Comment 37160

- Author: winterjung
- Created: 2025-04-14T15:10:03+09:00
- Points: 1

흥미롭네요. minify된 js로도 어느정도 잘 인지하는군요. https://news.hada.io/topic?id=19552 나 https://news.hada.io/topic?id=19540 에서 소개된 도구 등을 활용해 디렉토리 구조를 추가 맥락으로 제공해줘도 좋겠다 싶네요.

### Comment 37157

- Author: apkas
- Created: 2025-04-14T14:43:45+09:00
- Points: 1

요즘 llm이랑 코딩을 워낙 많이 하다보니 항상 효율적인 정보 전달이 고민인데, 흥미로운 실험 감사합니다.  
  
해외에서 codebase syntax를 graph로 추출해서 쿼리했던 시도도 있었는데,  
번들링이 좀 더 일반적으로 적용하기 쉬운 방법일 것 같네요. (언어가 번들링을 지원한다면)  
https://x.com/daniel_mac8/status/1908332949251948808  
  
근데 요즘 gemini 성능이 너무 좋아서 o3랑 비교해보시면 더욱 흥미로울 것 같아요.

### Comment 37152

- Author: unqocn
- Created: 2025-04-14T14:07:41+09:00
- Points: 1

흥미롭게 읽었습니다. 번들링 된 소스코드에서 비즈니스 로직을 이정도까지 추출할 수 있다니... SPA로 작성된 웹앱의 리버스 엔지니어링 비용도 획기적으로 줄어들 것 같습니다.

### Comment 37108

- Author: xguru
- Created: 2025-04-14T09:18:20+09:00
- Points: 2

엇 읽어보려고 하니 블로그가 현재 500 에러가 나네요

### Comment 37112

- Author: letaem77a
- Created: 2025-04-14T09:34:14+09:00
- Points: 1
- Parent comment: 37108
- Depth: 1

제 블로그가 불안정한가봐요. 접속이 안 되시는 분들은 [여기 gist.github.com](https://gist.github.com/atjsh/89f3627f3abaef86af68c7ee2cd50e7c)에서 내용을 읽어보실 수 있습니다.
