OpenClaw와 Claude Code 연동 실습: 사고(思考)와 실행을 분리하는 AI 개발 설계
요약
본 기사는 AI 코딩 에이전트의 복잡한 작업을 설계할 때 발생하는 '컨텍스트 오염'과 '재현성 부족' 문제를 다룹니다. 이를 해결하기 위해 OpenClaw(사고/기억/지시)와 Claude Code(개발/실행)를 역할 분담시키는 아키텍처를 제안합니다. 이 구조는 장기 방침을 별도의 메모리 레이어에 저장하고, 실행 에이전트가 이를 참조하여 일관성 있는 개발 프로세스를 유지하도록 설계하는 실무 가이드입니다.
핵심 포인트
- OpenClaw와 Claude Code의 역할 분담으로 컨텍스트 오염 및 재현성 부족 문제 해결
- 사고/기억 레이어는 장기 방침과 과거 의사결정을 축적하고, 실행 레이어는 코드 생성에 집중
- 메모리층을 별도의 파일이나 프로세스로 분리하여 에이전트의 컨텍스트 윈도우 효율화
- Product Owner와 엔지니어처럼 역할을 명확히 나누는 것이 AI 개발 설계의 핵심
2026년 10월 현재, AI 코딩 에이전트를 본 서비스 운영에 통합하는 개발자가 급증하고 있다. 하지만 현장에서 자주 듣는 고민은 '에이전트가 이전 판단을 기억하지 못한다', '장기적인 방침과 그 자리의 코드 실행이 뒤섞여 흐트러진다'는 것이다.
이러한 고민을 해결하는 설계 패턴이 바로 OpenClaw(사고/기억/지시 레이어)와 Claude Code(개발/실행 레이어)를 역할 분담시키는 아키텍처이다. 본 기사에서는 이 연동의 구체적인 설계 방법, 설정 파일 작성법, 로컬 기억층에 SQLite의 벡터 검색 확장 vec1을 사용하는 방법, 그리고 간과하기 쉬운 보안 요구사항까지 실무 관점에서 정리한다.
기사 후반부에서는 이러한 '데이터 분석' 스킬이 SES 엔지니어나 프리랜서 엔지니어의 커리어에 어떻게 영향을 미치는지도 다룬다. AI 시대의 엔지니어가 되기 위한 연봉과 실제 상황을 생각하는 힌트로 읽어주었으면 한다.
AI 에이전트에게 복잡한 작업을 맡길 때 문제가 되는 것은 크게 두 가지가 있다.
- 컨텍스트 오염(Context Pollution): 하나의 에이전트에게 '과거 의사결정의 기억'과 '지금 작성하는 코드의 문맥'을 동시에 지니게 하면, 어느 쪽의 정확도도 떨어지게 된다. -
재현성 부족(Lack of Reproducibility): 같은 지시를 내리더라도, 기억 방식이 휘발적이면 매번 다른 동작을 하게 된다.
이를 해결하기 위해 역할을 명확히 분리한다.
| 레이어 | 담당 | 구체적인 예시 |
|---|---|---|
| 사고/기억/지시 (OpenClaw 측) | 장기 방침 유지, 과거 의사결정 축적, 태스크 우선순위 지정 | 프로젝트 방침 메모, 과거 실패 패턴, 사용자 선호도 |
| 개발/실행 (Claude Code 측) | 실제 코드 생성, 파일 조작, 테스트 실행, 배포 | Git 조작, 빌드, CI 실행, 서브 에이전트에 의한 병렬 조사 |
이러한 분리는 새로운 발상이 아니며, 인간 팀으로 치면 '제품 오너(Product Owner)가 방침을 정하고, 엔지니어가 구현하는' 구조와 가깝다. AI 에이전트 사이에서도 이러한 분업을 명시적으로 설계하면 태스크의 길 잃음이 줄어든다.
실무에서 이 구성을 만들 경우, 디렉토리와 파일의 소유 방식을 먼저 확정해 두면 운영이 수월해진다.
project-root/
├── CLAUDE.md # Claude Code로의 상시 지시 (프로젝트 규약)
├── memory/ # 장기 기억 (OpenClaw가 읽고 쓰는 것으로 예상되는 영역)
...
핵심은, OpenClaw가 '무엇을 기억해야 할지'를 판단하고, Claude Code가 '그것을 어떻게 실행에 옮길지'를 판단하는 흐름을 파일이라는 물리적인 경계로 나누는 것이다. 기억층을 별도의 파일/별 프로세스에 두면, 실행 에이전트의 컨텍스트 윈도우를 불필요하게 소비하지 않을 수 있다.
## 기억 운영 규칙
- 비자명한 태스크에 착수하기 전에, memory/MEMORY.md 를 확인하여 관련 과거 판단을 참조할 것
- 사용자로부터 수정/확인을 받으면, tasks/lessons.md 에 교훈으로 추가할 것
...
---
name: feedback-no-mock-db
description: DB는 실제 것을 사용한다. 모의(Mock)로 통과한 테스트가 본 서비스 장애를 놓친 사례의 교훈
...
이처럼 OpenClaw 측에서 축적한 '왜 그렇게 하는지'라는 문맥을 Claude Code 실행 시마다 읽어 들림으로써, 에이전트가 같은 지적을 반복적으로 받는 상황을 막을 수 있다.
Claude Code에는 조사계 태스크를 전용 서브 에이전트에 투하하는 메커니즘이 있다. 사고/기억 레이어가 '무엇을 조사해야 할지'를 결정하고, 실행 레이어가 그것을 병렬로 처리하는 이미지이다.
# 예: 여러 우려 사항을 동시에 조사시키기
「인증 관련 기존 구현을 조사해 줘」→ Explore 에이전트에 위임
「설계 방침을 3가지 패턴으로 내서 비교해 줘」→ Plan 에이전트에 위임
여기서 중요한 것은, 조사 결과를 그대로 기억층에 다시 쓰지 않고, '놀라움이 있었는지', '다음 판단에 영향을 미칠지'를 인간 또는 OpenClaw 측에서 평가한 후에 저장한다는 한 단계의 수고로움이다. 모든 것을 무차별적으로 기억하면, 기억층이 노이즈로 팽창하고 참조 비용이 높아진다.
최근 Zenn 트렌드에서 화제가 되고 있듯이, SQLite 본체에 벡터 검색 확장 vec1이 통합되는 움직임이 진행되고 있다. 이는 '사고/기억 레이어'를 자체적으로 경량화하여 갖고 싶은 경우에 적합하다. 외부의 벡터 DB 서비스를 세우지 않고도, 로컬의 SQLite 파일 하나로 기억의 유사 검색을 할 수 있게 된다.
기본적인 사용 이미지(예시)는 다음과 같다 (확장 로드 방법이나 API는 버전에 따라 달라지므로, 실제 도입 시에는 공식 리포지토리의 최신 문서를 확인해야 한다).
-- vec1 확장을 로드한 후, 기억용 테이블을 생성하는 예시
CREATE VIRTUAL TABLE memory_vectors USING vec1(
embedding float[768]
...
-- 유사한 과거의 기억을 검색하는 이미지 (distance가 작을수록 가까움)
SELECT m.title, m.memory_type, v.distance
FROM memory_vectors v
...
이 구성의 장점은 명확하다.
- 외부 관리형 벡터 DB에 의존하지 않기 때문에 운영 비용과 데이터 유출 위험이 낮아진다
- SQLite 파일 단위로 백업 및 마이그레이션이 가능하여, 기억 계층(memory layer)을 옮기기가 용이하다
- OpenClaw 측에서 이 SQLite 파일을 직접 참조하고, Claude Code 실행 전에 '관련 기억'을 주입하는 파이프라인을 구축하기 쉽다
한편, 임베딩 모델 선정, 인덱스 크기와 검색 속도의 트레이드오프(trade-off), 기억의 시간 경과에 따른 열화(古い情報の棚上げ)를 어떻게 처리할지는 별도로 설계가 필요하다.
Qiita에서도 최근 Security 태그의 글이 지속적으로 주목받고 있지만, '사고/기억' 레이어와 '실행' 레이어를 연계시키는 구성은 보안 설계를 소홀히 할 경우 위험도가 급격히 높아지는 영역이다. 주의할 점을 정리한다.
- 프롬프트 인젝션(Prompt Injection) 대책: 기억 파일이나 외부 소스에서 읽어온 텍스트에 실행 에이전트에게 전달되는 지시가 숨겨져 있지 않은지 경계해야 한다. 외부 데이터를 다루는 도구 결과는 '정보'로 취급하고, 무조건 '지시'로 실행해서는 안 된다.
- 최소 권한의 원칙(Principle of Least Privilege): 실행 레이어(Claude Code)에 부여하는 권한은 해당 작업에 필요한 범위로 한정해야 한다. 파괴적인 조작(force push, DB 삭제 등)은 자동 실행 대상에서 제외하고, 인간의 승인을 거쳐야 한다.
- 기억 계층으로 민감 정보 혼입 방지: API 키나 개인 정보를 기억 파일에 기록하지 않는 규칙을 CLAUDE.md 등에 명문화해 두어야 한다.
- 실행 로그의 감사성(Auditability): 후크 메커니즘 등으로 어떤 명령이 언제 실행되었는지 기록하여, 나중에 추적할 수 있도록 해야 한다.
이러한 것들은 OpenClaw 측 또는 Claude Code 측 어느 한쪽만으로 보장될 수 있는 것이 아니며, 양 레이어의 경계 설계 자체에 보안을 녹여낼 필요가 있다. 실제로 연동 구성을 짜기 전에 다음 사항들을 확인해 두면 재작업(手戻り)이 줄어든다. 북마크해서 사용했으면 좋겠다.
| 체크 항목 | 확인 내용 |
|---|---|
| □ 기억의 경계 정의 | 무엇을 '장기 기억'으로 남기고, 무엇을 '그 자리 한정 실행 컨텍스트'로 할지 결정했는가 |
| ... | |
| 여기서 잠시 SES 업계 이야기를 꺼내고 싶다. AI 에이전트의 기억 계층/실행 계층을 설계하는 일은 앞으로 '데이터 분석'이 가능한 엔지니어의 시장 가치를 더욱 높일 것으로 보인다. 경제산업성이 공표한 IT 인재 수급에 관한 조사에서도, 미래적인 IT 인재 부족이 반복적으로 지적되고 있으며, 단순 구현 스킬뿐만 아니라 시스템 전체의 설계 및 데이터 활용을 다룰 수 있는 인재의 수요는 구조적으로 증가하는 방향이다 (출처: 경제산업성 'IT 인재 수급에 관한 조사'). |
SES 엔지니어로서 현장에 투입된 사람에게는, 이러한 AI 에이전트 설계/데이터 분석 관련 스킬을 가지고 있는지 여부가 연봉 협상이나 프리랜서 전환 시의 단가에 직결되기 쉽다. SES 엔지니어의 실태로서는, 상주하는 곳의 기술 스택에 의존하여 경험이 편중되기 쉬운 구조가 있기 때문에, 의식적으로 AI/데이터 분석 영역의 스킬을 독학하거나 부업으로 쌓는 사람과 그렇지 않은 사람 간의 차이가 앞으로 더욱 벌어지기 쉽다.
프리랜서 엔지니어로 전환하는 것을 고려할 때의 가이드로는, '지금 상주하는 곳에서만 통용되는 경험'이 아니라, '여러 현장에서 재현 가능한 설계 패턴의 언어화(言語化)'를 의식적으로 기록해 두는 것이 중요하다. 본 기사에서 소개한 기억 계층의 설계 역시 결국은 자신 자신의 판단 프로세스를 언어화하고 축적하는 활동이며, 엔지니어 개인의 커리어 자산 구축 방법으로도 응용할 수 있는 발상이다.
- '사고/기억/지시'와 '개발/실행'을 분리함으로써, AI 에이전트의 불안정성(ブレ)과 폭주 위험을 억제할 수 있다
- 기억 계층은 파일이나 SQLite+vec1 같은 로컬 구성으로 가볍게 유지할 수 있다
- 보안은 나중에 붙이는 것이 아니라, 레이어 경계 설계 단계부터 녹여내야 한다
- 이러한 설계 스킬/데이터 분석 스킬은, SES 엔지니어나 프리랜서 엔지니어의 연봉 및 커리어에도 장기적으로 영향을 미칠 것이다.
AI 에이전트에게 '모든 것'을 맡기기보다는, 무엇을 기억하게 하고(knowledge) 무엇을 실행하게 할지 명시적으로 설계하는 것이 중요합니다. 이것이 2026년 현재 AI 구동 개발에서 사소하지만 효과가 큰 차별화 포인트입니다.
- 직원 3명, 월 매출 250만 엔 규모의 회사가 AI 경영 OS를 만든 구현 기록
- OpenClaw로 9개의 AI 에이전트 경영 OS를 구축한 이야기 | 설정 및 권한 설계 전격 공개
- 프리랜서 엔지니어 연봉 데이터 비교 2026 | 지방 원격 단가와 SES 계약 시 주의점
AI 구동 학원 — AI를 활용하여 스모비즈(SmobiZ) 만드는 법을 배웁니다
Claude Code, OpenClaw, AI 경영 OS의 실전 노하우를 매주 공개하고 있습니다.
월 4,980엔으로 과거 글 전체 무제한 열람 가능.
작성자: 합동회사 Radineer (프리랜서 대상 프로젝트 사이트 FreelanceDB 운영)
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기