핵심 기술 및 작동 원리

에이전틱 코딩 어시스턴트가 단순히 질문에 답하는 챗봇과 차별화되는 지점은 “개발 환경과 코드베이스를 얼마나 깊이 있게 이해하고 조작할 수 있는가”에 있습니다. 이를 가능하게 하는 4가지 핵심 기술적 축을 살펴봅니다.


1. Repository Indexing (저장소 인덱싱)

수만 줄 이상의 코드베이스에서 에이전트가 헤매지 않으려면 효율적인 ‘지도’가 필요합니다. 현대적인 도구들은 단순 검색을 넘어 구조적/의미론적 인덱싱을 결합합니다.

  • AST (Abstract Syntax Tree) 분석: tree-sitter와 같은 라이브러리를 사용하여 코드를 구문 분석합니다. 이를 통해 함수 정의, 클래스 계층, 변수 참조 관계를 정확히 파악하며 “어떤 함수가 어디서 호출되는가”를 실시간으로 추적합니다.
  • Vector Indexing (Semantic Search): 코드 조각을 고차원 벡터(Embeddings)로 변환하여 벡터 데이터베이스에 저장합니다. 사용자가 “로그인 관련 로직 어디 있지?”라고 물으면, 정확한 키워드가 없어도 ‘의미상’ 관련된 코드를 찾아낼 수 있습니다.
  • Hybrid Search: AST 기반의 구조적 이해와 벡터 기반의 의미론적 검색을 결합하여, 프로젝트 전체를 아우르는 정교한 검색 엔진을 구축합니다.

2. Context Fetching (컨텍스트 수집)

LLM의 컨텍스트 윈도우(Context Window)는 유한하며, 모든 코드를 한꺼번에 넣을 수 없습니다. 따라서 “지금 이 작업을 수행하는 데 가장 중요한 정보만 골라내는 능력”이 핵심입니다.

  • Local Context: 현재 열려 있는 파일, 최근 수정한 부분, 커서가 위치한 함수 등을 최우선으로 고려합니다.
  • Dependency Tracking: 특정 함수를 수정할 때 그 함수가 의존하는 라이브러리나 상속받은 부모 클래스의 정보를 자동으로 가져옵니다.
  • Heuristics & Reranking: 검색된 수많은 코드 후보 중 현재 작업과 가장 연관성이 높은 코드를 우선순위에 따라 재배열(Reranking)하여 프롬프트에 주입합니다.

3. Model Context Protocol (MCP)

Anthropic이 발표한 MCP는 에이전트의 능력을 비약적으로 확장시킨 개방형 표준입니다.

  • Tooling Standardization: 과거에는 에이전트가 GitHub, Slack, DB 등과 연동하려면 각각 커스텀 코드를 짜야 했습니다. MCP는 이를 표준화하여, 에이전트가 다양한 ‘MCP Server’에 접속해 파일을 읽고, 터미널을 실행하며, 브라우저를 제어할 수 있게 합니다.
  • Real-world Interaction: MCP를 통해 에이전트는 단순 텍스트 생성을 넘어 “데이터베이스에서 테이블 구조를 읽어오고, API 명세서를 브라우저에서 확인한 뒤, 로컬 터미널에서 테스트를 실행”하는 실제 작업을 수행합니다.

4. Agentic Loop (에이전틱 루프)

에이전트는 일회성 응답이 아닌, 목표 달성 시까지 반복적으로 사고하고 행동합니다.

  1. Plan (계획): 사용자의 요청을 분석하고 수행할 하위 작업(Sub-tasks) 리스트를 만듭니다.
  2. Act (실행): 실제로 파일을 생성하거나 코드를 수정하고, 터미널 명령어를 실행합니다.
  3. Observe (관찰): 실행 결과(에러 메시지, 테스트 결과 등)를 확인합니다.
  4. Reflect & Self-Correct (반성 및 수정): 결과가 예상과 다르면 왜 실패했는지 분석하고 계획을 수정하여 다시 시도합니다.

기술적 한계와 도전 과제

  • Context Window vs. Accuracy: 컨텍스트가 너무 길어지면 모델의 주의력이 분산되고 비용이 상승합니다.
  • Hallucination in Code: 존재하지 않는 라이브러리 함수를 호출하거나, 복잡한 의존성 관계에서 논리적 오류를 범할 수 있습니다.
  • Compute Costs: 에이전틱 루프를 한 번 돌릴 때마다 수많은 API 호출이 발생하므로, 효율적인 비용 관리가 필수적입니다.

This site uses Just the Docs, a documentation theme for Jekyll.