logo hsb.horse
← 블로그 목록으로 돌아가기

블로그

generate-project-summary.py를 Bun + TypeScript로 다시 구현한 이야기

Python으로 작성된 프로젝트 구조 요약 스크립트를 Bun + TypeScript로 다시 구현했다. 저장소 전체를 LLM에 읽히기 위한 실행 파일 설계와 구현을 정리한다.

게시일:

프로젝트 구조와 파일 내용을 요약하는 Python 스크립트를 Bun + TypeScript로 다시 구현했다.

원본 참고 자료

계기와 배경

  • Python이 익숙하지 않다
  • 다른 사람이 다른 언어로 작성한 것을 JS/TS로 다시 구현하는 연습을 해 보고 싶었다
  • JS, TS는 어느 정도 익숙하다
  • 저장소 내용을 LLM용 단일 파일로 묶는 CLI가 필요했다
  • 플랫폼에 상관없이 실행할 수 있는 포터블 실행 파일로 만들고 싶었다

소스 코드

mktbsh/generate-project-summary.js: Inspired by https://github.com/Olemi-llm-apprentice/generate-project-summary

기술 구성

개발 언어TypeScript
패키지 관리Bun
JS 런타임Bun
Linter/FormatterBiome
에디터VS Code

막힌 부분 / 미해결 사항

Bun에 기본 포함된 Glob API로 원하는 동작을 구현하려다 애를 먹었고, 결국 minimatch로 돌아갔다.

구현 포인트

  1. Single File Executable: Bun의 --compile 옵션으로 실행 파일을 생성
  2. Glob 처리: minimatch로 파일 필터링
  3. LLM용 출력: 프로젝트 구조와 파일 내용을 하나의 markdown 파일로 집약

정리

Python 스크립트를 다시 구현하는 과정에서 TypeScript와 Bun에 대한 이해를 더 깊게 만들 수 있었다.

실행 파일 형태로 배포할 수 있어서 Node.js를 따로 설치하지 않아도 되고, 플랫폼 간 사용성도 좋아졌다.

LLM에게 저장소 전체를 읽히고 싶을 때 이 도구를 쓰면 컨텍스트를 한 번에 만들 수 있다.