명령줄도 AI 시대, 터미널 생산성을 가속하는 핵심 도구 6선
컨텐츠 정보
- 조회 419
본문
명령줄 인터페이스(CLI)는 오랫동안 개발자 세계의 기반으로 자리해 왔다. 오래전부터 CLI는 읽고, 평가하고, 출력하는 구조의 REPL(read-evaluate-print-loop)로 정의된 정적인 공간이었다. 그러나 최근에는 현대적인 AI 도구가 이 영역에 변화를 일으키고 있다.
CLI는 프로그램에서 어떤 일이 벌어지고 있는지를 최소한의 정보로 전달하며, 사용자가 지시한 내용을 그대로 수행한다. 불필요한 장식이나 안내가 없는 점은 명령줄 인터페이스의 강점이자 동시에 가장 큰 한계로 꼽혀 왔다. 최근 등장한 새로운 유형의 AI 도구는 이러한 CLI의 본질적인 힘은 유지하면서도, 훨씬 더 사용자 친화적인 인터페이스를 결합하려는 시도를 이어가고 있다.
이들 도구는 REPL을 기존의 읽기·평가·출력 구조가 아닌, 추론과 평가를 중심으로 한 루프로 재구성한다. OS에 구체적인 명령을 내리는 대신, 목표를 제시하면 시스템이 이를 수행하도록 맡기는 방식이다. 단순히 결과를 읽는 데 그치지 않고 AI의 정밀한 분석을 통해 출력 내용을 해석할 수도 있다. 명령줄 환경을 선호해 온 개발자는 물론, 프로그래밍을 하는 모든 이들에게 AI 기반 터미널은 새로운 가능성이 열리는 공간으로 부상하고 있다.
제미나이 CLI
제미나이 CLI(Gemini CLI)는 AI 셸 명령을 실행할 수 있는 매우 강력한 에이전트다. 복잡한 프로젝트 구조를 분석하고 출력 결과를 확인하며, 여러 단계로 구성된 복합적인 목표를 수행할 수 있다. 완벽하다고 보기는 어렵지만 명령줄 환경을 선호하는 개발자라면 충분히 매력을 느낄 만한 도구다.
최근 제미나이 CLI는 프롬프트 내부에서의 상호작용을 지원하는 기능을 추가했다. 에이전트 안에서 vi를 실행하는 식이다. 이 기능을 활용하면 파일을 수정하거나 길고 복잡한 git 명령을 실행하기 위해 AI 환경을 벗어나거나 새 창을 띄울 필요가 없다. 상호작용 중에는 AI가 모든 과정을 지속적으로 인식하지는 않지만, Ctrl+F를 사용해 다시 초점을 돌릴 수 있다. 작업이 끝난 뒤에는 그 결과를 인식하고, vi를 종료한 후 유닛 테스트를 실행하는 등 상황에 맞는 후속 작업을 수행하기도 한다.
깃(Git) 통합 측면에서는 코파일럿이 더 낫다는 이야기도 있지만, 실제 사용해 보면 제미나이 CLI 역시 git 명령을 다루는 데 큰 무리는 없었다.
다른 AI 코딩 어시스턴트와 마찬가지로 제미나이 CLI도 혼란에 빠지거나 같은 과정을 반복하고, 회귀 문제를 만들어내는 경우가 있다. 그럼에도 전반적인 프레이밍 방식과 프롬프트 콘솔의 완성도는 매우 높은 편이다. 전반적으로 안정적이며, 도구로서의 완성도가 견고하다. 다만 에이전트의 프롬프트 환경에서 동작하기 때문에 실제 셸이 아니며, cd /foo/bar처럼 파일 시스템을 직접 이동할 수 없다는 점 등 몇 가지 적응이 필요한 부분도 있다.
깃허브 코파일럿 CLI
깃허브 코파일럿 CLI(GitHub Copilot CLI)는 제미나이 CLI와 마찬가지로 전반적인 완성도가 높다. “여러 언어로 인사하는 엔드포인트를 제공하는 새 애플리케이션을 시작하라”와 같은 복잡한 작업도 큰 문제 없이 처리했다. 동시에 “8080 포트를 사용 중인 프로세스는 무엇인가”처럼 단순한 질문을 빠르게 해결할 수 있다는 점도 장점이다. 시스템 명령을 일일이 떠올릴 필요 없이 바로 확인할 수 있다.
물론 한계도 존재한다. 간단한 작업에서도 문제가 발생할 수 있다. 예를 들어 8080 포트를 사용 중인 프로세스가 systemctl로 실행된 경우에도, 코파일럿은 단순한 kill 명령을 제시하는 식이었다.
코파일럿 CLI의 ?? 기능은 목표를 프롬프트로 변환해 주는 흥미로운 시도다. 예를 들어 “?? 이 디렉토리에서 가장 큰 파일을 찾아라”라고 입력하면, find . -type f -exec du -h {} + 2>/dev/null | sort -rh | head -10과 같은 명령을 생성한다. 다만 실제 사용에서는 일반 프롬프트 방식도 충분히 잘 작동했다.
일부 상황에서는 코파일럿이 큰 단계의 작업에서 멈추거나, 과도하게 시간이 걸리는 모습도 보였다. 예를 들어 Creating Next.js project (Esc to cancel · 653 B)와 같은 단계에서 진행이 지연되거나, 완료까지 오랜 시간이 소요되는 경우가 있었다.
전반적으로 보면 제미나이와 코파일럿의 명령줄 인터페이스 사이에서 뚜렷한 차이를 느끼기는 어려웠다. 두 도구 모두 최상급 수준에 속한다. 구글과 마이크로소프트가 내놓은 대표적인 AI 터미널 도구라는 점을 고려하면 자연스러운 결과다. 결국 선택의 기준은 기술적 우열보다는, 사용자가 선호하는 생태계와 기업에 따라 갈릴 가능성이 크다.
올라마
올라마(Ollama)는 이번에 살펴본 도구 가운데 가장 강한 통제력을 제공하는 명령줄 도구다. 로컬 머신에 사전 구축된 목적별 모델을 설치하고 실행할 수 있어 사용자가 모든 과정을 직접 관리할 수 있다. 네트워크 호출을 제거하고 서드파티 클라우드 서비스 업체에 대한 의존도도 없앨 수 있다. 다만 최근에는 클라우드 서비스 연동 기능도 추가됐다.
올라마 자체는 에이전트라기보다는, 여러 에이전트를 구동하는 엔진에 가깝다. 흔히 ‘LLM을 위한 도커’로 불리며, 명령줄에서 간단히 강력한 오픈소스 모델을 내려받아 관리하고 실행할 수 있는 도구다. 예를 들어 라마 3(Llama 3)이나 미스트랄(Mistral) 같은 모델을 로컬 환경에서 직접 실행할 수 있다. ollama pull llama3로 모델을 내려받은 뒤 ollama run llama3 "..." 형태로 바로 대화를 시작할 수 있다. 특히 개발자라면 코드라마(CodeLlama)의 활용 가치를 높게 평가할 것이다.
윈도우처럼 헤드리스 환경이 아닌 경우 올라마는 설치된 모델을 관리하고 상호작용할 수 있는 간단한 GUI도 함께 제공한다. 로컬 모델과 클라우드 모델 모두를 이 인터페이스에서 다룰 수 있다.
올라마의 핵심 강점은 프라이버시와 오프라인 접근성이다. 모델이 전적으로 로컬에서 실행되므로 프롬프트나 코드가 외부로 전송되지 않는다. 민감한 프로젝트를 다루거나 보안이 중요한 환경에서 작업하기에 적합하다.
올라마는 AI 서버 역할도 수행한다. API를 제공해 에이더(Aider), 오픈코드(OpenCode), NPC 셸(NPC Shell) 같은 다른 도구들이 클라우드 서비스를 사용하지 않고도 로컬 모델을 활용할 수 있도록 한다. 올라마에 포함된 채팅 에이전트는 제미나이, 코파일럿, 워프(Warp)와 같은 대화형 명령줄 도구와 경쟁하기보다는 전통적인 REPL에 가까운 성격을 띤다.
대신 성능 측면에서는 분명한 트레이드오프가 존재한다. 사용 가능한 성능은 전적으로 개인의 하드웨어에 좌우되며, 대형 모델을 원활히 실행하려면 강력한 GPU, 특히 엔비디아 GPU가 필요하다. 결국 선택은 성능과 프라이버시 사이에서 이뤄진다. 완전한 통제권과 높은 보안을 얻는 대신, 필요한 연산 자원은 사용자가 직접 책임져야 한다. 고성능 GPU는 가격도 만만치 않으며, 클라우드에서 적절한 수준의 GPU를 확보하는 데에도 매달 수백 달러가 들 수 있다.
에이더
에이더(Aider)는 LLM을 AI 백엔드로 활용할 수 있는 페어 프로그래밍 도구다. 로컬에서 실행 중인 올라마 인스턴스와 연동할 수 있으며, 다양한 모델 선택지를 제공한다. 일반적으로는 오픈라우터 계정을 연결해 무료 티어를 포함한 여러 LLM에 접근하는 방식으로 사용한다.
연결이 완료되면 에이더 실행 시 사용할 모델을 지정한다. 예를 들어 aider --model ollama_chat/llama3.2:3b와 같은 명령을 입력하면 해당 모델을 두뇌로 삼는 대화형 프롬프트가 실행된다. 에이더는 응답만 제공하는 수준을 넘어, 에이전트로서 코드 수정과 명령 실행 등 실제 작업에 개입한다.
에이더는 파일 시스템과 프로젝트 파일, 그리고 사용자가 현재 무엇을 작업하고 있는지를 맥락적으로 이해하려고 시도한다. 또한 git 환경을 이해하도록 설계돼 있어 init을 통한 git 프로젝트 초기화를 제안하고 작업을 진행하면서 커밋을 유도하며, 상황에 맞는 커밋 메시지도 제시한다. 이 기능의 완성도는 사용자가 선택하는 LLM 엔진 성능에 크게 좌우된다.
에이더는 올라마를 한 단계 높은 수준에서 활용하는 도구에 가깝다. 개발자가 직접 제어하는 구조이며, 여러 모델을 선택할 수 있는 추상화 계층을 제공한다. 여기에 실제 작업에 개입할 수 있는 기능까지 더해진다. 다만 필자의 경우 에이더를 정상적으로 구동하기까지 파이썬 패키지 설치 과정에서 다소 번거로운 조정이 필요했다.
에이더는 터미널 환경을 위한 루 코드(Roo Code)와 유사한 도구로, 다양한 모델에 프로젝트 인식 기능을 결합한 형태다. 성능이 충분한 모델 엔진을 연결하면 제미나이나 코파일럿 CLI가 수행하는 대부분의 작업을 처리할 수 있으며, 활용 측면에서는 오히려 더 높은 유연성을 제공한다. 다만 이들 도구와 비교할 때 가장 큰 단점으로는 /add 명령을 사용해 파일을 컨텍스트에 직접 포함시키는 등 자산 관리를 보다 수동적으로 해야 한다는 점이 꼽힌다.
AI 셸
빌더닷아이오(Builder.io) 팀이 개발한 AI 셸(AI Shell)은 프롬프트를 기반으로 효과적인 셸 명령을 생성하는 데 초점을 맞춘 도구다. 제미나이나 코파일럿 CLI와 비교하면 보다 간편한 유틸리티 성격이 강하며, 명령을 직접 입력하지 않아도 터미널의 강력한 기능을 빠르게 활용할 수 있도록 돕는다.
AI 셸은 사용자가 원하는 목표를 입력하면 이에 맞는 셸 명령을 제안한다. 예를 들어 $ ai find the process using the most memory right now and kill it과 같은 요청을 입력하면 실제로 실행 가능한 명령을 생성해 보여준다. 이후 해당 명령을 실행할지, 수정할지, 복사할지, 아니면 취소할지를 선택할 수 있도록 안내한다. 일반적인 명령줄 환경에서 필요할 때 잠시 호출해 쓰기 쉬운 구조로, ai 뒤에 수행하고자 하는 작업을 입력하는 방식이다.
유용한 도구이긴 하지만, 현재 버전의 AI 셸은 오픈AI API만 사용할 수 있다는 한계가 있다. 오픈AI가 무료 API 접근을 더 이상 제공하지 않기 때문에 AI 셸을 무료 티어로 실행할 방법이 없다는 점은 분명한 단점으로 꼽힌다.
워프
워프(Warp)는 처음부터 완성형 터미널 애플리케이션으로 출발했다. 핵심 강점은 크로스 플랫폼 환경에서 텍스트 처리와 제어 기능을 풍부하게 제공하면서도, 이식성과 휴대성을 모두 갖췄다는 점이다. 기존 셸 안에서 동작하는 제미나이나 코파일럿 CLI 같은 에이전트형 도구와 달리, 워프는 AI가 핵심에 통합된 독립형 GUI 애플리케이션이다.
워프는 러스트 기반으로 개발된 현대적인 터미널로, 전통적인 텍스트 스트림 방식에서 벗어나 보다 구조화된 애플리케이션 형태의 인터페이스로 사용자 경험을 재구성했다.
워프의 AI는 별도의 프롬프트로 분리돼 있지 않고 입력 블록에 직접 통합돼 있다. 기본적으로 2가지 동작 모드를 제공하는데, 첫 번째는 # 기호 뒤에 자연어 질의를 입력하는 방식이다. 예를 들어 # find all files over 10 megs in this dir와 같이 입력하면, 워프 AI가 이를 적절한 명령으로 변환한다.
두 번째 모드는 보다 복잡한 다단계 에이전트 모드로, Ctrl+스페이스 키를 눌러 진입한다. 예를 들어 “netty를 사용해 고양이와 관련된 논블로킹 엔드포인트를 정의하라”와 같은 작업을 한 번에 처리하도록 지시할 수 있다.
흥미로운 기능으로는 워프 워크플로우(Warp Workflows)가 있다. 매개변수를 받을 수 있는 명령을 저장하고 공유할 수 있는 방식이다. AI에 복잡한 작업, 예를 들어 다단계 git 리베이스와 같은 워크플로 생성을 요청한 뒤, 실행 시점에 필요한 인자를 전달하는 식으로 활용할 수 있다.
일부 명령줄 환경 애호가에게는 워프의 구조가 단점이 될 수 있다. 워프는 전통적인 CLI가 아니라 입력과 출력을 각각의 블록으로 취급하는 블록 기반 편집기이기 때문이다. 이 방식에 익숙해지기까지 시간이 필요하며, 사용자에 따라서는 오히려 불편하게 느껴질 수도 있다. 이 구조로 인해 tmux나 screen 같은 전통적인 터미널 멀티플렉서와의 호환성도 깨진다. 여기에 더해 워프의 AI 기능은 사용자 계정과 클라우드 백엔드에 연동돼 있어 프라이버시나 오프라인 활용성을 우려하는 개발자도 있을 수 있다.
그럼에도 불구하고 워프는 매력적인 AI 터미널 도구다. 특히 기존 CLI와는 다른 접근을 원하는 사용자에게는 충분히 고려해볼 만한 선택지다. AI 기능을 제외하더라도, 워프는 배시(Bash) 같은 전통적인 셸과 GUI 애플리케이션의 중간 지점에 위치한 도구로 볼 수 있다.
결론
현재 셸 사용이 익숙하지 않다면, 이들 도구가 작업 방식을 훨씬 수월하게 만들어줄 것이다. 그동안 “더 나은 방법이 있지 않을까”라고 느낄 만큼 번거로웠던 많은 작업을 손쉽게 처리할 수 있다. 이제는 프로세스를 모니터링하고, TCP 패킷을 분석하며, 권한 설정을 전문가처럼 관리하는 것도 한결 쉬워졌다.
반대로 필자처럼 셸 환경을 선호하는 사용자라면, 이들 도구는 기존 경험을 한층 더 강화해준다. 자유롭게 시스템 전반을 다룰 수 있는 일종의 ‘초능력’을 제공하기 때문이다. 평소 명령줄에서 대부분의 코딩 작업을 처리하는 개발자라면, 이러한 도구를 살펴보는 것은 자연스러운 선택이다.
각 도구는 설치 방식과 의존성, 모델 접근 방식, 키 관리 측면에서 저마다의 특성을 지닌다. 초반에는 어느 정도의 시행착오가 따르기 마련이지만, 명령줄 환경에 익숙한 개발자라면 크게 개의치 않을 수준이다.
dl-itworldkorea@foundryco.com
관련자료
-
링크
-
이전
-
다음






