본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 30. 16:41

Aider — 터미널에서 AI와 함께하는 진지한 페어 프로그래밍 (Pair Programming)

요약

Aider는 터미널 기반의 AI 페어 프로그래밍 도구로, 사용자와 대화하며 코드를 작성하고 수정합니다. 특히 작업 단위별로 원자적 커밋(Atomic Commit)을 자동으로 생성하여 Git 관리의 효율성을 극대화합니다.

핵심 포인트

  • 터미널 환경에서 대화형으로 코드 수정 및 기능 구현 가능
  • 레포 맵(Repo Map)을 활용하여 프로젝트 전체 맥락 파악
  • 원자적 커밋(Atomic Commit) 자동화로 깨끗한 Git 히스토리 유지
  • 커밋 전 테스트 실행을 통해 코드 안정성 확보

Aider — 터미널에서 AI와 함께하는 진지한 페어 프로그래밍 (Pair Programming)

저는 두 가지를 믿습니다:

  1. 페어 프로그래밍 (Pair Programming) — 누군가 옆에 앉아 질문하고, 의견을 제시하고, 아이디어를 제안하는 것 — 이는 혼자 조용히 코드를 작성하는 것보다 더 나은 코드를 만들어냅니다.
  2. 원자적 커밋 (Atomic Commit) — 각 커밋은 하나의 작업만 수행하고 그 자체로 완결되어야 합니다 — git log를 읽었을 때 이해할 수 있어야 하며, 데이터베이스 스키마부터 CSS까지 모든 것을 수정하는 500줄짜리 긴 커밋이어서는 안 됩니다.

문제는 항상 옆에 앉아 페어 프로그래밍을 할 사람을 찾기가 쉽지 않다는 것이며, 매번 깨끗한 원자적 커밋 (Atomic Commit)을 유지하려면 높은 집중력이 필요하다는 점입니다.

Aider는 이 두 가지 문제를 한 번에 해결해 주는 도구입니다.

Aider란 무엇인가

Aider는 터미널 (Terminal)에서 작동하는 AI 페어 프로그래밍 (Pair Programming) 도구입니다 — 터미널을 열고, 프로젝트로 cd 한 뒤, aider를 입력하면 됩니다.

일어나는 일:

$ aider
──────────────────────────────────────────────────
Aider v0.80.0
...

그다음 당신은... 옆에 앉아 있는 사람과 대화하듯 대화하면 됩니다

"help me add rate limiting to the API — per-user, 100 requests per minute, using Redis"

Aider는 다음과 같이 수행합니다:

  1. 관련 코드를 읽습니다 (어떤 파일이 무엇을 하는지 보여주는 레포 맵 (repo map)을 가지고 있습니다)
  2. 해결 방법을 제안합니다 — "I'll add middleware in api/middleware/ and a Redis client in pkg/redis/"
  3. 코드를 작성합니다 — 모든 줄의 차이점(diff)을 확인할 수 있습니다.
  4. 커밋(Commit)을 대신 해줍니다 — 원자적(atomic)이고 설명적인 커밋 메시지(descriptive commit message)와 함께 말이죠.

제가 가장 좋아하는 부분은 바로 이것입니다: 자동으로 커밋을 해준다는 점입니다

원자적 커밋 (Atomic Commit) — 사후 고려 사항이 아닌 자동화된 과정

Aider와 페어 프로그래밍을 잠시 진행한 후의 git log를 살펴보세요:

$ git log --oneline
a3f2c1 Add rate limiting middleware with Redis backend
8b7d4e Refactor auth middleware to use context-based user extraction
...

모든 커밋은:

  • 한 가지 작업만 수행합니다 — 미들웨어 추가 → 커밋 / 리팩터링 (refactor) → 커밋 / 레포 추가 → 커밋
  • 메시지가 이해하기 쉽습니다 — "fix stuff"나 "update" 같은 식이 아닙니다.
  • 각 커밋은 테스트를 통과합니다 — Aider는 커밋하기 전에 테스트를 실행합니다 (테스트가 실패하면 통과할 때까지 수정합니다).

혼자 작업할 때와 비교해 보세요:

- ❌ "새 API 작성" → 15개 파일 수정 → "implement new API"라는 단일 커밋
+ ✅ Aider와 기능별로 대화 → 15개의 작은 커밋들 → 각 커밋을 30초 안에 이해 가능

실제 작동 예시

간단한 Go API가 있고, "이메일 접두사(prefix)로 사용자 검색" 기능을 추가하고 싶다고 가정해 봅시다.

1. 세션 시작 — 요구사항 설명

> I need a search endpoint that finds users by email prefix.
  GET /users/search?q=jo should return users whose email starts with "jo"
  Use existing UserRepo, add the query method there

Aider의 응답:

I'll add:
1. A `SearchByEmailPrefix` method to `UserRepo` in `internal/repo/user.go`
2. A search handler in `internal/handler/user.go`
...

2. Aider의 파일 수정 — 즉시 확인 가능한 diff

// internal/repo/user.go
+func (r *UserRepo) SearchByEmailPrefix(ctx context.Context, prefix string) ([]User, error) {
+    rows, err := r.db.QueryContext(ctx,
...

diff를 확인하고 → y (yes)를 누르면 → Aider가 커밋(commit)을 수행하고 → 다음 단계로 진행합니다.

3. 수정하며 대화하기 — 실제 페어 프로그래밍처럼

> add input validation — prefix must be at least 2 chars

Aider가 유효성 검사(validation)를 추가하고 → 커밋합니다.

> wait, the SQL query should use parameterized LIKE properly
> it's $1 || '%' in PostgreSQL, not prefix+"%"

Aider가 쿼리(query)를 수정하고 → 커밋합니다.

> now add a test file for the search handler using httptest

Aider가 테스트 파일을 생성하고 → 테스트를 실행하고 → 테스트를 통과하면 → 커밋합니다.

4개의 커밋 — 각각 하나의 작업만 수행 — git log가 깔끔합니다.

Aider가 특별한 이유 — 단순한 AI 챗봇이 아닙니다

1. Repo Map — 코드베이스(codebase)를 "알고" 있습니다

Aider는 repo map을 생성합니다. 각 파일이 무엇을 정의하는지, 누구에 의해 임포트(import)되는지, 어떤 심볼(symbol)을 사용하는지 인덱싱하여, 사용자가 직접 말해주지 않아도 이 기능을 수정하기 위해 어떤 파일을 읽어야 하는지 파악합니다.

AI에게 읽히기 위해 코드를 복사해서 붙여넣을 필요가 없습니다. Aider는 스스로 user.go, handler.go, main.go를 확인해야 한다는 것을 알고 있습니다.

2. Edit Formats — 코드를 생성해서 복사하게 하는 것이 아니라 직접 수정합니다

Aider는 코드를 출력하여 사용자가 복사-붙여넣기 하게 만들지 않습니다. 대신 edit format을 사용합니다. 이는 "이 블록을 찾아서, 이 블록으로 교체하라"고 지시하는 언어로, sed와 유사하지만 훨씬 더 똑똑합니다.

장점: 파일 전체를 새로 생성하는 것보다 빠르고 정확합니다. 수정이 필요한 부분만 정확히 수정합니다.

3. Model-Agnostic — 오늘은 Claude를, 내일은 DeepSeek를 사용할 수 있습니다

$ aider --model deepseek/deepseek-chat
$ aider --model openai/gpt-4o
$ aider --model anthropic/claude-sonnet-4-20250514

쉬운 작업은 DeepSeek (저렴) — 어려운 작업은 Claude Opus (강력함) — 도구를 바꿀 필요가 없습니다.

4. Voice Coding — 타이핑 대신 말하기

$ aider --voice

AI와 전화 통화하듯 대화하세요 — "데이터베이스 연결 실패에 대한 에러 핸들링(error handling)을 추가해줘" — 그러면 Aider가 코드를 작성합니다.

Aider vs Copilot vs Cursor vs Antigravity

AiderCopilotCursorAntigravity
Philosophy페어 프로그래밍 (Pair programming) + 원자적 커밋 (atomic commit)자동 완성 (Autocomplete) + 채팅 (chat)AI-first IDE에이전트형 플랫폼 (Agentic platform)
...

Aider는 직접적인 경쟁 상대가 아닙니다 — 그것은 다음과 같은 사람들을 위한 또 다른 종류의 도구입니다:

  • IDE보다 터미널 (terminal)이 더 익숙한 사람
  • 원자적 커밋 (atomic commit)의 가치를 믿는 사람
  • 진지하게 페어 프로그래밍을 하고 싶은 사람 — 대화하고, 수정하고, 커밋하는 과정을 동시에 진행
  • 작업에 따라 직접 모델을 선택하고 싶은 사람

5분 만에 시작하기

# 설치
pip install aider-chat

...

Pro tip: 일상적인 작업에는 DeepSeek V4 Flash ($0.14/M input)를 사용하고 — 복잡한 작업 시에는 Claude Sonnet ($3/M)으로 전환하세요 — Aider는 /model deepseek/deepseek-chat 명령어를 통해 세션 도중에 모델을 바로 변경할 수 있습니다.

솔직한 단점

  • 터미널 전용 (Terminal-only) — GUI가 없습니다 (단, 실험적인 --browser 모드가 있음)
  • Git 필수 — Git을 사용하지 않는 프로젝트에서는 Aider를 사용할 수 없습니다 (하지만 이는 장점입니다 — 우리는 당연히 Git을 사용해야 하니까요)
  • 초기 학습 곡선 — AI가 어떻게 생각하는지 편집 포맷 (edit format)을 이해해야 하지만, 1~2번의 세션을 거치면 익숙해집니다.

요약

Aider는 페어 프로그래밍 (pair programming) 철학과 **원자적 커밋 (atomic commit)**을 LLM과 결합했을 때 나타나는 결과물입니다. 그 결과, 터미널에서 당신과 함께 앉아 코드를 작성하고, 차이점(diff)을 보여주며, 커밋까지 대신 해주는 AI를 만나게 됩니다 — 마치 git commit을 기가 막히게 잘하는 시니어 개발자가 옆에 앉아 있는 것처럼 말이죠.

그리고 맞습니다 — 저는 당신이 이것을 꼭 사용해 보길 권장합니다.

pip install aider-chat && cd project && aider

📚 Source: Aider — AI pair programming in your terminal

AI 자동 생성 콘텐츠

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

원문 바로가기
0

댓글

0