
영상 링크: Software Development Agents: What Works and What Doesn’t - Robert Brennan, AllHands/OpenHands
채널명: AI Engineer
소프트웨어 개발 에이전트: 무엇이 효과적이고 무엇이 효과적이지 않은가 핵심 요약
- 본 영상에서는 오픈소스 소프트웨어 개발 에이전트 ‘Open Hands’를 개발한 Robert Brennan이 AI 기반 코딩 에이전트의 효과적 활용법과 한계를 체계적으로 소개함
- 최근 2년간 소프트웨어 개발 환경이 급변하였으며, 향후 코딩 그 자체보다는 문제 정의와 구조적 사고가 개발자의 핵심 역량이 될 것임을 주장
- 코딩 에이전트는 코드 에디터, 터미널, 웹 브라우저 등 개발자가 사용하는 주요 도구에 접근하여 사용자의 명령을 자체적으로 실행할 수 있음
- GitHub Copilot의 코드 자동완성 등 기존 도구와 달리, Open Hands 등은 비교적 장시간(5~15분) 자율적으로 작업을 수행하고 결과를 제시함
- 에이전트의 핵심 구조는 LLM(대형 언어 모델)과 실제 세계 간의 반복적 상호작용(읽기, 편집, 실행 등)에 기반함
- 파일 편집 시 토큰 낭비를 최소화하기 위해 diff 기반 편집, AST 활용 등 다양한 최적화 기법 활용; 터미널, 웹 브라우저와의 연동에는 여러 난제가 존재함
- 안전성 강화를 위해 Docker 컨테이너 내에서 분리 실행하고, API 접근 권한은 최소 범위로 제한
- 효과적으로 에이전트를 사용하려면 소규모 명확한 작업부터 시작하고, 작업의 완료 조건을 분명히 제공하며, 반드시 인간이 결과를 검토해야 함을 강조
- 일상적인 병합 충돌 해결, PR 피드백 반영, 테스트 보완, 버그 수정, 인프라 작업 등 다양한 실제 예시와 구체적 워크플로우 공유
- 프로덕션 코드 자동 머지의 위험성을 경고하며, 소프트웨어 인력 수준의 검증과정이 필수적임을 누차 강조함
세부 요약 – 주제별 정리
코딩 에이전트의 등장으로 개발자는 점점 더 비생산적 코딩에서 벗어나 문제 정의와 분석에 집중하게 됨
- 2025년 소프트웨어 개발 환경은 AI에 의해 근본적으로 변화하고 있음
- 개발자 역할의 본질은 단순히 코드를 작성하는 행위에서 조직의 비즈니스 목표와 사용자 요구, 장기적 아키텍처 설계 등 보다 비판적이고 창의적인 작업으로 이동함
- AI는 반복적이고 구체적인 코딩 루프(코드 작성-실행)에는 매우 강하나, 큰 그림과 사용자 맥락, 비즈니스 이해 등에는 한계가 있음
- 따라서 개발자의 가치는 “코드 타이핑” 자체가 아니라 문제를 깊게 사고하고 구조적으로 접근하는 데 있음
- 성공적인 AI 기반 개발 환경에서는 IDE 앞에서 세부 코드를 짜는 시간보다, 큰 방향과 설계 고민에 더 많은 시간을 쓸 수 있음
코딩 에이전트는 인간 개발자의 핵심 도구(에디터, 터미널, 브라우저)를 활용하여 실질적 작업을 수행함
- “에이전트”란 본질적으로 실제 세계에서 행동(액션)할 수 있는 존재임
- 개발 업무의 3대 도구인 코드 에디터(수정·이동), 터미널(코드 실행), 웹 브라우저(문서 검색 및 코드 복사)를 에이전트에게도 제공
- 이러한 도구 조합을 통해 인간 개발자처럼 개발 전 과정을 순환적으로 자동화할 수 있음
- Copilot 등 초창기 툴은 코드 자동완성에 그쳤으나, AI 파워드 IDE, Devon, Open Hands 등은 다수 작업을 인간 개입 없이 완수 가능
- 사용자는 간단한 명령(1~2문장)만 주고, 에이전트는 준비·실행·피드백을 반복하여 결과를 가져옴
- 여러 에이전트를 동시에 활용해 병렬적 생산성 증가도 가능함
에이전트는 LLM과 외부 세계의 반복적 상호작용을 기반으로 동작함
- 기본 구조는 ‘대형 언어 모델(LLM)‘이 두뇌 역할을 하고, 실제 세계에 명령(편집, 실행 등)을 내림
- 각 단계에서 LLM은 “다음 행동”을 결정(예: 파일 읽기, 코드 편집, 명령 실행, 웹 탐색)
- 실행 결과(예: 터미널 출력, 웹문서 내용 등)는 LLM에 다시 투입되어 다음 단계 의사결정을 유도
- 이러한 루프를 여러 차례 거치면서 목표 완료에 접근
파일 편집, 터미널, 브라우저 등 각 도구 연동에는 효율성과 복잡성을 고려한 다양한 최적화가 필요함
- 파일 편집의 경우, 전체 파일을 반복적으로 전달하는 것보다 diff 기반 또는 find & replace 방식 활용이 효율적임
- 추상 구문 트리(AST) 제공 등을 통해 코드베이스 내비게이션도 한층 정교하게 가능
- 터미널 연동 시 장시간 실행되는 명령, 병렬 처리, 백그라운드 실행 등 문제 대응 필요
- 웹 브라우저 연동은 데이타(HTML) 양이 방대해 토큰 낭비가 심하므로, 접근성 트리 변환, Markdown 변환, 스크롤링 제어, 스크린샷 제공 등 다양한 차별화 접근법 시도
- 최근 1개월 사이, 웹 브라우징 정확도가 두 배 향상되는 기여도 있었음(액티브 리서치 영역임)
에이전트의 위험 행위를 막기 위해 Docker 기반 샌드박싱과 원격 자격증명 관리는 필수적임
- 에이전트 작업은 기본적으로 Docker 컨테이너 내에서 격리 실행되어, 사용자의 실제 워크스테이션 파일 손상 위험 차단
- 점차적으로 GitHub 토큰, AWS 계정 등 외부 API 자격증명 접근 가능성이 높아지고 있어, 최소 권한 원칙 적용이 강력히 요구됨
- API 키나 자격증명은 반드시 엄격한 범위(Control Scope)로 설정해야 함
초기 사용자는 명확하고 작고 빠른 작업 위주로 에이전트를 활용하는 것이 좋다고 권장함
- 한 번에 끝내기 쉬운 단일 커밋, 테스트 통과 확인 등 완료 기준이 뚜렷한 작업이 초보자에게 적합
- 소규모 병합 충돌, 린트 에러, 테스팅 실패 등 반복적이고 지루한 ‘토일’성 업무에 특히 적합
- 작업 검증, 완성도 확인이 사용자에게도 쉬운 일이 이상적
- 에이전트와 협업 경험과 직관이 누적될수록 점점 더 큰 작업을 위임하는 것이 가능해짐
작업 지침(프롬프트)은 구체적일수록 결과가 명확하고 비용도 절감됨
- 원하는 목표뿐 아니라 방법론도 명확히 지정(예: 특정 프레임워크, TDD, 파일/함수명 등)
- 에이전트가 코드베이스 전체를 탐색하는 시간을 줄이고, 토큰 소모 및 비용도 최소화 가능
- 지침의 명확성과 구체성은 실행 속도와 정확도를 동시에 향상시킴
코드 생산 및 폐기에 대한 인식 전환이 필요하며, 결과의 반복적 실험과 폐기도 곧 개발자 역량에 포함됨
- AI 주도 환경에서는 코드 작성 비용이 매우 저렴해져, 자유로운 실험 및 rapid prototyping이 매력적인 워크플로우가 됨
- 작업 결과가 만족스럽지 않을 경우, 누적된 컨텍스트 내에서 대화식 반복 또는 완전한 새 시도(새로운 프롬프트) 중 자유롭게 선택할 수 있음
- 대량의 코드 폐기도 생산적인 프로세스의 일부로 간주해야 하며, ‘다시 시작’하는 데 거리낌 없음이 중요
AI 결과물에 대한 인간의 리뷰와 책임 관리가 필수적임을 여러 사례로 강조함
- 사람이 코드를 직접 리뷰하지 않고 자동으로 머지할 경우, 기술 부채와 중복, 비정상 동작 등의 문제가 누적됨
- 코드를 주기적으로 “풀”해서 작업환경 또는 임시 환경에서 실제 작동 여부 반드시 점검 필요(신뢰하되 검증)
- PR(풀 리퀘스트)이 에이전트의 소유로 표기되던 시절, 책임 소재 불명확 및 검증 소홀로 문제가 발생함
- 개선 방법: 현재는 PR 트리거 사용자의 얼굴(아이덴티티) 표시, 직접 검토 및 최종 머지 책임 명확화
실제로 성공적으로 활용되고 있는 구체적 에이전트 사용례를 수십 가지 예시와 함께 제시함
- 병합 충돌 자동 해결: 오픈핸즈 코어 코드베이스 같이 변화가 잦은 환경에서 99% 성공률로 효과적
- PR 피드백 자동 반영: 의견이 명확히 남겨진 항목을 그대로 실행, 프론트엔드 관련 용어를 모르더라도 프롬프트로만 해결 가능
- 단순 버그 수정: 예를 들어, input 타입 오류(텍스트->숫자 등)를 Slack 등의 채널에서 바로 지시·자동 해결
- 인프라 관련 작업: 테라폼 문법 등 복잡한 작업도 LLM 자체 또는 웹 브라우저 기능 통해 문서 참조/적용 가능
- DB 마이그레이션: 색인, 외래키 등 베스트프랙티스에 따라 처리하여 반복 작업에 적합
- 테스트 실패 자동 수정 및 커버리지 확장: 작은 변경이 필요한 부분에서 높은 효율성 및 안전성 확보
- 사내 도구 등 단기용 애플리케이션 빌드: 엔드유저 대상이 아닌 경우, 코드 검토 생략 후 신속 배포 가능
AI 에이전트로 신속한 내부용(Greenfield) 애플리케이션 개발이 실제로 비즈니스 민첩성을 높이고 있음
- 오픈핸즈에서는 내부용 세션 디버깅 등 소규모 앱을 즉석에서 빠르게 구축해 사용
- 엔드유저에게 직접 노출되지 않는 한, 최소한의 코드 리뷰만 거쳐 출시 가능
- 워크플로우의 속도와 자유도, 반복적 개선 측면에서 대폭 효율 개선
활발한 오픈소스 커뮤니티 활동과 참여를 독려하며 마무리함
- 오픈핸즈 프로젝트의 GitHub, Slack, Discord 커뮤니티 안내로 영상이 종료됨
- 개발 경험 공유 및 신규 사용자의 적극적 참여와 협업를 권장함