이걸 왜 이제 알았을까? 터미널 붙박이 개발자를 위한 완벽한 AI 파트너, SST OpenCode 솔직 리뷰
TL;DR (한 마디로?) “터미널에서 절대 벗어나기 싫은 개발자를 위한 진정한 100% 오픈소스 AI 코딩 에이전트. Claude Code의 강력함에 75개 이상의 LLM 선택권, 다중 세션, 그리고 LSP(Language Server Protocol) 연동까지 때려 넣은 진짜 물건입니다.”
최근 AI 코딩 툴 시장이 진짜 미친 속도로 발전하고 있죠. Cursor, GitHub Copilot, Claude Code… 개발자라면 다들 한 번씩은 써보셨을 겁니다. 저도 이것저것 찍먹해보고 에디터를 옮겨 다니기를 반복하다가, 최근에 터미널 환경에서 완전히 정착하게 만든 녀석이 하나 생겼어요. 바로 SST OpenCode입니다.
사실 우연히 깃허브 눈팅을 하다가 별(Star)이 무려 26,000개나 박혀있는 걸 보고 “아니, 이게 대체 뭐길래 사람들이 이렇게 열광하지?” 하고 무심코 클론을 받아서 써봤는데… 와, 진짜 첫 5분 만에 감탄이 절로 나오더라고요. 단순한 CLI 챗봇이 아닙니다. 내 로컬 환경을 완벽하게 이해하고 같이 고민해 주는 사수를 터미널 안에 앉혀놓은 느낌이랄까요?
게다가 이 프로젝트, 탄생하게 된 뒷배경 스토리도 꽤 매콤합니다. 원래 커뮤니티 주도로 개발되던 동명의 오픈소스 프로젝트가 있었는데, 모 기업(Charm)이 레포지토리를 일방적으로 인수하고 자신들의 방향대로 끌고 가려 했죠. 오픈소스 생태계에서 흔히 볼 수 있는 ‘자본 vs 개발자의 낭만’ 구도였습니다. 이에 빡친(?) 오리지널 팀원들이 SST(Serverless Stack) 팀과 손을 잡고 아예 밑바닥부터 구조를 새로 짜버렸거든요. 개발자들의 순수한 열정과 오기, 그리고 약간의 독기가 가득 담긴 결과물인 셈입니다. 😂
평소에 마우스 클릭보다는 키보드 단축키를 사랑하고, VIM이나 터미널 환경에서 벗어나는 걸 극도로 싫어하는 분들이라면 오늘 제 이야기에 완전히 공감하실 겁니다. 커피 한잔 들고 천천히 읽어보세요!
🚀 왜 기존 툴을 버리고 SST OpenCode에 열광하는가? (Deep Dive)
단순히 “터미널에서 돌아가는 ChatGPT” 정도로 생각하시면 큰 오산입니다. 기존 툴들과 아키텍처부터 접근 방식까지 뭐가 다른지, 현업 개발자 관점에서 하나하나 뜯어볼게요.
1. 벤더 종속 없는 100% 오픈소스와 모델 독립성 (Provider-Agnostic)
개인적으로 가장 마음에 들었던 부분입니다. Claude Code나 Gemini CLI는 각 회사의 자사 모델만 강제하잖아요? 지금 당장이야 Claude 3.5 Sonnet이 코딩 원탑이라고 하지만, 내일 당장 GPT-5가 나오거나 DeepSeek가 더 미친 가성비로 시장을 씹어먹을지 모르는 일입니다.
OpenCode는 특정 AI 벤더에 종속되지 않습니다. Claude, OpenAI, Google은 물론이고 최근 핫한 DeepSeek, 심지어 Ollama를 통한 로컬 모델까지 75개 이상의 LLM을 입맛대로 골라 쓸 수 있어요. 설정에서 API 키 하나만 띡 바꿔 끼우면 끝입니다. 특히 사내 보안 규정 때문에 퍼블릭 클라우드 LLM을 절대 못 쓰는 금융/의료 도메인 개발자분들 계시죠? Ollama로 로컬에 Llama3나 Qwen 모델을 띄워두고 완벽한 오프라인 환경에서 AI 코딩을 즐길 수 있다는 건 정말 압도적인 메리트입니다.
2. 눈이 즐거운 TUI와 미친 아키텍처 설계
Go 언어 생태계에서 유명한 BubbleTea 라이브러리를 사용해서 터미널 UI(TUI)를 구성했는데, 디자인이 정말 예쁩니다. 하지만 껍데기만 예쁜 게 아니에요. 내부는 단순한 단일 스크립트가 아니라 클라이언트/서버 아키텍처로 단단하게 설계되어 있습니다.
이게 무슨 의미냐면, AI 코어 엔진을 로컬 워크스테이션이나 서버에 데몬으로 띄워놓고 다양한 프론트엔드를 붙일 수 있다는 뜻입니다. 실제로 공식 제공되는 VS Code 익스텐션을 설치하면, 내 터미널 세션과 VS Code 에디터 창이 실시간으로 동기화됩니다. 나중에는 모바일 앱으로 원격 접속해서 출퇴근길에 서버 장애를 고치게 될지도 모를 일이죠.
3. 다중 세션(Multi-session)과 LSP의 완벽한 만남
작업하다가 터미널 창을 실수로 닫아서 AI랑 장황하게 대화하며 쌓아둔 컨텍스트를 통째로 날려먹은 적 있으시죠? (저만 그런 거 아니라고 해주세요 😅) OpenCode는 다중 세션을 완벽하게 지원해서, 창을 껐다 켜도 끊긴 시점부터 바로 이어서 대화할 수 있습니다.
거기에 더해 LSP(Language Server Protocol)가 기본으로 물려있습니다. AI가 내 코드를 단순한 텍스트 덩어리로 읽는 게 아니라, IDE처럼 AST(추상 구문 트리) 레벨에서 심도 있게 이해합니다. 에러가 나면 “어디서 났지?” 하고 텍스트를 검색하는 게 아니라, LSP가 던져주는 정확한 에러 로그와 타입 정보를 바탕으로 스스로 코드를 픽스(Fix)해버립니다.
| 기능 핵심 비교 | SST OpenCode | Claude Code | GitHub Copilot CLI |
|---|---|---|---|
| 오픈소스 여부 | 🟢 100% 투명한 오픈소스 | 🔴 클로즈드 소스 | 🔴 클로즈드 소스 |
| 지원 모델 | 🟢 75+ (Local 로컬 LLM 완벽 지원) | 🔴 Anthropic 모델 전용 | 🔴 OpenAI 커스텀 전용 |
| 다중 세션 관리 | 🟢 완벽 지원 (세션 영구 저장) | 🔴 불안정하거나 미지원 | 🔴 미지원 |
| 컨텍스트 이해 | 🟢 LSP 기본 연동 (코드 문맥 파악) | 🟡 파일 읽기 위주 | 🟡 터미널 명령어 위주 |
| 아키텍처 구조 | 🟢 클라이언트/서버 기반 | 🟡 단일 프로세스 | 🟡 단일 프로세스 |
💡 실제로 프로젝트에 어떻게 써먹을 수 있을까? (Hands-on)
이론적인 이야기는 접어두고, 실제 제 토이 프로젝트와 업무에 적용해본 쫀득한 경험을 공유해볼게요.
터미널에서 opencode를 치면 화려한 UI가 반겨줍니다. 그냥 채팅하듯 물어봐도 되지만, 진가는 실제 코드를 뜯어고칠 때 발휘되죠.
1
2
# 단순 질문을 넘어 실제 문제 해결을 지시할 때 (논인터랙티브 모드 활용 가능)
> opencode "src/user.service.ts 파일에서 발생하는 무한 루프 원인을 찾고, 테스트 코드까지 포함해서 고쳐줘"
제가 가장 유용하게 쓴 킬러 기능은 바로 /init 명령어와 AGENTS.md 기능입니다. 처음 프로젝트를 시작할 때 루트 디렉토리에서 /init 명령어를 실행하면, OpenCode가 내 프로젝트의 파일들을 싹 스캔한 뒤 아래와 같은 마크다운 파일을 자동으로 만들어줍니다.
1
2
3
4
5
6
# AGENTS.md (OpenCode가 이해하는 내 프로젝트의 컨텍스트)
- 이 프로젝트는 TypeScript와 SST v3를 사용하는 모노레포 구조입니다.
- 패키지 관리는 bun workspaces를 사용합니다.
- 비즈니스 로직 함수는 반드시 `packages/functions/` 하위에 작성하세요.
- 인프라(Infra) 코드는 `infra/` 디렉토리에 논리적으로 분리해야 합니다.
- 모든 코드는 strict 모드를 따르며, any 타입 사용을 지양하세요.
이게 진짜 미친 포인트입니다. Cursor 에디터의 Rules 기능과 똑같은 역할을 하는데, 이걸 Git에 커밋해두기만 하면 팀원 전체가 완전히 동일한 코딩 컨벤션과 컨텍스트로 AI와 협업할 수 있습니다. 새로 합류한 주니어 개발자가 AI에게 엉뚱한 코드를 짜달라고 해서 레포지토리가 엉망이 되는 걸 미연에 방지할 수 있죠.
또한, Tab 키를 누르면 AI의 권한 모드를 실시간으로 바꿀 수 있습니다.
- Build 모드 (기본값): AI가 내 파일 시스템에 직접 접근해서 코드를 추가, 삭제, 수정하는 풀(Full) 권한 모드입니다.
- Plan 모드 (읽기 전용): 코드는 절대 건드리지 않고 분석만 해주는 모드입니다.
특히 남이 짠 스파게티 레거시 코드를 처음 열었을 때, Plan 모드로 “이 함수가 어디서부터 호출되는지 데이터 흐름을 다이어그램 텍스트로 그려줘”라고 요청하면, 코드가 망가질 걱정 없이 매우 안전하고 똑똑하게 코드베이스를 파악할 수 있습니다.
🤔 공식 문서에는 없는 솔직한 장단점 분석 (Honest Review)
아무리 좋은 툴이라도 완벽할 수는 없겠죠? 며칠 동안 밤새 빡세게 굴려보면서 느낀 점을 가감 없이 적어보겠습니다.
👍 진짜 감동했던 점들:
- 압도적인 몰입감: 브라우저 창 열어서 ChatGPT에 코드 복사해 붙여넣고, 답변받은 거 다시 복사해오다 에러 나면 또 알트탭… 이 소모적인 짓거리를 안 해도 됩니다. 터미널 하나 띄워놓고 모든 걸 끝내니 개발 몰입감이 장난 아닙니다.
- 투명한 비용 관리: 화면 구석에 항상 현재 프롬프트가 소모한 토큰 양과 비용(Cost)이 실시간으로 뜹니다. “이거 물어보면 돈 얼마나 나오지?” 하고 쫄 필요 없이 직관적으로 관리할 수 있어서 마음이 편안합니다.
- MCP(Model Context Protocol) 지원: 외부 툴 연동이 미쳤습니다. 로컬 DB를 연결해주면 자기가 알아서 스키마를 읽어오고, 사내 Jira와 연동해서 티켓 내용에 맞게 코드를 수정하게 할 수도 있습니다. 확장성이야말로 이 툴의 최고 무기예요.
👎 살짝 눈물 나는 아쉬운 점들:
- 잔버그의 향연: 아직 초기 릴리즈(현재 0.x 버전대)이다 보니, 복잡한 TUI 레이아웃에서 한글이 살짝 깨지거나 단축키가 가끔 씹히는 잔버그가 있습니다. 팀이 미친 속도로 패치를 내놓고 있어서 금방 고쳐지겠지만, 안정성을 최우선으로 한다면 약간 거슬릴 수 있습니다.
- 초기 컨텍스트 인덱싱 지연: 수백 개의 패키지가 엮인 방대한 모노레포 환경에서는 초반에 전체 프로젝트를 인덱싱하고 이해하는 데 시간이 다소 걸립니다.
- 진입 장벽: 애초에 터미널 기반 생태계와 설정(Configuration)에 익숙하지 않은 초보자나 프론트엔드/퍼블리셔 분들에게는 환경 변수 세팅이나
AGENTS.md튜닝 과정 자체가 꽤나 높은 진입 장벽으로 느껴질 수 있습니다.
🎯 마무리하며: AI가 터미널 안으로 완벽히 녹아들다
한 마디로 정리해볼게요. SST OpenCode는 단순하게 유행을 타는 장난감이 아닙니다. 터미널 중심의 개발 워크플로우를 완전히 새로운 차원으로 끌어올릴 강력한 잠재력을 증명한 도구입니다.
“AI가 내 터미널 환경 깊숙한 곳까지 이해하고 돕는다”는 개념을 현존하는 오픈소스 툴 중에서 가장 매끄럽고 완벽하게 구현해냈다고 감히 평가하고 싶네요. 매번 에디터와 브라우저를 널뛰기하며 컨텍스트 스위칭에 지치셨나요? 더 이상 망설일 이유가 없습니다.
오늘 당장 npm install -g opencode 한 줄 치시고 새로운 터미널 라이프를 찍먹해보시길 강력히 권합니다. 여러분의 개발 생산성이, 그리고 터미널에서 보내는 시간이 얼마나 짜릿하게 달라졌는지 나중에 댓글로 꼭 생생한 후기 들려주세요! 같이 커피 한잔하면서 AGENTS.md 설정 팁 공유해봅시다. 🔥🚀
References
- https://github.com/sst/opencode
- https://opencode.ai/
