본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 05. 28. 17:37

Aider: 터미널을 위한 무료 오픈 소스 AI 코딩 에이전트

요약

Aider는 터미널 환경에 최적화된 무료 오픈 소스 AI 코딩 에이전트입니다. Git 저장소와 연동되어 대화만으로 코드 편집, 테스트 실행, 자동 커밋을 수행하며 터미널 중심의 워크플로우를 지원합니다.

핵심 포인트

  • 터미널 우선 설계로 SSH, tmux, vim 환경과 완벽 호환
  • 사용자가 원하는 LLM을 직접 지정하여 사용 가능
  • 코드 변경 사항을 자동으로 커밋하는 Git 통합 기능
  • 실제적이고 재현 가능한 Aider Polyglot 벤치마크 제공

Aider란 무엇인가?

Aider는 터미널에서 완전히 실행되는 무료 오픈 소스 (Open-source) AI 페어 프로그래머 (Pair programmer)입니다. Git 저장소 내부에서 실행하고, 원하는 LLM (Large Language Model)을 지정하기만 하면 됩니다. 그 이후부터 당신이 변경하는 모든 코드 라인은 대화를 통해 이루어집니다. 당신이 원하는 것을 평이한 영어로 설명하면, Aider가 파일을 편집하고, 요청 시 테스트를 실행하며, 각 변경 사항을 적절한 메시지와 함께 자동으로 커밋 (Auto-commit)합니다. 이 모든 과정이 셸 (Shell)을 떠나지 않고 이루어집니다.

Cline, Cursor, Windsurf와 같은 에디터 기반 에이전트들이 패널과 버튼으로 경험을 감싸는 반면, Aider는 모든 것을 텍스트로 유지합니다. 하루 동안 직접 사용해 보기 전까지는 이것이 원시적으로 들릴 수도 있습니다. 터미널 우선 (Terminal-first) 설계 덕분에 Aider는 tmux, 원격 서버의 SSH 세션, vim/emacs, 그리고 시니어 엔지니어들이 포기하지 않는 멀티 윈도우 워크플로우 (Multi-window workflow)와 잘 어우러집니다. 설치할 확장 프로그램도, 에디터 종속성도, IDE의 특이한 동작도 없습니다. 오직 단일 Python 패키지와 당신의 저장소뿐입니다.

Aider는 2023년부터 Paul Gauthier와 GitHub의 건실한 기여자 기반(Apache 2.0 라이선스, 수만 개의 스타)을 통해 조용히 유지 관리되어 왔습니다. Aider는 실제적이고 재현 가능한 벤치마크(Benchmark)인 'Aider Polyglot'을 발표하며, 주요 모델이 출시될 때마다 이를 새로 작성하는 몇 안 되는 AI 코딩 도구 중 하나입니다. 이것 하나만으로도 충분히 사용할 가치가 있으며, 그 비용은 0원입니다.

Aider가 Cline, Cursor, Copilot과 다른 이유

대중적인 AI 코딩 도구들은 모두 파일을 읽고 편집을 제안하는 LLM이라는 동일한 중추를 기반으로 하지만, 세 가지 큰 측면에서 차이가 있습니다: 어디에 존재하는가 (Where they live), 어떻게 편집하는가 (How they edit), 그리고 **Git을 어떻게 생각하는가 (How they think about Git)**입니다. 이 세 가지 모두에 대한 Aider의 선택은 독특합니다.

기능AiderClineCursorGitHub Copilot
가격무료 (BYOK)무료 (BYOK)월 $20 Pro월 $10 Individual
...

핵심 요약: 만약 당신이 에디터(Editor) 안에서 주로 작업한다면, Cline과 Cursor가 자연스러운 선택입니다. 하지만 만약 당신이 터미널(Terminal)에서 생활하거나 — 정기적으로 원격 머신에 SSH로 접속하거나, tmux에서 작업하거나, vim/emacs/nano와 함께 페어 프로그래밍을 하거나, GUI가 없는 서버에서 실행한다면 — Aider는 처음부터 그러한 워크플로우(Workflow)를 위해 설계된 이 카테고리의 유일한 도구입니다.

Aider Polyglot 벤치마크: 신뢰할 수 있는 공개 수치

대부분의 AI 코딩 도구들은 마케팅 문구를 게시합니다. 하지만 Aider는 벤치마크(Benchmark)를 게시하며, 이는 합성된(Synthetic) 데이터가 아닙니다. Aider Polyglot 리더보드C++, Go, Java, JavaScript, Python, Rust에 걸쳐 직접 선별한 225개의 코딩 연습 문제를 통해 모든 주요 모델을 테스트합니다. 각 연습 문제에는 숨겨진 단위 테스트(Unit tests)가 포함되어 있으며, 모델이 최대 한 번의 자기 수정(Self-correction) 라운드 내에 편집을 통해 테스트를 통과(Green)시켜야만 합격 처리됩니다.

이 벤치마크가 공개적이고 재현 가능하다는 점 외에 유용한 이유는 다음과 같습니다:

  • 전체 파이프라인(Pipeline)을 테스트합니다 — 문제 설명 읽기, 적절한 파일 찾기, 구문적으로 유효한 편집 생성하기, 디프(Diff) 형식을 올바르게 맞추기, 그리고 컴파일되어 테스트를 통과하는 코드를 작성하기까지의 과정을 모두 포함합니다. 정답을 "알고" 있더라도 디프 형식을 망가뜨린 모델은 실제 상황과 마찬가지로 0점을 받습니다.
  • 다국어(Multi-language)를 지원합니다. 우아한 Python 코드를 작성하지만 Rust에서 무너지는 모델은, Python 전용 리더보드에서는 1위를 할지 몰라도 이 리더보드에서는 1위를 할 수 없습니다.
  • Aider는 주목할 만한 모델이 출시될 때마다 이를 다시 실행합니다. 오늘 당신이 보는 리더보드는 6개월 전에 보았던 것과 다릅니다.

실질적인 용도는 모델을 선택하는 것입니다. 다국어 지원 모델(polyglot)이 존재하기 전에는 "Go 언어 리팩터링(refactoring)에는 GPT-4o가 Claude보다 나은가?"라는 질문이 단순한 느낌(vibe)에 기반한 논쟁이었습니다. 이제는 표를 확인하면 됩니다. 리더보드는 또한 편집 형식 통과율 (edit-format pass rate) (모델이 구문적으로 적용 가능한 diff를 생성했는가?)과 최종 통과율 (final pass rate) (테스트가 통과(green)되었는가?)을 구분합니다. 첫 번째 점수는 높지만 두 번째 점수가 낮은 모델은 자신 있게 틀리는(confidently wrong) 모델입니다. 그 반대인 경우 — 최종 통과율은 높지만 편집 형식 통과율이 낮은 경우 —는 거의 발생하지 않는데, 편집 내용이 망가져 있다면 테스트를 통과할 수 없기 때문입니다.

Aider와 함께 사용할 무료 모델을 선택하고 있다면, 리더보드로 가서 최신 열(column)을 기준으로 정렬한 뒤, 무료 티어(free tier)를 제공하는 모델 중 순위가 가장 높은 것을 고르십시오. 2026년 현재, 해당 조건에 부합하는 가장 강력한 옵션으로는 DeepSeek의 추론 모델(reasoning models), Google AI Studio의 Gemini 2.5 Pro, 그리고 GroqTogether AI와 같은 무료 제공업체의 Llama 3.3 70B 등이 있습니다.

Aider가 터미널에서 사용할 가치가 있는 5가지 기능

1. 레포-맵 (Repo-Map): 토큰 파산 없는 컨텍스트 (Context)

LLM에게 저장소(repo)에 대한 "컨텍스트 (context)"를 제공하는 순진한(naive) 방법은 모든 파일을 프롬프트에 쏟아붓는 것입니다. 이 순진한 방법은 작업당 20달러의 토큰 비용을 발생시키며, 저장소가 수천 줄을 넘어서는 순간 바로 무너집니다. Aider의 레포-맵은 tree-sitter를 사용하여 저장소의 모든 소스 파일을 파싱하고 클래스 이름, 함수 시그니처(function signatures), 최상위 상수(top-level constants), 내보내기된 타입(exported types)과 같은 구조화된 요약을 추출합니다. 그런 다음 식별자 참조(identifier references)에 대한 PageRank 스타일의 그래프를 사용하여 현재 채팅과의 관련성에 따라 해당 심볼(symbols)의 순위를 매깁니다.

그 결과 대부분의 프로젝트에서 수백 줄 정도의 컴팩트한 맵이 생성되며, 이는 LLM이 적절한 파일을 요청할 수 있도록 충분한 스캐폴딩(scaffolding)을 제공합니다. 당신은 아무것도 붙여넣지 않았습니다. Aider가 추상 구문 트리(AST)로부터 이를 알아낸 것입니다.

/map 명령어를 통해 언제든지 현재 맵(map)을 확인할 수 있으며, --map-tokens로 크기 제한을 조정할 수 있습니다. 10만 줄 미만의 저장소(repo)에서는 이 방식이 놀라울 정도로 잘 작동합니다. 이를 초과하는 모노레포(monorepo)의 경우, .aiderignore(.gitignore와 동일한 구문)를 함께 사용하여 에이전트의 범위를 단일 패키지로 제한하십시오.

2. 다양한 편집 형식: 모델이 가장 잘 수행하는 형식을 선택하세요

대부분의 에이전트는 하나의 편집 형식(edit format)을 사용합니다. 반면 Aider는 네 가지 형식을 지원하는데, 이는 모델마다 더 안정적으로 수행하는 형식이 다르기 때문입니다:

  • whole — 모델이 파일 전체를 새로 반환합니다. 토큰 비용은 가장 높지만, 실패율은 가장 낮습니다. 작은 파일이나 성능이 낮은 모델에 적합합니다.
  • diff — 모델이 SEARCH/REPLACE 블록을 반환합니다. 토큰 비용은 중간 수준이지만, 모델이 공백(whitespace) 처리를 실수할 경우 취약할 수 있습니다.
  • udiff — 모델이 유니파이드 디프(unified-diff) 덩어리(hunk)를 반환합니다. 압축적이며 숙련된 개발자들이 읽는 방식입니다. 일부 모델은 이를 매우 잘 수행합니다.
  • diff-fenced — 코드 블록(fenced code block) 안에 디프(diff)를 넣는 방식입니다. 마크다운 헤더를 삽입하는 모델들의 예외 케이스를 처리합니다.

Aider는 벤치마크 이력을 바탕으로 모델별로 적절한 형식을 자동으로 선택하지만, --edit-format을 통해 이를 재정의할 수 있습니다. 특이한 모델을 사용 중이고 편집 적용이 계속 실패한다면, 형식을 변경하는 것만으로도 거의 항상 문제가 해결됩니다.

3. 아키텍트 모드(Architect Mode): 두 모델이 각자의 강점에 집중합니다

최첨단 추론 모델(Frontier reasoning models) — DeepSeek R1, OpenAI o-series, Gemini 2.5 Pro thinking 등 — 은 계획(planning) 수립에는 탁월하지만, 깨끗한 편집 형식을 생성하는 데는 약합니다. 반대로 저렴하고 빠른 모델 — Llama 3.3 70B, Gemini 2.0 Flash, GPT-4.1 Mini 등 — 은 그 반대입니다. Aider의 아키텍트 모드를 사용하면 각 역할에 모델을 할당할 수 있습니다:

aider --architect \
  --model openrouter/deepseek/deepseek-r1 \
  --editor-model openrouter/anthropic/claude-3-5-sonnet

아키텍트(architect)는 자연어로 계획을 생성합니다. 에디터(editor)는 해당 계획과 관련 파일들을 가져와 실제 SEARCH/REPLACE 블록을 출력합니다. 이러한 2단계 프롬프팅(two-stage prompting) 방식은 다국어 벤치마크(polyglot benchmark)에서 단일 모델 방식보다 일관되게 우수한 성능을 보이며, 난이도가 높은 언어에서는 종종 10%포인트 이상의 차이를 만들어냅니다.

4. 실제 커밋 메시지를 포함한 자동 커밋 (Auto-Commit With Real Commit Messages)

Aider는 변경 사항이 수락될 때마다 diff(차이점)로부터 생성된 한 줄짜리 메시지와 함께 커밋을 수행합니다. 처음 실행했을 때의 git log를 보면 마치 실제 엔지니어가 하루 종일 저장소(repo)에서 작업한 것처럼 보일 것입니다. 이는 git bisect를 사용하여 AI가 생성한 코드를 처음 사용할 때까지는 단순한 외관상의 문제처럼 들릴 수 있습니다. 하지만 의미론적 메시지(semantic messages)가 담긴 세밀한 커밋은 디버깅의 악몽을 5분 내외의 회귀 테스트(regression hunt)로 바꿔줍니다.

자동 커밋을 원하지 않으시나요? --no-auto-commits 옵션을 전달하면 Aider가 변경 사항을 스테이징(stage)해 두며, 사용자가 직접 검토하고 커밋할 수 있습니다. Git 저장소가 없나요? Aider의 전체 워크플로우는 Git 저장소를 전제로 하므로, 처음 실행 시 git init을 제안할 것입니다.

5. /web: 채팅창에 URL 입력하기

Aider에서 가장 과소평가된 명령어 중 하나입니다. /web https://docs.example.com/api를 입력하면 Aider가 해당 페이지를 스크래핑(scrape)하여 깨끗한 마크다운(Markdown) 형식으로 변환한 뒤, 채팅의 컨텍스트(context)로 추가합니다. 이제 LLM은 학습 데이터로 기억하는 버전이 아니라, 사용 중인 라이브러리의 실제 API 참조 문서를 갖게 됩니다. 이를 통해 별도의 RAG(Retrieval-Augmented Generation) 파이프라인을 구축할 필요 없이, 오래된 지식으로 인한 버그라는 거대한 범주를 제거할 수 있습니다.

Aider 설치 방법

Aider는 Python 패키지입니다. 공식적인 원라이너(one-liner) 설치 프로그램을 사용하면 Python 버전과 의존성 격리(dependency isolation)를 자동으로 처리해 줍니다:

python -m pip install aider-install
aider-install

이 방식은 uv를 사용하여 Aider를 격리된 환경에 설치하고 PATH에 추가합니다. 직접 가상 환경(venv)을 관리하는 것을 선호한다면 기존 방식도 여전히 작동합니다:

pipx install aider-chat
# 또는 venv에서:
pip install aider-chat

설치를 확인하려면:

aider --version

또한 사용하려는 LLM 제공업체의 API 키가 필요합니다. Aider는 환경 변수(environment variables)와 프로젝트 내의 .env 파일에서 키를 읽어옵니다. 가장 일반적인 설정은 다음과 같습니다:

export OPENROUTER_API_KEY=sk-or-v1-...
# 또는
export GEMINI_API_KEY=AIza...
...

이것으로 설치가 끝납니다. Git 저장소로 cd 하여 aider를 실행하고, 타이핑을 시작하세요.

Aider를 무료 LLM API에 연결하기

Aider는 내부적으로 LiteLLM을 사용하므로, 하나의 일관된 --model 플래그로 사실상 거의 모든 제공업체(Provider)를 지원합니다. 2026년 기준 실용적인 4가지 무료 설정 방법은 다음과 같습니다:

옵션 1: Google Gemini 무료 티어 (가장 관대한 방식)

Google AI Studio의 Gemini 무료 티어는 1M 토큰의 컨텍스트 창(Context Window)을 가진 Gemini 2.5 Pro를 제공하며, 매우 관대한 요청 제한(Request Limits)을 제공합니다. 이는 전체 코드베이스를 한 번에 던져 넣기에 충분할 만큼 넉넉합니다. 키를 설정하고 실행하세요:

export GEMINI_API_KEY=AIza...
aider --model gemini/gemini-2.5-pro

대부분의 개인 프로젝트의 경우, Gemini의 무료 티어만으로도 카드 등록 없이 Aider를 무기한으로 실행할 수 있습니다.

옵션 2: OpenRouter 무료 모델

OpenRouter는 수십 개의 제공업체를 하나의 OpenAI 호환 엔드포인트(Endpoint)로 통합하며, 크레딧을 소비하지 않고 호출할 수 있는 :free 모델 계층을 제공합니다.

export OPENROUTER_API_KEY=sk-or-v1-...
aider --model openrouter/deepseek/deepseek-r1:free

속도 제한(Rate Limits)은 Gemini보다 엄격하지만, 다양성 측면에서는 타의 추종을 불허합니다. 다른 무료 티어들이 제한(Throttle)을 걸 때를 대비한 폴백(Fallback) 용도로 키를 보관해 둘 가치가 있습니다.

옵션 3: Ollama (완전 로컬, 진정한 오프라인)

적당히 최신 사양의 노트북을 보유하고 있으며 클라우드 호출을 전혀 원하지 않는다면, Ollama를 통해 자신의 GPU에서 모델을 실행할 수 있습니다.

ollama pull qwen2.5-coder:14b
aider --model ollama_chat/qwen2.5-coder:14b

품질은 프런티어 모델(Frontier Models)보다 낮지만, 보일러플레이트(Boilerplate) 작성, 파일 이름 변경, 소규모 리팩터링(Refactor)에는 14B 규모의 로컬 코더 모델로도 충분합니다. 또한 토큰이 기기 외부로 나가지 않으므로, NDA(비밀유지계약)가 적용되는 코드베이스에 유용합니다.

옵션 4: DeepSeek 직접 연결 (가장 저렴한 프런티어 모델)

DeepSeek의 API는 V3 채팅 모델에서 프런티어 (Frontier) 급에 근접한 품질을 제공하며, R1 모델을 통해 추론 (Reasoning) 품질을 제공합니다. 또한 비혼잡 시간대 할인 가격 정책을 통해 이 카테고리에서 가장 저렴한 유료 옵션이 되는 경우가 많습니다. 이들의 무료 체험 크레딧은 평가를 진행하기에 충분하며, 일상적인 사용 비용은 한 달에 커피 한 잔 값보다 적게 드는 경우가 드뭅니다.

export DEEPSEEK_API_KEY=sk-...
aider --model deepseek/deepseek-chat
# 또는 추론 모델의 경우:
...

혼합 전략: 아키텍트(Architect)는 무료, 에디터(Editor)는 무료

두 모델이 서로 다른 무료 티어 (Free tier)에 있을 때 아키텍트 모드가 빛을 발합니다. 2026년의 일반적인 패턴은 다음과 같습니다:

aider --architect \
  --model gemini/gemini-2.5-pro \
  --editor-model openrouter/meta-llama/llama-3.3-70b-instruct:free

계획 수립을 위한 Gemini의 추론 능력과, 기계적인 편집을 위한 OpenRouter의 무료 Llama를 조합합니다. 총 비용은 0원입니다.

첫 번째 실제 작업: 프롬프트에서 통과된 테스트까지

이를 구체화하기 위해, Python 웹 앱에 기능을 추가하는 대표적인 Aider 세션을 소개합니다. 사용자는 프롬프트(Prompt)를 하나 입력하며, 나머지는 Aider가 모두 수행합니다.

프롬프트: _"FastAPI 앱에 /healthz 엔드포인트를 추가해줘. 환경 변수(env var)에서 빌드 커밋 SHA를 가져와 200 상태 코드를 반환하고, Postgres 핑(Ping)도 수행해야 해. pytest 테스트도 추가해줘."

세션 요약:

$ aider --model gemini/gemini-2.5-pro
Aider v0.64.0
Main model: gemini/gemini-2.5-pro
...

AI 자동 생성 콘텐츠

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

원문 바로가기
0

댓글

0