Aider를 매번 긴 커맨드라인 옵션과 함께 실행하는 건 비효율적이다. 프로젝트 루트에 .aider.conf.yml 파일 하나만 만들어두면, aider라고만 쳐도 원하는 설정이 자동 적용된다.
기본 골격
model: ollama_chat/qwen3-coder:30b
chat-language: korean
auto-test: true
test-cmd: python3 -m pytest
auto-lint: true
lint-cmd: python3 -m flake8
yes-always: true
analytics: false
각 항목의 의미:
model: 사용할 모델.ollama_chat/접두어를 붙여야 Ollama의 채팅 API 경로로 붙는다.chat-language: korean: Aider가 채팅 응답을 한국어로 하도록 지시한다. 실제로 Qwen 계열은 다국어 모델(Qwen3 기준 119개 언어)이라 한국어 응답 자체는 자연스럽게 나온다. 다만 코드 안의 변수명·함수명은 한국어로 지시해도 관례상 영어로 짓는 경향이 있다.auto-test/test-cmd: 코드 수정 후 자동으로 테스트를 돌린다.auto-lint/lint-cmd: 코드 수정 후 자동으로 린트 검사·수정을 시도한다.yes-always: 무인 실행의 핵심 옵션이다. 이게 없으면 gitignore 추가, 버전 업그레이드 안내, 린트 수정 확인 같은 모든 프롬프트에서 매번 사람이 y/n을 눌러줘야 한다.analytics: false: Aider의 사용량 분석 전송을 끈다.
존재하지 않는 옵션을 썼다가 걸린 실수
처음에는 commit-language: korean도 같이 넣었다가 이런 에러를 만났다.
aider: error: unrecognized arguments: --commit-language=korean
Aider 0.82.3 기준으로 --commit-language라는 옵션 자체가 존재하지 않는다. 커밋 메시지 언어까지 따로 지정하고 싶었지만, 실제로 존재하는 건 --chat-language뿐이었다. 비슷하게 --no-architect도 존재하지 않는 옵션이다 — architect 모드(계획과 실제 편집을 분리해서 2단계로 처리하는 모드)를 끄려면 플래그를 따로 주는 게 아니라, --architect 자체를 안 쓰면 기본값(단일 패스 모드)으로 동작한다.
옵션 이름을 추측하지 말고, aider --help로 실제 지원되는 플래그 목록을 먼저 확인하는 습관을 들이는 게 낫다는 걸 이번에 배웠다.
최종적으로는 더 단순화했다
이 프로젝트에서는 “로컬 LLM은 초안만 만들고 최종 검증은 Claude Code가 한다"는 역할 분담을 정했기 때문에, architect 모드나 editor-model 분리, auto-lint까지 로컬 단계에서 완벽하게 처리할 필요가 없다고 판단했다. 최종적으로는 이렇게 정리했다.
model: ollama_chat/deepseek-coder-v2:16b
chat-language: korean
auto-test: true
test-cmd: python3 -m pytest
auto-lint: false
yes-always: true
analytics: false
auto-lint를 끈 이유는 단순하다 — 어차피 사람(또는 Claude Code)이 검토할 거라면, 로컬 모델이 린트 재시도 루프에 시간을 쏟는 것보다 빨리 초안을 넘기는 게 전체 파이프라인 관점에서 더 효율적이기 때문이다.


💬 댓글