오늘도 공부
Loop 방식의 에이전트 (Loom) 본문

AI 코딩 에이전트의 다음 단계: Loom은 왜 “프롬프트”가 아니라 “전달 체계”를 말하는가
요즘 개발자들은 Claude Code, Codex, OpenCode 같은 AI 코딩 에이전트를 점점 더 자연스럽게 사용한다. 간단한 컴포넌트 수정, API 작성, 테스트 코드 생성 정도는 이제 꽤 익숙한 작업이 됐다.
그런데 실제 제품 개발에 AI 에이전트를 붙여 보면 곧 다른 문제가 드러난다.
AI는 코드를 꽤 잘 짠다. 하지만 끝까지 책임지고 전달하는 일은 여전히 어렵다. 요구사항을 기억하고, 작업을 쪼개고, 검증하고, 실패하면 고치고, 중간에 세션이 끊겨도 다시 이어가고, 마지막에는 사람이 확인할 수 있는 근거까지 남기는 일 말이다.
valkor-ai/loom은 바로 이 지점을 겨냥한 오픈소스 프로젝트다. Loom은 스스로를 “agentic software delivery를 위한 loop engineering” 도구라고 설명한다. 기존 코딩 에이전트를 대체하는 모델이나 에디터가 아니라, Claude Code, Codex, OpenCode 같은 에이전트를 반복 가능하고 검증 가능한 소프트웨어 전달 시스템으로 바꾸는 “delivery harness”다.
한 줄로 말하면
Loom은 AI 코딩 에이전트에게 “코드만 작성하게 하는 도구”가 아니라, 요구사항 확인 → 계획 → 구현 → 검증 → 수정 → 미리보기 → 인수인계까지 이어지는 작업 루프를 제공하는 오픈소스 전달 레이어다.
쉽게 말하면 이런 차이다.
기존 방식은 보통 이렇다.
“이 기능 만들어줘.”
그러면 AI가 코드를 작성한다. 운이 좋으면 바로 작동한다. 하지만 프로젝트가 커지면 문제가 생긴다. AI가 이전 요구사항을 잊거나, 일부만 구현하고 완료했다고 말하거나, 테스트 없이 자신 있게 답하거나, 세션이 끊긴 뒤 같은 파일을 다시 읽으며 토큰을 낭비한다.
Loom은 이 흐름을 다음처럼 바꾸려 한다.
“요구사항을 구조화하고, 작업을 나누고, 각 작업의 결과를 기록하고, 검증하고, 실패하면 수리 요청을 만들고, 다음 세션에서도 이어서 진행하자.”
즉, Loom의 핵심은 AI에게 더 좋은 프롬프트를 주는 것이 아니라, AI가 장기 작업을 수행할 때 필요한 상태, 절차, 근거, 복구 루프를 만들어 주는 것이다.
왜 이런 도구가 필요한가
AI 코딩 도구의 가장 큰 착각은 “코드를 잘 쓰면 개발이 끝난다”는 생각이다. 실제 소프트웨어 개발은 코드 작성보다 훨씬 넓다.
요구사항을 확인해야 하고, 아키텍처 결정을 내려야 하며, 작업 단위를 나눠야 한다. 백엔드 상태, 환경 변수, 데이터베이스, 인증, 스토리지, 런타임 조건도 챙겨야 한다. UI라면 화면 흐름, 반응형 상태, 접근성, 인터랙션까지 고려해야 한다. 이후에는 테스트를 돌리고, 로그를 확인하고, 실패를 고친 뒤 다시 검증해야 한다.
Loom의 README도 이 문제를 명확히 짚는다. 웹사이트나 앱 생성 자체는 점점 쉬워지고 있지만, 더 어려운 문제는 “신뢰할 수 있는 전달”이라고 본다. 특히 장기 작업에서는 부분 완료, 목표 이탈, 자기검증 편향, 토큰 낭비, 인수인계 공백 같은 문제가 반복적으로 발생한다고 설명한다.
이 지점에서 Loom은 프롬프트 파일이나 단발성 워크플로와 구분된다. 단순히 CLAUDE.md, AGENTS.md, .cursorrules 같은 지침 파일을 두는 것이 아니라, 프로젝트 내부의 .loom/ 디렉터리에 작업 상태와 증거를 저장하고, 에이전트 중립적인 CLI 명령으로 다음 단계를 라우팅한다.
Loom의 핵심 개념: “루프”
Loom이 말하는 루프는 단순 반복이 아니다. 소프트웨어 전달 과정 전체를 단계별로 쪼개고, 각 단계의 결과를 기록하며, 실패하면 다시 고치는 구조다.
Loom의 기본 흐름은 다음과 같다.
- 전달 범위 확인
- 압축된 컨텍스트 팩 생성
- 계획, 아키텍처, 작업 계약 생성
- 한 번에 하나의 제한된 작업 실행
- 증거 기록 및 검증 실행
- 리뷰, 수정, 재검증
- 최종 전달 상태 보고
이 흐름은 README의 “How It Works” 섹션에 제시된 Loom의 핵심 루프와 일치한다.
여기서 중요한 표현은 작업 계약(task contract)이다. AI에게 “대충 이 기능 만들어줘”라고 맡기는 것이 아니라, 특정 소스 참조, 수용 기준, 결과 파일, 계속 진행 규칙 등을 가진 작업 단위로 나누는 방식이다. 이렇게 해야 AI가 일부만 만들고 끝났다고 착각하는 문제를 줄일 수 있다.
기존 AI 코딩 도구와 무엇이 다른가
Loom은 Claude Code나 Codex와 경쟁하는 도구라기보다, 그 위에 얹히는 운영 레이어에 가깝다.
Claude Code, Codex, OpenCode는 코드를 작성하고 명령을 실행하는 에이전트다. Loom은 이 에이전트들이 어떤 순서로 일해야 하는지, 무엇을 기억해야 하는지, 어떤 근거를 남겨야 하는지 관리한다.
예를 들어 Codex에서는 다음처럼 사용할 수 있다.
@loom build a visitor registration system
@loom plan this feature first
@loom continue
@loom review
@loom deploy
Claude Code와 OpenCode에서는 /loom build, /loom continue, /loom review, /loom deploy 같은 명령 형태로 사용한다. Loom은 Codex, Claude Code, OpenCode용 로컬 어댑터 설치를 지원하며, 각 어댑터는 동일한 Loom 전달 프로토콜을 사용한다.
이 구조의 장점은 명확하다.
하나의 AI 에이전트에 종속되지 않는다. 오늘은 Codex를 쓰고, 내일은 Claude Code를 쓰더라도, Loom이 저장한 전달 상태를 중심으로 이어갈 수 있다. 프로젝트 로컬 상태가 .loom/에 저장되기 때문이다.
토큰 절약이라는 현실적인 장점
AI 개발 자동화에서 토큰 비용은 생각보다 큰 문제다. 특히 대형 코드베이스에서 에이전트가 매번 전체 저장소를 다시 읽거나, 이미 파악한 내용을 반복해서 요약하면 비용과 시간이 빠르게 증가한다.
Loom은 프로젝트 요약, 작업 그래프, 백엔드 상태, 테스트 결과, 배포 증거 등을 저장해 에이전트가 매번 전체 맥락을 다시 읽지 않도록 설계되어 있다. README에서는 이를 “Token-Saving Context”로 설명한다.
공개된 11개 케이스 benchmark 결과에서는 Codex 단독 실행과 Codex + Loom 실행을 비교했을 때, Codex + Loom이 전체 468,067 토큰 대비 394,037 토큰을 사용해 74,030 토큰, 즉 15.8%를 절약했다고 제시되어 있다. 또한 11개 중 8개 케이스에서 토큰을 덜 사용했고, 완료율은 양쪽 모두 100%로 기록되어 있다.
다만 이 수치는 프로젝트 측 벤치마크 결과다. 외부 독립 검증 결과는 아니므로, 실제 효과는 코드베이스 규모, 에이전트 종류, 작업 유형에 따라 달라질 수 있다.
설치와 기술 스택
Loom은 Node.js 기반 프로젝트다. package.json 기준 버전은 0.1.0, 라이선스는 Apache-2.0이며, TypeScript로 빌드되는 CLI 도구 구조를 갖고 있다. 의존성에는 commander, yaml, zod, pdf-parse, mammoth 등이 포함되어 있다.
기본 설치 흐름은 다음과 같다.
git clone https://github.com/valkor-ai/loom.git
cd loom
npm install
그다음 사용하는 에이전트에 따라 어댑터를 설치한다.
npm run plugin:install-codex
npm run plugin:install-claude
npm run plugin:install-opencode
여러 에이전트를 함께 테스트하려면 다음 명령을 사용할 수 있다.
npm run plugin:install-adapters
Loom은 Node.js 20 이상과 npm을 요구하며, loom deploy 기능을 위해 Docker가 필요하다고 문서에 명시되어 있다.
사용방법
Loom 사용방법은 크게 설치 → 에이전트 어댑터 연결 → 프로젝트에서 Loom 명령 실행 → continue/review/deploy로 반복 흐름입니다.
1. Loom 설치
먼저 GitHub 저장소를 받아옵니다.
git clone https://github.com/valkor-ai/loom.git
cd loom
npm install
Loom은 Node.js 20 이상, npm이 필요하고, loom deploy를 쓰려면 Docker가 필요합니다. 공식 README에도 prerequisites로 Node.js >= 20, npm, 사용하는 코딩 에이전트 CLI, Docker가 명시되어 있습니다. (GitHub)
2. 사용하는 AI 코딩 에이전트에 맞게 어댑터 설치
Loom은 단독으로 쓰는 앱이라기보다 Codex, Claude Code, OpenCode 같은 코딩 에이전트 안에서 명령어로 호출하는 방식입니다.
Codex용
npm run plugin:install-codex
Claude Code용
npm run plugin:install-claude
OpenCode용
npm run plugin:install-opencode
전부 설치
npm run plugin:install-adapters
공식 문서 기준으로 각 어댑터 설치 스크립트는 CLI를 빌드하고, ~/.loom/bin/loom-cli 런처와 각 에이전트용 로컬 어댑터 파일을 갱신합니다. (GitHub)
3. 설치 확인
사용 중인 에이전트 안에서 확인합니다.
Codex
@loom status
Claude Code / OpenCode
/loom status
처음 사용하는 프로젝트라면 STATE_NOT_INITIALIZED가 나올 수 있는데, 이것은 오류가 아니라 아직 해당 프로젝트에서 Loom delivery가 시작되지 않았다는 뜻입니다. (GitHub)
4. 실제 프로젝트에서 Loom 시작하기
예를 들어 방문자 등록 시스템을 만들고 싶다면:
Codex
@loom build a visitor registration system
Claude Code / OpenCode
/loom build a visitor registration system
한국어로도 이렇게 지시할 수 있습니다.
@loom build 관리자용 방문자 등록 시스템을 만들어줘. 방문자는 이름, 연락처, 방문 목적, 방문 시간을 입력하고 관리자는 목록을 확인할 수 있어야 해.
Claude Code나 OpenCode라면:
/loom build 관리자용 방문자 등록 시스템을 만들어줘. 방문자는 이름, 연락처, 방문 목적, 방문 시간을 입력하고 관리자는 목록을 확인할 수 있어야 해.
이 명령을 실행하면 Loom이 프로젝트 안에 .loom/ 상태를 만들고, 요구사항 확인, 계획, 작업 분해, 구현, 검증 흐름을 시작합니다. Loom은 프로젝트 로컬 전달 상태를 .loom/ 아래에 저장한다고 공식 문서가 설명합니다. (GitHub)
5. 먼저 계획만 세우게 하기
바로 구현시키기보다 먼저 설계를 보고 싶으면:
Codex
@loom plan this feature first
Claude Code / OpenCode
/loom plan this feature first
예:
@loom plan 회원 초대 기능을 먼저 설계해줘. 초대 링크 생성, 이메일 전송, 만료 시간, 권한 처리를 포함해야 해.
이렇게 하면 AI가 바로 코드를 수정하기 전에 요구사항, 아키텍처, 작업 단위를 정리하는 흐름으로 갑니다.
6. 중단 후 이어서 진행하기
Loom에서 가장 중요한 명령은 continue입니다.
작업 중간에 세션이 끊겼거나, AI가 멈췄거나, 다음 단계가 뭔지 애매할 때는 내부 명령을 추측하지 말고 continue를 실행하는 방식입니다.
Codex
@loom continue
Claude Code / OpenCode
/loom continue
공식 README에서도 세션을 다시 열었거나, 중단 이후 또는 다음 내부 단계가 확실하지 않을 때 continue를 먼저 실행하라고 설명합니다. (GitHub)
7. 리뷰 실행하기
구현된 결과를 검토하게 하려면:
Codex
@loom review
Claude Code / OpenCode
/loom review
Loom의 핵심은 구현과 검증을 분리하는 것입니다. 공식 문서도 review, verification, repair requests, evidence records를 통해 구현과 검증을 분리한다고 설명합니다. (GitHub)
8. 로컬 미리보기 / 검증하기
@loom deploy
또는
/loom deploy
주의할 점은 여기서 말하는 deploy가 프로덕션 배포는 아니라는 것입니다. 현재 Loom의 배포 지원은 로컬 Docker Compose 미리보기, 검증, 로그, 수리 가이드 중심이며, production deployment는 아직 미지원이라고 FAQ에 명시되어 있습니다. (GitHub)
실제 사용 흐름 예시
예를 들어 Next.js 프로젝트에서 관리자 페이지를 만든다고 하면 이렇게 쓸 수 있습니다.
cd my-next-app
codex
Codex 안에서:
@loom build 관리자 대시보드를 만들어줘. 로그인한 관리자만 접근 가능해야 하고, 사용자 목록, 검색, 상태 변경 기능이 필요해.
그다음:
@loom continue
계획을 보고 싶으면:
@loom plan this feature first
구현이 끝난 뒤 검토:
@loom review
로컬 검증:
@loom deploy
문제가 있으면 다시:
@loom continue
이 흐름을 반복하는 방식입니다.
개인 개발자 기준 추천 사용법
처음부터 큰 프로젝트 전체를 맡기기보다, 기능 단위로 쓰는 게 좋습니다.
좋은 예:
@loom build 게시글 작성, 수정, 삭제 기능을 만들어줘. 기존 Prisma 스키마와 Next.js App Router 구조를 유지해줘.
더 좋은 예:
@loom plan 게시글 작성, 수정, 삭제 기능을 먼저 설계해줘. DB 스키마 변경이 필요한지 확인하고, API route와 UI 컴포넌트 작업을 나눠줘.
피하는 게 좋은 예:
@loom build 인스타그램 같은 앱 만들어줘
너무 범위가 커서 요구사항 확인 단계가 길어지고, 결과 품질도 흔들릴 가능성이 큽니다.
한 줄 사용 공식
처음 시작:
@loom build 만들 기능 설명
설계부터:
@loom plan 기능 설명
중간 이어가기:
@loom continue
검토:
@loom review
로컬 미리보기/검증:
@loom deploy
Claude Code와 OpenCode에서는 @loom 대신 /loom을 쓰면 됩니다.
정리하면, Loom은 “한 번에 코드 만들어줘”가 아니라 AI 코딩 에이전트에게 계획, 구현, 검증, 수리, 인수인계 루프를 태우는 방식으로 사용하는 도구입니다.
어떤 상황에서 유용한가
Loom이 빛나는 상황은 단순 코드 수정이 아니다. 오히려 다음과 같은 작업에서 의미가 크다.
첫째, 기능 하나가 여러 파일과 레이어를 건드릴 때다. 예를 들어 회원 초대 기능을 만든다면 UI, API, 권한, 이메일, 데이터베이스, 테스트가 함께 얽힌다. 이런 작업은 단발 프롬프트보다 계획과 검증 루프가 중요하다.
둘째, 에이전트 작업이 여러 세션에 걸쳐 이어질 때다. AI 코딩 도구는 세션이 길어질수록 컨텍스트 압축이나 누락 문제가 생긴다. Loom은 작업 상태를 프로젝트 내부에 저장해 continue 명령으로 다음 단계를 재개하도록 설계되어 있다.
셋째, 결과물에 대한 증거가 필요할 때다. “완료했습니다”라는 말만으로는 부족하다. 어떤 테스트를 돌렸는지, 어떤 로그를 확인했는지, 어떤 미리보기 결과가 있었는지 기록되어야 한다. Loom은 검증, 수리 요청, 배포 미리보기, 전달 보고서를 일급 단계로 다룬다.
넷째, 여러 AI 코딩 에이전트를 병행하고 싶을 때다. Codex, Claude Code, OpenCode를 각각 따로 쓰면 작업 방식과 명령 체계가 흩어진다. Loom은 이들을 공통 전달 프로토콜로 묶으려는 접근을 취한다.
사용 사례
Loom 문서에는 AI 제품 런칭 사이트, 크리에이터 분석 워크스페이스, 인터랙티브 캠페인 마이크로사이트, 비행 시뮬레이터, 퀀트 트레이딩 워크벤치, 생물다양성 리서치, 영양 건강 앱 같은 예시 사용 사례가 나열되어 있다.
이 목록을 보면 Loom이 단순 “코드 수정 보조”가 아니라, 작은 제품이나 프로토타입을 끝까지 만들어 전달하는 워크플로를 겨냥하고 있음을 알 수 있다.
특히 개인 개발자나 소규모 팀이 AI로 빠르게 MVP를 만들 때 유용해 보인다. 바이브 코딩으로 데모를 만드는 단계에서 한 걸음 더 나아가, 실제로 검증 가능한 전달물을 만들고 싶은 경우에 맞다.
한계도 분명하다
Loom은 흥미로운 도구지만, 아직 모든 것을 해결하는 완성형 플랫폼으로 보기는 어렵다.
첫째, 현재 production 배포 기능은 제공하지 않는다. README의 FAQ에 따르면 production deployment는 아직 추가 예정이며, 현재 배포 지원은 로컬 Docker Compose 미리보기, 검증, 로그, 수리 가이드에 초점을 둔다.
둘째, 초기 버전이다. package.json 기준 버전이 0.1.0이고, 저장소도 빠르게 변할 가능성이 있다. 실제 팀 워크플로에 적용하려면 파일 생성 방식, .loom/ 상태 관리, CI/CD 연동, 보안 정책 등을 직접 검토해야 한다.
셋째, AI 에이전트 자체의 품질 문제를 완전히 없애는 도구는 아니다. Loom은 루프, 상태, 검증 절차를 제공하지만, 최종 구현 품질은 여전히 사용하는 에이전트, 모델, 테스트 환경, 개발자의 리뷰 역량에 영향을 받는다.
넷째, 팀 단위 사용에서는 규칙 설계가 필요하다. .loom/ 디렉터리를 Git에 포함할지, 어떤 증거를 남길지, 민감한 로그나 환경 정보가 기록되지 않도록 어떻게 관리할지 정해야 한다.
그래서 Loom의 의미는 무엇인가
Loom의 가장 큰 의미는 AI 코딩의 관심사를 “생성”에서 “전달”로 옮긴다는 점이다.
지금까지 많은 AI 코딩 도구는 “얼마나 코드를 잘 생성하는가”에 집중했다. 그러나 실제 개발 현장에서 더 중요한 질문은 다르다.
이 기능이 요구사항을 충족했는가?
검증했는가?
실패했을 때 다시 고쳤는가?
다음 사람이 이어받을 수 있는가?
중간에 세션이 끊겨도 복구할 수 있는가?
사용한 에이전트가 바뀌어도 같은 맥락에서 이어갈 수 있는가?
Loom은 이 질문들에 답하려는 시도다.
[Inference] 앞으로 AI 코딩 도구의 경쟁력은 단순한 코드 생성 능력보다, 이런 전달 루프를 얼마나 안정적으로 설계하느냐로 이동할 가능성이 크다. Loom은 그 방향을 비교적 명확하게 보여주는 프로젝트다.
정리
Loom은 “AI 코딩 에이전트를 더 똑똑하게 만드는 도구”라기보다, AI 코딩 에이전트가 일을 끝까지 하게 만드는 운영 체계에 가깝다.
코드는 AI가 쓴다.
하지만 요구사항을 보존하고, 작업을 나누고, 검증하고, 실패를 복구하고, 다음 세션으로 이어주는 것은 별도의 시스템이 필요하다.
Loom은 그 시스템을 오픈소스로 만들려는 시도다.
아직 초기 단계이고, production deployment 같은 영역은 미완성이다. 그럼에도 AI 기반 개발 자동화를 진지하게 고민하는 개발자라면 살펴볼 가치가 있다. 특히 Claude Code, Codex, OpenCode를 단순한 “코딩 도우미”가 아니라 “소프트웨어 전달 파이프라인의 일부”로 쓰고 싶다면 Loom의 접근 방식은 꽤 중요한 힌트를 준다.
짧은 요약
Loom은 Claude Code, Codex, OpenCode 같은 AI 코딩 에이전트를 위한 오픈소스 delivery harness다. 단순히 코드를 생성하는 것이 아니라, 요구사항 확인, 계획, 작업 분해, 구현, 검증, 수리, 미리보기, 인수인계까지 이어지는 반복 가능한 전달 루프를 만든다. .loom/에 프로젝트 상태와 작업 증거를 저장하고, @loom continue 또는 /loom continue 같은 명령으로 중단된 작업을 이어갈 수 있다. 공개 벤치마크에서는 Codex + Loom 조합이 Codex 단독 대비 15.8% 토큰을 절약했다고 제시되어 있다. 다만 현재 production 배포는 지원하지 않고, 로컬 Docker Compose 기반 미리보기와 검증 중심이다.
GitHub - valkor-ai/loom: Loop engineering for agentic software delivery.
Loop engineering for agentic software delivery. Contribute to valkor-ai/loom development by creating an account on GitHub.
github.com
'AI > 추천 오픈소스' 카테고리의 다른 글
| AI 코딩 에이전트가 코드를 너무 많이 쓴다면: Ponytail (0) | 2026.06.19 |
|---|
