오늘도 공부
[OpenHands] 자율 AI 에이전트 본문

요즘 개발자 도구의 흐름은 빠르게 바뀌고 있다.
처음에는 AI가 코드 한 줄을 자동완성해 주는 수준이었다. 그다음에는 채팅창에 물어보면 함수나 컴포넌트를 만들어 주는 수준으로 발전했다. 그런데 이제는 한 단계 더 나아가고 있다.
“이 버그 고쳐줘.”
“이슈 보고 원인 찾아서 PR 만들어줘.”
“레거시 코드를 리팩터링해줘.”
“테스트 깨지는 이유를 찾아줘.”
이런 요청을 AI에게 단순히 묻는 것이 아니라, 실제 개발 환경 안에서 실행하게 만드는 방향이다.
OpenHands는 바로 이 흐름을 대표하는 오픈소스 프로젝트다.
1. OpenHands는 무엇인가?
OpenHands는 AI 기반 소프트웨어 개발 에이전트 플랫폼이다.
쉽게 말하면, ChatGPT나 Claude에게 코드 질문을 던지는 수준을 넘어, AI가 직접 개발 작업을 수행할 수 있도록 만든 도구다. OpenHands 에이전트는 코드베이스를 읽고, 파일을 수정하고, 터미널 명령을 실행하고, 필요하면 웹을 탐색하고, GitHub 이슈나 PR 흐름 안에서 작업할 수 있다.
기존 AI 코딩 도구가 “옆에서 도와주는 조수”에 가까웠다면, OpenHands는 “작업을 맡길 수 있는 주니어 개발자형 에이전트”에 가깝다.
물론 여기서 중요한 전제가 있다.
AI가 모든 개발을 완벽하게 대신한다는 뜻은 아니다. OpenHands의 핵심 가치는 “개발자의 판단을 없애는 것”이 아니라, 반복적이고 시간이 많이 드는 개발 작업을 에이전트에게 넘기고, 사람은 설계·검토·의사결정에 집중하게 만드는 데 있다.
2. 왜 OpenHands가 주목받는가?
OpenHands가 흥미로운 이유는 단순히 “AI가 코드를 짜준다”는 데 있지 않다. 이미 그런 도구는 많다.
핵심은 세 가지다.
첫째, OpenHands는 오픈소스 기반이다.
많은 AI 코딩 도구는 특정 회사의 모델, 특정 IDE, 특정 클라우드 환경에 강하게 묶여 있다. 반면 OpenHands는 오픈소스 프로젝트로 공개되어 있고, 개발자가 직접 구조를 보고 수정하고 확장할 수 있다.
둘째, 모델에 비교적 독립적인 구조를 지향한다.
OpenHands는 Claude, OpenAI 계열 모델, Gemini, 오픈소스 모델 등 여러 LLM을 사용할 수 있는 방향으로 설계되어 있다. AI 모델 시장은 빠르게 변하기 때문에, 특정 모델 하나에 묶이지 않는 구조는 실무적으로 중요하다.
셋째, 단순 채팅이 아니라 “실행 환경”을 포함한다.
AI 개발 에이전트에서 가장 중요한 것은 말솜씨가 아니다. 실제 파일을 수정하고, 테스트를 돌리고, 에러 로그를 보고, 다시 고치고, 결과를 남길 수 있어야 한다. OpenHands는 이 실행 루프를 중심에 둔다.
3. OpenHands의 구성: SDK, CLI, GUI, Cloud
OpenHands는 하나의 앱이라기보다 여러 층으로 구성된 플랫폼에 가깝다.
1) Software Agent SDK
가장 핵심은 OpenHands Software Agent SDK다.
이 SDK는 개발자가 직접 코드 안에서 소프트웨어 개발 에이전트를 만들 수 있게 해주는 Python/REST API 기반 도구다.
예를 들어 다음과 같은 일을 할 수 있다.
- 특정 저장소의 README를 자동 생성하는 에이전트
- 의존성 업데이트를 자동으로 처리하는 에이전트
- 대규모 리팩터링을 여러 단계로 나눠 수행하는 에이전트
- 사내 개발 워크플로우에 맞춘 커스텀 코드 리뷰 에이전트
- OpenAI 호환 API 형태로 IDE나 내부 서비스에 붙이는 에이전트
즉, SDK는 OpenHands의 엔진이다.
CLI, GUI, Cloud 같은 상위 제품들은 이 엔진 위에서 동작하는 인터페이스라고 보면 된다.
2) CLI
OpenHands CLI는 터미널에서 바로 에이전트를 실행하는 방식이다.
개발자는 자연어로 작업을 입력하고, 에이전트가 어떤 작업을 수행하는지 실시간으로 확인할 수 있다. 예를 들어 다음과 같은 식이다.
openhands -t "Create a REST API for user management"
이 방식은 Claude Code나 Codex CLI 같은 도구를 써본 개발자에게 익숙하다.
특히 터미널 중심으로 일하는 개발자라면 OpenHands CLI가 가장 빠른 진입점이 될 수 있다.
3) Local GUI
Local GUI는 브라우저 기반 화면에서 OpenHands를 실행하는 방식이다.
Docker 기반으로 로컬 환경에서 실행할 수 있고, 웹 UI를 통해 에이전트와 상호작용한다.
이 방식은 터미널 명령보다 시각적인 흐름을 선호하는 개발자에게 적합하다.
에이전트가 어떤 파일을 보고 있는지, 어떤 작업을 진행 중인지, 어떤 결과를 냈는지 확인하기 쉽다.
4) OpenHands Cloud
OpenHands Cloud는 설치 없이 클라우드에서 OpenHands를 사용하는 방식이다.
GitHub 또는 GitLab 계정으로 로그인해 바로 사용할 수 있는 흐름을 제공한다.
개인 개발자는 빠르게 체험할 수 있고, 팀 단위에서는 클라우드 기반 협업 흐름을 만들 수 있다.
5) Enterprise
OpenHands Enterprise는 기업이 자체 인프라나 VPC 안에서 OpenHands를 운영할 수 있도록 하는 형태다.
보안, 권한 관리, 사용자 관리, 협업 기능, 사내 시스템 연동이 중요한 조직을 겨냥한다.
AI 개발 에이전트는 코드와 내부 문서를 다루기 때문에 기업 환경에서는 “어디서 실행되는가”가 매우 중요하다. 그런 점에서 self-hosting과 엔터프라이즈 배포 옵션은 OpenHands의 중요한 방향성이다.
4. OpenHands가 실제로 할 수 있는 일
OpenHands를 실무 관점에서 보면 다음 작업에 특히 적합하다.
1) GitHub 이슈 자동 처리
OpenHands는 GitHub Action과 연결해 이슈 기반 작업을 자동화할 수 있다.
예를 들어 저장소에 이슈를 만들고 fix-me 라벨을 붙이면 OpenHands가 해당 이슈를 분석하고 해결을 시도한다. 이후 PR을 만들고, 사람은 결과를 검토한다.
이 흐름은 매우 중요하다.
AI가 바로 main 브랜치에 코드를 밀어 넣는 것이 아니라, 사람이 검토 가능한 PR 단위로 작업을 남긴다. 실무에서는 이 구조가 훨씬 안전하다.
2) 코드 리뷰와 수정
OpenHands는 단순히 “이 코드 어때?”라고 묻는 도구가 아니다.
코드를 읽고, 문제를 찾고, 수정안을 만들고, 테스트까지 시도할 수 있다.
예를 들어 다음과 같은 요청이 가능하다.
“이 PR에서 테스트가 실패하는 원인을 찾아서 고쳐줘.”
“중복된 로직을 공통 함수로 분리해줘.”
“타입 에러를 해결하고 관련 테스트를 추가해줘.”
“이 컴포넌트를 더 작은 단위로 리팩터링해줘.”
이때 개발자의 역할은 에이전트가 만든 결과를 검토하고, 방향이 맞는지 판단하는 것이다.
3) 의존성 업데이트
라이브러리 업데이트는 중요하지만 귀찮은 작업이다.
버전을 올리고, 깨지는 부분을 찾고, 테스트를 돌리고, 수정해야 한다.
OpenHands는 이런 반복 작업에 잘 맞는다.
특히 여러 저장소를 관리하는 팀이라면 의존성 업데이트, 보안 패치, 마이그레이션 작업에 에이전트를 붙이는 방식이 현실적이다.
4) 테스트 작성과 QA 자동화
테스트가 부족한 프로젝트에서 OpenHands를 활용하면 특정 함수나 API에 대한 테스트 코드를 생성하게 할 수 있다.
또한 실패한 테스트를 기반으로 원인을 추적하게 만들 수도 있다.
물론 테스트 품질은 반드시 사람이 검토해야 한다.
AI가 작성한 테스트는 때때로 구현을 검증하는 것이 아니라 구현에 맞춰 형식적으로 통과하는 테스트가 될 수 있기 때문이다.
5) 레거시 코드 리팩터링
레거시 코드 리팩터링은 AI 에이전트에게 특히 흥미로운 영역이다.
한 번에 전체 구조를 바꾸는 것은 위험하지만, 작은 단위로 나누면 자동화할 수 있는 부분이 많다.
예를 들어 다음과 같은 단계적 작업이 가능하다.
- 코드 구조 분석
- 중복 로직 탐지
- 작은 단위 리팩터링
- 테스트 실행
- 실패 원인 수정
- 변경 내역 요약
- PR 생성
이런 루프는 OpenHands 같은 에이전트형 도구가 지향하는 대표적인 활용 방식이다.
5. OpenHands의 핵심 구조를 쉽게 이해하기
OpenHands를 이해할 때는 네 가지 개념을 잡으면 된다.
Agent
Agent는 작업을 수행하는 AI 주체다.
LLM을 기반으로 판단하고, 필요한 도구를 선택하고, 다음 행동을 결정한다.
Tools
Tools는 에이전트가 사용할 수 있는 능력이다.
예를 들어 터미널 실행, 파일 편집, 웹 브라우징, 태스크 트래킹 같은 기능이 도구에 해당한다.
Workspace
Workspace는 에이전트가 작업하는 공간이다.
로컬 폴더일 수도 있고, Docker 컨테이너일 수도 있고, 원격 서버 환경일 수도 있다.
AI 개발 에이전트에서 Workspace는 매우 중요하다.
에이전트가 실제 코드를 만지고 명령어를 실행하기 때문에, 안전한 격리 환경이 필요하다.
Conversation
Conversation은 사용자와 에이전트 사이의 작업 흐름을 관리하는 단위다.
사용자가 요청을 보내고, 에이전트가 계획을 세우고, 도구를 실행하고, 결과를 다시 관찰하는 전체 루프가 Conversation 안에서 진행된다.
6. OpenHands와 기존 AI 코딩 도구의 차이
OpenHands를 이해하려면 GitHub Copilot, Cursor, Claude Code 같은 도구와 비교해 보면 쉽다.
GitHub Copilot은 IDE 안에서 코드 자동완성과 추천에 강하다.
Cursor는 에디터 안에서 코드베이스를 이해하고 수정하는 경험이 좋다.
Claude Code나 Codex류 도구는 터미널 기반 에이전트 작업에 가깝다.
OpenHands는 여기에 오픈소스 플랫폼성과 확장성을 더한다.
즉, OpenHands는 “하나의 완성된 코딩 앱”이라기보다 “AI 소프트웨어 개발 에이전트를 만들고 운영하기 위한 기반”에 가깝다.
이 차이는 중요하다.
개인 개발자가 단순히 코딩 보조를 원한다면 Cursor나 Claude Code가 더 편할 수 있다.
하지만 사내 워크플로우에 맞춘 에이전트를 만들고 싶거나, GitHub 이슈 처리 자동화, 보안 패치 자동화, 사내 개발 플랫폼 통합까지 고려한다면 OpenHands가 더 흥미로운 선택지가 된다.
7. 설치와 실행 흐름
OpenHands는 로컬 GUI, CLI, SDK, Cloud 방식으로 접근할 수 있다.
로컬 GUI를 실행하려면 일반적으로 Docker 기반 환경이 필요하다.
공식 문서에서는 macOS, Linux, Windows WSL 환경을 안내하고 있으며, 최소 4GB RAM 이상의 시스템을 권장한다.
Python 패키지 방식으로는 uv를 이용해 설치하는 흐름이 안내되어 있다.
예시:
uv tool install openhands --python 3.12
openhands serve
또는 pip 기반으로 SDK를 설치할 수도 있다.
pip install -U openhands-sdk openhands-tools
SDK를 사용하면 Python 코드에서 직접 에이전트를 만들 수 있다.
예를 들어 LLM을 설정하고, TerminalTool, FileEditorTool, TaskTrackerTool 같은 도구를 붙인 뒤, Conversation을 생성해 작업을 실행하는 방식이다.
개발자 입장에서는 이 부분이 가장 중요하다.
OpenHands는 단순 앱이 아니라 “내가 원하는 에이전트형 개발 워크플로우를 코드로 구성할 수 있는 도구”이기 때문이다.
8. 한국 개발자·스타트업 관점에서의 활용 아이디어
OpenHands는 한국 개발자와 스타트업에게도 꽤 실용적인 가능성이 있다.
1) 소규모 개발팀의 유지보수 자동화
초기 스타트업은 기능 개발에 바빠서 리팩터링, 테스트, 문서화, 의존성 업데이트가 밀리기 쉽다.
OpenHands를 GitHub 이슈와 연결하면 반복 유지보수 작업을 에이전트에게 맡기고, 개발자는 PR 검토자로 남을 수 있다.
예를 들어 매주 다음과 같은 이슈를 자동 생성할 수 있다.
“오래된 npm 패키지 업데이트”
“테스트 커버리지 낮은 모듈에 테스트 추가”
“README와 실제 API 스펙 불일치 확인”
“TODO 주석 기반 개선 PR 생성”
2) 사내 개발 플랫폼과 연결
회사 내부에 Backstage, Jira, Linear, GitHub Enterprise 같은 도구가 있다면 OpenHands를 사내 개발 플랫폼과 연결하는 시나리오를 생각해 볼 수 있다.
예를 들어 Jira 티켓이 생성되면, OpenHands가 관련 저장소를 분석하고 초안 PR을 만드는 식이다.
개발자는 처음부터 코드를 작성하는 대신, AI가 만든 초안을 리뷰하고 보완한다.
3) 레거시 시스템 현대화
한국 기업에는 오래된 Java, PHP, Spring, 전자정부 프레임워크, 내부 ERP 코드가 많다.
이런 시스템은 한 번에 바꾸기 어렵다.
OpenHands는 레거시 코드를 작은 단위로 분석하고, 테스트를 추가하고, 마이그레이션 범위를 나누는 데 활용할 수 있다.
특히 “전체 교체”가 아니라 “작은 PR을 반복적으로 쌓는 방식”으로 접근하면 현실성이 높다.
4) AI 에이전트 SaaS 개발
OpenHands SDK는 단순 사용자가 아니라 개발자에게도 의미가 크다.
예를 들어 다음과 같은 자체 서비스를 만들 수 있다.
- GitHub 저장소 분석 리포트 자동 생성 서비스
- 보안 취약점 수정 PR 자동 생성 서비스
- 코드 리뷰 자동화 SaaS
- 스타트업용 기술 부채 관리 에이전트
- 레거시 코드 문서화 에이전트
- 내부 API 문서 자동 동기화 에이전트
이런 서비스는 단순 챗봇보다 훨씬 높은 가치를 만들 수 있다.
왜냐하면 실제 코드베이스 안에서 작업하고 결과물을 남기기 때문이다.
9. OpenHands를 도입할 때 주의할 점
OpenHands는 강력하지만, 아무 프로젝트에나 무작정 붙이면 위험하다.
1) 권한을 좁게 줘야 한다
AI 에이전트가 터미널을 실행하고 파일을 수정할 수 있다는 것은 장점이면서 동시에 위험이다.
처음에는 읽기 전용 분석, 제한된 브랜치, 제한된 디렉터리, 테스트 전용 환경에서 시작하는 것이 좋다.
2) 자동 머지는 피해야 한다
AI가 만든 코드는 반드시 PR 기반으로 검토해야 한다.
특히 프로덕션 코드, 결제, 인증, 개인정보, 보안 관련 코드는 사람 리뷰가 필수다.
3) 작업 단위를 작게 쪼개야 한다
“우리 서비스를 전부 리팩터링해줘” 같은 요청은 좋지 않다.
대신 다음처럼 구체적으로 요청해야 한다.
“UserService의 중복 validation 로직을 별도 함수로 분리하고 기존 테스트가 통과하는지 확인해줘.”
“이 API 엔드포인트에 누락된 에러 케이스 테스트를 추가해줘.”
“README의 설치 방법이 현재 package.json과 맞는지 확인하고 수정해줘.”
AI 에이전트는 명확한 범위와 성공 조건이 있을 때 훨씬 잘 작동한다.
4) 비용 관리가 필요하다
OpenHands는 LLM API를 사용한다.
작업이 길어지고 반복 실행이 많아지면 비용이 늘어날 수 있다.
따라서 팀 단위로 사용할 때는 모델 선택, 최대 반복 횟수, 작업 제한, 승인 단계, 로그 모니터링을 설정해야 한다.
5) 보안과 비밀키 관리가 중요하다
AI 에이전트가 코드 저장소에 접근한다면 .env, API 키, DB 접속 정보, 내부 문서 접근 권한을 신중히 다뤄야 한다.
가능하면 샌드박스 환경에서 실행하고, 비밀 정보는 별도 Secret 관리 체계를 사용하는 것이 좋다.
10. OpenHands의 한계
OpenHands는 “AI 개발자의 미래”를 보여주는 프로젝트지만, 아직 모든 것을 자동으로 해결하는 도구는 아니다.
현재 AI 개발 에이전트의 일반적인 한계는 다음과 같다.
첫째, 복잡한 제품 의사결정은 여전히 사람의 몫이다.
AI는 코드를 수정할 수 있지만, 어떤 기능이 비즈니스에 맞는지, 어떤 구조가 조직에 맞는지는 사람이 판단해야 한다.
둘째, 환경 설정 문제에서 막힐 수 있다.
실제 개발 프로젝트는 의존성, 로컬 DB, 권한, 사내 네트워크, 빌드 도구 등 변수가 많다. 에이전트가 이런 환경을 완벽히 이해하지 못하면 작업이 중간에 실패할 수 있다.
셋째, 그럴듯하지만 틀린 수정이 나올 수 있다.
AI가 테스트를 통과시키기 위해 문제의 본질이 아니라 증상만 고칠 수도 있다.
넷째, 장기 작업에서는 방향이 흐려질 수 있다.
큰 리팩터링이나 아키텍처 변경은 여러 단계의 설계와 검토가 필요하다. 이 경우 에이전트에게 한 번에 맡기기보다 작은 단위로 나누는 전략이 필요하다.
11. 그래서 OpenHands는 누구에게 적합한가?
OpenHands는 다음 사용자에게 특히 잘 맞는다.
- AI 코딩 도구를 단순 보조가 아니라 자동화 워크플로우로 쓰고 싶은 개발자
- GitHub 이슈와 PR 기반으로 반복 작업을 자동화하고 싶은 팀
- 자체 AI 개발 에이전트를 만들고 싶은 스타트업
- 사내 개발 플랫폼에 AI 에이전트를 붙이고 싶은 엔지니어링 조직
- 오픈소스 기반으로 AI 개발 에이전트 구조를 연구하고 싶은 개발자
- Claude Code, Codex, Cursor 이후의 에이전트형 개발 환경을 실험하고 싶은 사용자
반대로 다음 사용자에게는 다소 부담스러울 수 있다.
- 단순 코드 자동완성만 원하는 사용자
- Docker, 터미널, GitHub Action 설정이 익숙하지 않은 초보자
- AI가 만든 코드를 검토할 개발자가 없는 팀
- 보안상 외부 LLM API 사용이 어려운 조직
- 자동화보다 IDE 안의 즉각적인 편집 경험을 더 중시하는 개발자
12. OpenHands를 한 문장으로 정리하면
OpenHands는 “AI에게 코드를 물어보는 도구”가 아니라, “AI에게 개발 작업을 맡기기 위한 오픈소스 실행 플랫폼”이다.
이 차이가 중요하다.
AI 코딩 도구의 다음 경쟁은 더 이상 “누가 코드를 더 잘 추천하느냐”만이 아니다.
앞으로는 “누가 실제 개발 워크플로우 안에서 안전하게 일을 끝내느냐”가 중요해진다.
OpenHands는 바로 그 방향을 보여준다.
개발자는 모든 코드를 직접 치는 사람이 아니라, 에이전트에게 일을 나누고, 결과를 검토하고, 시스템을 설계하는 사람으로 바뀌고 있다.
지금 OpenHands를 봐야 하는 이유도 여기에 있다.
이 프로젝트는 단순한 오픈소스 코딩 도구가 아니라, 앞으로 개발팀이 AI 에이전트를 어떻게 조직 안에 들여올 것인지 보여주는 실험장이기 때문이다.
GitHub - OpenHands/OpenHands: 🙌 OpenHands: AI-Driven Development
🙌 OpenHands: AI-Driven Development. Contribute to OpenHands/OpenHands development by creating an account on GitHub.
github.com
'AI' 카테고리의 다른 글
| Codex의 Computer use 사용법 3가지 (0) | 2026.06.17 |
|---|---|
| Google Cloud가 공개한 Open Knowledge Format, OKF 쉽게 이해하기 (1) | 2026.06.15 |
| Learn-claude-code 19개 항목으로 이해하는 에이전트 하네스 설계 (0) | 2026.06.15 |
| Claude Managed Agents 를 알아보자. (0) | 2026.06.11 |
| 이제 코딩 에이전트에게 프롬프트만 치는 시대는 지나가고 있다(루프 엔지니어링) (0) | 2026.06.10 |
