본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 21. 22:30

Python은 나의 첫 번째 언어였습니다. 수년간 잊고 지냈지만, 다시 사용하여 코드 인텔리전스 엔진을 구축했습니다.

요약

개발자가 대규모 코드베이스를 이해하기 위해 Python으로 구축한 로컬 우선 코드 인텔리전스 엔진 'N3MO'를 소개합니다. tree-sitter와 Postgres를 활용해 코드의 심볼과 관계를 파싱하고 콜 그래프를 구축합니다.

핵심 포인트

  • N3MO는 코드베이스 파싱 및 콜 그래프 구축을 지원하는 엔진입니다.
  • tree-sitter, psycopg2, networkx 등 Python 생태계를 적극 활용했습니다.
  • SQL 최적화를 통해 인덱싱 시간을 23분에서 2.5분으로 단축했습니다.
  • MCP 서버 및 GitHub App 기능을 지원하여 확장성을 갖췄습니다.

Python은 제가 처음으로 코드를 작성했던 언어였습니다.

저는 초보자였습니다. 몇몇 스크립트를 실행했을 뿐, 의미 있는 무언가를 만들어본 적은 없었습니다. 그 후 대학에 진학하면서 Java와 C++로 넘어갔고, Python은 잊혀졌습니다.

몇 년 후, 모두가 ML (머신러닝)과 AI (인공지능)에 대해 이야기하고 있습니다. Python은 지금 이 시대의 언어입니다. 저는 ML에 깊은 관심이 있지는 않지만, 다시 Python을 집어 들었습니다.

모든 것이 시작된 순간

저는 GSoC (Google Summer of Code)에 참여하려고 노력 중이었습니다. 마음에 드는 프로젝트를 발견했고, 리포지토리 (repo)를 클론 (clone)한 뒤 코드베이스 (codebase)를 열었습니다.

수백 개의 파일. 수천 개의 함수. 맥락 (context)은 전혀 없었습니다.

무엇이 무엇을 호출하는지, 무엇이 무엇과 연결되어 있는지, 무엇을 안전하게 수정할 수 있는지 알 수 없었습니다. 저는 탭을 닫아버렸습니다.

타인의 코드 속에서 길을 잃는 듯한 그 기분 — 그것이 제가 놓아줄 수 없는 문제가 되었습니다.

내가 만든 것

N3MO는 로컬 우선 (local-first) 코드 인텔리전스 엔진 (code intelligence engine)입니다. 코드베이스를 파싱 (parse)하고, 심볼 (symbol)과 관계를 포함한 콜 그래프 (call graph)를 구축하며, 모든 것을 Postgres에 저장하고 쿼리 (query)할 수 있게 해줍니다.

전부 Python으로 작성되었습니다. 파싱 (parsing)을 위해 tree-sitter를, Postgres를 위해 psycopg2를, 그래프 레이어 (graph layer)를 위해 networkx를 사용하여 구축했습니다.

중요한 수치들

  • Django 인덱싱: 3,021개 파일, 43k+ 심볼, 181k+ 콜 엣지 (call edges)
  • 콜드 인덱싱 (Cold index) 시간: SQL 최적화 (SPLIT_PART 재작성) 이후 약 23분에서 약 2.5분으로 단축
  • PyPI 패키지, MCP 서버 (Cursor/Claude Desktop), 웹훅 (webhook) 재인덱싱 기능이 있는 GitHub App으로 사용 가능
pip install n3mo

내가 배운 것

Python은 올바른 선택이었습니다. ML 때문이 아니라, 생태계 (ecosystem) — tree-sitter 바인딩 (bindings), Postgres 드라이버 (drivers), 그래프 라이브러리 (graph libraries) — 가 모두 갖춰져 있었기 때문입니다.

제가 마주치는 모든 문제에는 그에 맞는 라이브러리가 있었습니다. 제가 필요로 하는 모든 최적화 과정에서 Python은 걸림돌이 되지 않았습니다.

저에게 첫 print("hello world")를 선사했던 언어가, 결국 제가 실질적인 무언가를 출시할 수 있게 해준 언어가 되었습니다.

Repo + docs: github.com/RajX-dev/N3MO

태그: python opensource programming beginners showdev

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0