Skip to content

컨텍스트 최적화: 분할 세션 실행

학습 완료 후 할 수 있는 것

  • factory continue 명령어를 사용하여 새 세션에서 파이프라인 계속 실행
  • 각 단계가 깨끗한 컨텍스트를 독점적으로 사용하는 이점 이해
  • 토큰 소비를 크게 줄이는 방법 습득
  • 중단 복구 지원, 언제든지 일시 중지 및 계속 가능

현재 직면한 문제점

AI 어시스턴트(예: Claude Code)에서 전체 7단계 파이프라인을 실행할 때 다음과 같은 문제가 발생할 수 있습니다:

  • 토큰 사용량 증가: 대화가 누적됨에 따라 컨텍스트가 점점 길어지고, 각 단계는 이전 모든 단계의 내용을 로드해야 함
  • 비용 상승: 긴 대화는 더 많은 입력 토큰을 의미하며 비용이 급증함
  • 응답 지연: 컨텍스트가 너무 길면 응답 시간이 증가할 수 있음
  • 복구 어려움: 특정 단계가 실패하면 다시 시작할 때 많은 컨텍스트를 다시 로드해야 함

핵심 문제

긴 대화의 컨텍스트 누적은 AI 어시스턴트의 고유한 특성이지만, "분할 세션 실행"을 통해 이 문제를 회피할 수 있습니다.

언제 이 기법을 사용할 것인가

시나리오분할 세션 사용 여부이유
전체 7단계 파이프라인 실행✅ 강력 권장모든 토큰이 귀중함
1-2단계만 실행⚠️ 선택적컨텍스트가 짧아 반드시 필요하지 않음
특정 단계 디버깅⚠️ 선택적빈번한 재시도가 세션 전환 비용을 증가시킬 수 있음
장시간 중단 후 복구✅ 반드시 사용오래된 컨텍스트 로드 방지

핵심 개념

Agent App Factory는 분할 세션 실행을 지원하며, 핵심 아이디어는:

각 단계가 끝나면 새로운 세션에서 다음 단계를 실행합니다.

이렇게 하는 이점:

  1. 깨끗한 컨텍스트: 각 단계는 필요한 입력 파일만 로드하고 대화 기록에 의존하지 않음
  2. 토큰 절약: 이전 모든 단계의 내용을 AI에 반복적으로 전달하는 것을 방지
  3. 복구 가능성: 언제든지 중단하고 나중에 새 세션으로 계속할 수 있으며 진행 상황이 손실되지 않음
  4. 크로스 플랫폼 호환성: 모든 AI 어시스턴트(Claude Code, OpenCode, Cursor 등)에 적용 가능

컨텍스트 격리 전략

분할 세션 실행을 구현하기 위해 Agent App Factory는 컨텍스트 격리 전략을 채택했습니다:

컨텍스트 격리란?

컨텍스트 격리는 각 Agent가 파일 입력에만 의존하고 대화 기록에 의존하지 않는 것을 의미합니다. 이전에 무슨 일이 있었든 Agent는 지정된 입력 파일에서만 정보를 읽습니다.

각 Agent가 실행될 때:

  • 읽기만 pipeline.yaml에 정의된 inputs 파일
  • 사용하지 않음 대화 기록의 어떤 "기억"도
  • 가정하지 않음 이전 단계에서 무슨 일이 있었는지 알고 있다고

예를 들어, Tech Agent가 실행될 때:

mermaid
graph LR
    A[Tech Agent] --> B[artifacts/prd/prd.md 읽기]
    B --> C[artifacts/tech/tech.md 생성]
    C --> D[.factory/state.json 업데이트]

Tech Agent는 artifacts/prd/prd.md만 신경 쓰며, "사용자가 이전에 어떤 앱을 만들고 싶어 했다"고 생각하지 않습니다. 모든 정보는 입력 파일에서 옵니다.

상태 복구 메커니즘

factory continue를 실행하면 시스템은:

  1. .factory/state.json을 읽어 현재 진행 상황 확인
  2. .factory/pipeline.yaml을 읽어 다음 단계 결정
  3. 해당 단계에 필요한 입력 파일만 로드
  4. 새로운 AI 어시스턴트 창을 열어 계속 실행

상태 파일(.factory/state.json)은 전체 시스템의 "기억 중심"입니다:

json
{
  "version": 1,
  "status": "waiting_for_confirmation",
  "current_stage": "tech",
  "completed_stages": ["bootstrap", "prd"],
  "last_updated": "2026-01-29T12:00:00Z"
}

각 단계가 완료되면 상태가 이 파일에 업데이트됩니다. 새 세션이 시작될 때 이 파일만 읽으면 현재 위치를 알 수 있습니다.

🎒 시작 전 준비사항

전제 조건 확인

이 튜토리얼을 시작하기 전에 다음을 확인하세요:

아직 완료하지 않았다면 먼저 이러한 전제 과정을 완료하세요.

따라하기

실제 시나리오를 통해 factory continue 명령어 사용 방법을 학습해 보겠습니다.

시나리오 설정

7단계 파이프라인을 실행 중이며, 현재 bootstrapprd 단계를 완료하고 ui 단계에서 확인을 기다리고 있다고 가정합니다.

1단계: 체크포인트에서 "새 세션으로 계속" 선택

특정 단계가 완료되면 Sisyphus 스케줄러가 옵션 테이블을 표시합니다:

✓ ui 완료!

생성된 산출물:
- artifacts/ui/ui.schema.yaml
- artifacts/ui/preview.web/index.html
- artifacts/ui/preview.web/styles.css
- artifacts/ui/preview.web/app.js

┌─────────────────────────────────────────────────────────────┐
│  📋 다음 단계를 선택하세요                                    │
│  옵션 번호(1-5)를 입력하고 Enter 키를 눌러 확인하세요         │
└─────────────────────────────────────────────────────────────┘

┌──────┬──────────────────────────────────────────────────────┐
│ 옵션 │ 설명                                                  │
├──────┼──────────────────────────────────────────────────────┤
│  1   │ 다음 단계 계속(동일 세션)                             │
│      │ tech 단계를 계속 실행하겠습니다                       │
├──────┼──────────────────────────────────────────────────────┤
│  2   │ 새 세션으로 계속 ⭐ 권장 옵션, 토큰 절약               │
│      │ 새 명령줄 창에서 실행: factory continue               │
│      │ (자동으로 새 Claude Code 창을 열고 파이프라인 계속)   │
├──────┼──────────────────────────────────────────────────────┤
│  3   │ 이 단계 재실행                                        │
│      │ ui 단계를 다시 실행합니다                             │
├──────┼──────────────────────────────────────────────────────┤
│  4   │ 산출물 수정 후 재실행                                 │
│      │ artifacts/prd/prd.md 수정 후 다시 실행합니다          │
├──────┼──────────────────────────────────────────────────────┤
│  5   │ 파이프라인 일시 중지                                  │
│      │ 현재 진행 상황을 저장하고 나중에 계속합니다           │
└──────┴──────────────────────────────────────────────────────┘

💡 팁: 1-5 사이의 숫자를 입력하고 Enter 키를 눌러 선택을 확인하세요

확인해야 할 사항:

  • 옵션 2가 "⭐ 권장 옵션, 토큰 절약"으로 표시되어 있음

현재 세션에서 옵션 5(파이프라인 일시 중지)를 선택한 다음 새 명령줄 창에서 factory continue를 실행할 수 있습니다.

이유

  • 옵션 1은 "다음 단계 계속(동일 세션)"으로, 현재 세션에서 계속하므로 컨텍스트가 누적됨
  • 옵션 2는 "새 세션으로 계속"으로, 새로운 깨끗한 컨텍스트로 다음 단계를 실행하여 토큰 절약
  • 옵션 5는 "파이프라인 일시 중지"로, 현재 진행 상황을 저장하고 나중에 factory continue로 복구 가능

2단계: 새 명령줄 창에서 factory continue 실행

새 터미널 창(또는 탭)을 열고 프로젝트 디렉토리로 이동한 다음 실행:

bash
factory continue

확인해야 할 사항:

Agent Factory - 새 세션에서 계속

파이프라인 상태:
────────────────────────────────────────
프로젝트: my-awesome-app
상태: 대기 중
현재 단계: tech
완료됨: bootstrap, prd

새 Claude Code 세션 시작 중...
✓ 새 Claude Code 창이 시작됨
  (창이 열릴 때까지 기다려 주세요)

발생한 일:

  1. factory continue 명령어가 .factory/state.json을 읽어 현재 상태 확인
  2. 현재 프로젝트의 상태 정보 표시
  3. 자동으로 새 Claude Code 창을 열고 "파이프라인 계속 실행" 명령 전달
  4. 새 창이 자동으로 tech 단계부터 계속 실행

3단계: 새 창에서 계속 실행

새 Claude Code 창이 시작되면 새로운 대화가 표시되지만 상태는 이전에 저장된 체크포인트에서 복구됩니다.

새 세션에서 Agent는:

  1. .factory/state.json을 읽어 현재 단계 확인
  2. .factory/pipeline.yaml을 읽어 해당 단계의 입력 및 출력 결정
  3. 해당 단계에 필요한 입력 파일만 로드(예: artifacts/prd/prd.md)
  4. 해당 단계의 작업 실행

핵심 포인트:

  • 새 세션에는 이전 단계의 대화 기록이 없음
  • Agent는 입력 파일에서만 정보를 읽고 "기억"에 의존하지 않음
  • 이것이 컨텍스트 격리의 구현임

4단계: 컨텍스트 격리 확인

컨텍스트 격리가 작동하는지 확인하려면 새 세션에서 Agent에게 다음과 같이 물어볼 수 있습니다:

"bootstrap 단계에서 무슨 일이 있었는지 알고 있나요?"

컨텍스트 격리가 작동하면 Agent는 다음과 같이 말할 것입니다:

"이전 작업을 이해하려면 관련 파일을 확인해야 합니다. 읽어 보겠습니다..."

그런 다음 input/idea.md 또는 다른 파일을 읽어 정보를 얻으려고 시도하며, 대화 기록에서 직접 "회상"하지 않습니다.

체크포인트 ✅

  • 새 세션 시작 성공
  • 올바른 프로젝트 상태 표시
  • Agent는 입력 파일에만 의존하고 대화 기록에 의존하지 않음

5단계: 남은 단계 계속 실행

각 단계가 완료되면 다음 중 선택할 수 있습니다:

  • 현재 세션에서 계속(옵션 1) - 짧은 프로세스에 적합
  • 새 세션으로 계속(옵션 2) - 권장, 토큰 절약
  • 파이프라인 일시 중지(옵션 5) - 나중에 factory continue 실행

전체 7단계 파이프라인의 경우 각 단계마다 "새 세션으로 계속"을 사용하는 것이 좋습니다:

bootstrap (세션 1) → prd (세션 2) → ui (세션 3) → tech (세션 4)
→ code (세션 5) → validation (세션 6) → preview (세션 7)

각 세션은 깨끗하며 이전 모든 단계의 내용을 로드할 필요가 없습니다.

함정 경고

함정 1: factory continue 실행을 잊음

잘못된 방법:

  • 이전 세션에서 직접 다음 단계 시작
  • 또는 새 창에서 factory continue 없이 직접 Claude Code 열기

올바른 방법:

  • 항상 factory continue 명령어를 사용하여 새 세션 시작
  • 이 명령어는 자동으로 상태를 읽고 올바른 명령을 전달함

함정 2: 새 세션에서 기록 파일을 중복 로드

잘못된 방법:

  • 새 세션에서 AI에게 이전 단계의 산출물을 수동으로 읽도록 요청
  • AI가 이전에 무슨 일이 있었는지 "알아야 한다"고 생각

올바른 방법:

  • 컨텍스트 격리 메커니즘을 신뢰하고 Agent가 자동으로 입력 파일에서 정보를 읽도록 함
  • 해당 단계에 필요한 입력 파일만 제공

함정 3: factory continue를 프로젝트 간 사용

잘못된 방법:

  • 프로젝트 A에서 factory continue를 실행하지만 현재 디렉토리는 프로젝트 B

올바른 방법:

  • factory continue는 현재 디렉토리가 Factory 프로젝트인지 확인함
  • 그렇지 않으면 먼저 factory init을 실행하라는 메시지가 표시됨

함정 4: 산출물 수정 후 factory continue를 사용하지 않음

시나리오:

  • 특정 단계가 완료된 후 수동으로 산출물을 수정함(예: PRD 수정)
  • 다음 단계를 계속 실행하려고 함

올바른 방법:

  • factory run 실행(지정된 단계부터 다시 시작)
  • 또는 factory continue 실행(현재 체크포인트에서 계속)
  • 이전 세션에서 직접 계속하지 마세요. 컨텍스트가 일치하지 않을 수 있음

수업 요약

이 수업에서는 factory continue 명령어를 사용하여 분할 세션 실행을 수행하는 방법을 학습했습니다:

핵심 요점

  1. 분할 세션 실행: 각 단계가 완료되면 새 세션에서 다음 단계 실행
  2. 컨텍스트 격리: Agent는 입력 파일에만 의존하고 대화 기록에 의존하지 않음
  3. 상태 복구: .factory/state.json이 현재 진행 상황을 기록하며 새 세션에서 복구 가능
  4. 토큰 절약: 너무 긴 컨텍스트 로드를 방지하여 비용을 크게 절감

명령어 빠른 참조

명령어기능사용 시나리오
factory continue새 세션에서 파이프라인 계속 실행각 단계 완료 후
factory run현재 세션에서 파이프라인 실행처음 실행 또는 디버깅 시
factory status현재 프로젝트 상태 확인진행 상황 파악 시

모범 사례

  • ✅ 전체 7단계 파이프라인 실행 시 각 단계마다 factory continue 사용
  • ✅ 체크포인트에서 "새 세션으로 계속"(옵션 2) 선택
  • ✅ 컨텍스트 격리 메커니즘을 신뢰하고 기록 파일을 수동으로 로드하지 않음
  • factory status를 사용하여 프로젝트 진행 상황 확인

다음 수업 예고

다음 수업에서는 **권한 및 보안 메커니즘**을 학습합니다.

학습할 내용:

  • 능력 경계 매트릭스가 Agent의 권한 초과를 방지하는 방법
  • 권한 초과 처리 메커니즘 및 신뢰할 수 없는 산출물 격리
  • 보안 체크포인트 및 권한 검증 프로세스
  • Claude Code의 권한 파일 구성 방법

이 수업은 Agent App Factory의 보안 메커니즘을 이해하는 데 도움이 되며, 각 Agent가 승인된 디렉토리에서만 파일을 읽고 쓰도록 보장합니다.


부록: 소스 코드 참조

소스 코드 위치 보기

업데이트 날짜: 2026-01-29

기능파일 경로라인 번호
factory continue 명령어cli/commands/continue.js1-144
스케줄러 컨텍스트 최적화agents/orchestrator.checkpoint.md113-154
컨텍스트 격리 전략policies/context-isolation.md1-64

핵심 함수:

  • launchClaudeCode(projectDir, nextStage, completedStages): 새 Claude Code 창 시작
  • commandExists(cmd): 명령어 사용 가능 여부 확인
  • module.exports(projectDir): factory continue 명령어의 주 함수

핵심 상수:

  • state.json: 상태 파일 경로(.factory/state.json)
  • pipeline.yaml: 파이프라인 정의 파일 경로(.factory/pipeline.yaml)
  • config.yaml: 프로젝트 구성 파일 경로(.factory/config.yaml)

핵심 비즈니스 규칙:

  • BR-6-1: 각 단계는 깨끗한 컨텍스트를 독점적으로 사용
  • BR-6-2: factory continue 명령어를 사용하여 계속
  • BR-6-3: 현재 단계에 필요한 파일만 로드