OpenAI 공식 문서 화면 캡처 · 2026-10-28 · 현재는 ChatGPT 데스크톱 앱 문서
OpenAI Codex 앱 공식 문서 첫 화면. 여러 에이전트를 프로젝트별 스레드로 나란히 돌리는 앱.
프로젝트별 스레드로 여러 에이전트를 나란히, 하나를 보다 다른 하나로 전환
에이전트마다 저장소의 격리된 워크트리(작업용 사본)
스킬과 예약 작업(자동화)을 앱 안에 내장
에이전트마다 워크트리를 따로 줘 서로 덮어쓰지 않는다. 스킬·예약 작업도 앱에 내장.
첫 출시는 macOS 먼저. 발표문 접근이 막혀 날짜·기능은 2차 보도로 확인했다.
7교시에서 손으로 하던 워크트리가 상용 앱의 기본 기능이 되었다.
2026-02-05Claude Code 2.1.32 · agent teams 리서치 프리뷰
agent teams: 팀 리드가 독립된 세션의 팀원들을 이끈다
code.claude.com/docs/en/agent-teams
공식 문서 화면 캡처 · 2026-10-28 확인
Claude Code 공식 문서의 agent teams 설명. 한 세션이 팀 리드, 나머지가 팀원이 되어 작업 목록을 공유.
한 세션이 팀 리드, 나머지는 각자 컨텍스트 창(기억 범위)을 가진 팀원
공유 작업 목록과 메시지함으로 서로 조율
서브에이전트보다 토큰을 많이 쓴다. 실험 기능(환경 변수로 켠다)
팀원끼리 직접 메시지를 주고받고 작업 목록을 공유해, 결과만 돌려주는 서브에이전트보다 조율이 촘촘하다.
토큰을 많이 쓰는 실험 기능. 두 팀원이 같은 파일을 고치면 덮어쓴다(문서 경고).
뒤에서 볼 코디네이터 패턴의 가까운 형제. 담당 파일을 나누는 습관이 필수.
2026-04-02Cursor 3 · Agents Window · /best-of-n
Cursor 3는 에이전트 여러 개를 병렬로 돌리는 새 창을 내놓았다
cursor.com/changelog/3-0
공식 변경 기록 화면 캡처 · 2026-04-02
Cursor 3 변경 기록. Agents Window에서 여러 에이전트를 로컬·클라우드 등 어디서든 병렬로 돌린다는 내용.
여러 에이전트를 병렬로: 로컬 · 워크트리 · 클라우드 · 원격 SSH(Secure Shell, 원격 접속)
/best-of-n: 같은 작업을 여러 모델에 동시에 시켜 가장 나은 결과 고르기
/worktree: 변경을 격리된 워크트리에서
로컬·워크트리·클라우드·SSH 어디서든 병렬 실행. /best-of-n으로 여러 모델의 결과를 비교.
같은 일을 여러 모델에 시키면 실행량도 그만큼 는다. 최선을 비교해 고르는 일이 남는다.
모델별 차이를 도구가 직접 활용한다. IDE(Integrated Development Environment, 통합 개발 환경)와 창을 함께 연다.
워크트리 기반 병렬 에이전트 관리 · 대표 도구 Orca데스크톱 IDE · 2026-03-16 첫 커밋 → 지금
병렬 에이전트 관리의 대표 도구, Orca
onorca.dev/docs
공식 문서 화면 캡처 · 2026-10-28 확인
Orca 공식 문서 첫 화면. Orca는 Codex · Claude Code 같은 CLI 에이전트를 한 화면에 나란히 돌리는 개발 도구.
“Run Codex, ClaudeCode, OpenCode or Pi side-by-side”Codex, ClaudeCode, OpenCode, Pi를 나란히 실행하세요Orca README · stablyai/orca
모델이 아니다. 내가 구독한 CLI 에이전트(터미널용)를 그대로 쓴다
쓰던 CLI 에이전트를 그대로 한 화면에서. 작업마다 워크트리·터미널·브라우저 한 벌. MIT 라이선스.
첫 커밋이 2026-03-16인 일곱 달 된 프로젝트. 기본값이 권한 우회(16장).
앞의 도구들이 간 방향을 워크트리 단위로 가장 투명하게 보여 줘서 자세히 뜯어 본다.
Orca 문서 · The Orca Modelworktree-native
Orca: 작업 하나 = 워크트리 하나 = 에이전트 하나
onorca.dev/docs/model/worktrees
공식 문서 화면 캡처 · 2026-10-28 확인
Orca 문서의 워크트리 모델 설명. 기준 지점에서 작업마다 워크트리를 하나씩 만들고 그 안에서 에이전트가 일한다.
저장소마다 base ref(기준, 보통 origin/main), 워크트리마다 start-from ref(갈라질 시작점)
워크트리마다 자기 브랜치 · 자기 파일 · 자기 에이전트 터미널
생성 → 작업 → 검토 → 출하(커밋·푸시·PR) → 삭제까지 한 흐름
진짜 git 워크트리라서 터미널에서 일반 git을 그대로 쓸 수 있습니다.
Orca README · 공식 문서Supported agents
Orca는 터미널에서 도는 에이전트면 모두 돌릴 수 있다
onorca.dev/docs/agents/supported
공식 문서 화면 캡처 · 2026-10-28 확인
Orca 문서의 지원 에이전트 표. Claude Code · Codex 등 수십 종이 미리 설정되어 있고, 일부만 깊게 연동된다.
기본 목록: Claude Code · Codex · Cursor CLI · Gemini · GitHub Copilot · OpenCode 등 수십 종
깊은 연동(사용량 · 계정 전환 · 훅): Claude Code, Codex 등 일부
나머지는 “터미널에서 돌면 Orca에서 돈다”
Orca 공식 소개 화면github.com/stablyai/orca · README 대표 이미지 계열
Orca 한 화면에서 열 개 안팎의 작업을 감시한다
github.com/stablyai/orca
저장소 소개 화면 캡처 · 왼쪽 워크트리 목록, 가운데 Claude Code · Codex 터미널, 오른쪽 모바일 앱
Orca 소개 화면. 왼쪽 워크트리 목록, 가운데 에이전트 터미널, 오른쪽 휴대폰 앱으로 작업 상태를 한눈에 본다.
왼쪽: 워크트리 목록. 작업 중 · 입력 대기 · 완료 · 실패를 점으로 표시
가운데: 워크트리마다 에이전트 터미널(분할 가능)
오른쪽: 파일 · diff · 내장 브라우저. 휴대폰 앱으로 알림과 후속 지시
질문 시간 · 약 5분
여기까지, 질문 받습니다
지금까지 다룬 것: GitHub Agent HQ · Codex 앱 · Claude Code agent teams · Cursor 3 Agents Window · Orca란 · Orca 워크트리 모델 · Orca 지원 에이전트 · Orca 화면 구성
Orca 문서 · Your first 3-agent session5분 흐름
Orca: 같은 프롬프트로 세 에이전트를 경주시키고 하나만 고른다
onorca.dev/docs/first-session
공식 문서 화면 캡처 · 2026-10-28 확인
Orca 문서의 ‘첫 3-에이전트 세션’ 안내. 같은 프롬프트를 세 에이전트에 주고 가장 나은 결과 하나만 고른다.
# 첫 3-에이전트 세션 흐름1 Add Repo(저장소 추가) → 로컬 저장소 선택
2 + → 작업 이름 → 워크트리 생성
3 에이전트 고르기 (Claude Code · Codex · Cursor CLI)
4 같은 프롬프트를 세 워크트리에 붙여 넣기
5 사이드바 상태로 감시 → diff 비교
✓ 가장 나은 하나만 커밋·푸시, 나머지는 삭제
Orca 문서 · CLI · Orchestration실험 기능(설정 → Experimental에서 켬)
Orca: 에이전트가 orca 명령으로 작업과 워커를 직접 만든다
onorca.dev/docs/cli/orchestration
공식 문서 화면 캡처 · 2026-10-28 확인
Orca 문서의 오케스트레이션 CLI 안내. 코디네이터가 작업을 만들고 워커를 띄운 뒤 완료 신호를 기다린다(실험 기능).
Claude Code 명령 문서의 /batch 항목. 큰 변경을 5~30개 독립 단위로 나눠 단위마다 서브에이전트가 맡는다.
코드베이스를 조사해 5~30개 독립 단위(서로 안 겹치는 작업 조각)로 분해, 계획을 보여 준다
승인하면 단위마다 백그라운드 서브에이전트(보조 에이전트)가 격리된 워크트리에서
각자 구현 · 테스트 · 변경 게시
큰 변경을 5~30개 독립 단위로 쪼개 병렬 처리. 승인 전에 계획을 보여 준다.
단위가 서로 안 겹쳐야 한다. 겹치면 합치는 비용이 병렬의 이득을 지운다.
배치 한 번의 모양. 코디네이터 패턴은 이를 반복해 며칠을 간다.
2026-03-06 · 2026-08-27Claude Code 2.1.71 /loop · 2.1.248 자기 페이스 모드 상시 제공
/loop: 간격을 생략하면 Claude가 스스로 깨울 시각을 정한다
code.claude.com/docs/en/scheduled-tasks
공식 문서 화면 캡처 · 2026-10-28 확인
Claude Code 예약 작업 문서. /loop는 같은 일을 되풀이하는 명령이고, 간격을 빼면 Claude가 다음 시각을 고른다.
/loop 5m …: 고정 간격. 2.1.71(2026-03-06)에서 추가
간격 없이 /loop …: 매 회차 끝에 다음 깨우기까지 1분~1시간 중 길이를 Claude가 고른다
간격을 생략하면 Claude가 1분~1시간 중 알맞게 다음 깨우기를 고른다.
세션이 열려 있어야 깨어나고, 반복 작업은 7일 뒤 만료된다.
코디네이터가 스스로 깨어 점검하게 하는 장치. 만료는 25장에서 다시 본다.
강사 운영 방식/loop 자기 깨우기 + 이슈 원장
한 사이클: 깨어나서 읽고, 판단하고, 보내고, 다시 잔다
다음 배치 발송→ 다시 잔다잠든다다음 깨우기 예약(1분~1시간)깨어나 상태 읽기이슈 · PR · CI판단목표 달성루프 종료막힌 것 정리실패 PR 재배정→ 다시 잔다깨어남빈 자리실패·충돌충족
판단은 세 갈래입니다. 보낸다(빈 자리가 있다), 고친다(실패·충돌), 끝낸다(완료 조건 충족). 끝내는 것도 코디네이터의 일입니다.
강사 운영 방식 · 예시 도식배치를 여러 번 반복해 목표에 닿는다
며칠에 걸친 완주: 배치 → 점검 → 재배정 → 마무리
1일차2일차3일차4일차배치 1기반 작업 5개배치 2기능 8개실패 PR 2개재배정배치 3연동·화면 6개머지 큐 통과마무리스모크 · 문서목표 달성루프 종료
예시 도식 · 강사 실제 화면으로 교체 예정. 일수와 배치 크기는 설명용 가상의 값입니다.
강사 운영 방식코디네이터 세션 · 한 번 깨어난 장면
코디네이터는 깨어나 PR·이슈를 읽고 실패한 일을 재배정한다
> /loop plan/GOAL.md 완료 조건 기준으로 이슈·PR·CI를 읽고 다음 배치를 보낸다. 끝나면 루프를 종료한다
● 깨우기 #14 · 2일차 09:42$ gh pr list --state open --json number,title,statusCheckRollup
#212 feat/billing-export CI ✓ 리뷰 대기
#213 feat/notify-mail CI ✗ lint 실패
#214 fix/csv-encoding CI … 실행 중
$ gh issue list --label batch-3 --state open
6 open / 11 total
→ 판단 #213 재배정 · 빈 자리 2개 → 배치 3-b 발송
✓ 워커 7 (wt/batch3-notify) 재배정 ✓ 워커 8, 9 시작
→ 다음 깨우기 25분 뒤 이유: CI 진행 중 1건, 새 PR 대기
모형 · 강사 실제 화면으로 교체 예정. 줄 내용은 패턴을 보여 주려고 꾸민 예시입니다.
실패 모드 → 안전장치강사 운영 방식 · 공식 문서의 제약 반영
이렇게 망가지고, 이렇게 막는다
실패 모드안전장치폭주루프가 끝없이 돈다충돌워커가 같은 파일을 고친다비용 급증워커·깨우기가 늘어난다깨우기 유실세션이 끊기면 루프도 멈춘다역할 붕괴코디네이터가 직접 코딩한다완료 조건을 먼저 적는다7일 만료 · 배치 상한워커마다 워크트리와 담당 파일머지 큐로 합친다/usage의 Loops 표로 점검워커 수·모델 등급 상한백그라운드 세션으로 유지진행 기록은 이슈에코디네이터는 읽기·발송만코딩은 워커에게
2026-10-28 확인Claude Code 공식 문서 · CHANGELOG 2.1.243(2026-08-24)
안전장치는 도구가 이미 갖고 있다
code.claude.com/docs/en/scheduled-tasks
공식 문서 화면 캡처 · 2026-10-28 확인
Claude Code 예약 작업 문서의 제약 부분. 반복 작업은 만든 지 7일 뒤 자동으로 사라진다고 안내.
반복 작업은 7일 뒤 자동 만료. 더 길면 취소 후 다시 만들거나 클라우드·데스크톱 예약 작업
/usage에 Loops 표: 루프별 실행 횟수 · 총 토큰 · 회당 토큰
세션이 열려 있어야 깨어난다. 백그라운드 세션으로 유지
→ 며칠 가는 일은 만료·세션 제약부터 확인
오늘 본 것을 묶으면13교시 → 14교시
묶으면: 병렬은 쉽고, 나눠 주고 점검하는 일이 어렵다
모델 가격·성능 차이와 큰 프로젝트가 여러 하네스를 부른다
Agent HQ · Codex 앱 · agent teams · Orca · Cursor 3가 같은 방향
코디네이터는 코딩하지 않고 이슈·PR·CI를 읽어 배치를 보낸다
완료 조건 · 만료 · 사용량 점검 없이는 돌리지 않는다
→ 14교시: 코디네이터가 읽을 ‘이슈 원장’과 ADR(Architecture Decision Record, 아키텍처 결정 기록)
1992 Perry · Wolf아키텍처 = 요소·형태·근거(rationale)2005 Tyree · AkermanIEEE Software 결정 서식문제·결정·가정·대안2011 ISO/IEC/IEEE 42010결정과 근거를표준 문서 항목으로지금: 에이전트가 읽는 ADR저장소의 결정 = 지켜야 할 규칙(18단계 중 7단계)2016-11 Trial → 2017-11 AdoptThoughtworks Radar2018 MADR(마크다운)2011-11-15 Nygard가벼운 ADR 다섯 칸코드 저장소에 둔다무거운 문서 → 한두 쪽
ADR(Architecture Decision Record, 아키텍처 결정 기록) = 결정 하나와 그 근거. 무거운 아키텍처 문서에서 떼어 낸 작은 기록이다.
무엇이 바뀌었나근거를 남긴다는 목적은 같고, 크기·위치·읽는 쪽이 바뀌었다
근거를 남긴다는 목적은 같다. 바뀐 것은 크기, 놓이는 곳, 읽는 쪽이다
아키텍처 문서 속 결정 (1992~2011)
Nygard식 ADR (2011~)
에이전트 시대의 ADR
크기
큰 문서의 한 절
결정 하나에 한두 쪽
결정 하나, 짧게
놓이는 곳
위키·문서 관리 시스템
코드 저장소(docs/adr)
저장소 + 에이전트 지침이 가리키는 곳
읽는 쪽
아키텍트·검토자
나중에 합류한 팀원
팀원 + 매번 처음 읽는 에이전트
낡으면
고치기 어려워 낡는다
지우지 않고 Superseded로 바꾼다
‘다시 판단할 조건’으로 낡음을 알린다
Nygard: “Large documents are never kept up to date.”큰 문서는 결코 최신으로 유지되지 않는다.
2026-10-28 확인adr.github.io · ADR GitHub 조직
ADR: 결정 하나와 그 이유를 적은 기록
adr.github.io
ADR 커뮤니티 사이트 화면 캡처
adr.github.io 첫 화면. ADR을 결정 하나와 그 근거를 적은 문서로 정의한다.
Architecture Decision Record(아키텍처 결정 기록): 결정 하나와 그 근거
선택의 트레이드오프와 결과까지 적는다
모아 두면 프로젝트의 결정 로그
2011-11-15Nygard 원형 · Title · Status · Context · Decision · Consequences
Nygard 글에서 Status(상태)와 Consequences(결과) 칸을 설명하는 부분.
Title(제목): 짧은 명사구
Status(상태): 제안됨 · 승인됨 · 폐기 · 대체됨
Context(맥락): 힘겨루기 중인 사실들
Decision(결정): “We will …”(우리는 ~한다)
Consequences(결과): 좋은 것도 나쁜 것도
다섯 칸, 한두 쪽이면 끝난다. 상태를 바꿔 결정의 역사가 남는다.
대안을 적는 전용 칸이 없다(11장 표). 낡음을 알리는 조건 칸도 없다.
모든 서식의 뼈대. AI 이전인 2011년부터 ‘작은 문서’를 주장했다.
2011-11-15Nygard · 뒤집힌 결정도 지우지 않는다
상태가 바뀌어도 기록은 지우지 않는다
proposed제안됨accepted승인됨deprecated더는 안 씀superseded새 ADR로 대체새 ADR번호 재사용 안 함합의상황 변화뒤집힘링크
낡은 ADR을 고쳐 쓰지 않고 상태만 바꾸고 새 ADR을 추가합니다. 그때 무엇이 결정이었는지가 남습니다.
2024-09-17MADR 4.0.0 · adr.github.io/madr
MADR: 마크다운으로 가볍게 쓰는 ADR
adr.github.io/madr
MADR 공식 사이트 화면 캡처 · 2026-10-28 확인
MADR 공식 사이트 첫 화면. ADR을 마크다운 서식으로 간소화한 템플릿(4.0)을 소개.
최소형: 맥락 · 선택지 · 결정 결과(· 결과)
전체형: 결정 요인 · 선택지별 장단점 · 확인 방법 추가
머리말 status · date · decision-makers
마크다운이라 저장소에 두기 쉽다. 최소형·전체형 중 고르고 선택지를 적는다.
전체형은 칸이 늘어난다. ‘확인’ 칸은 결정이 지켜졌는지 보는 용도라 낡음 신호는 아니다.
Nygard에 선택지 칸이 더해진 형태. 이미 검토한 안을 에이전트가 되풀이하지 않게 한다.
서식 비교Nygard 원형 · MADR 4.0 · 강사 서식(templates.md)
세 서식, 같은 뼈대와 다른 칸
강사 서식
Nygard 원형
MADR
ID · 제목 · 상태 · 날짜
Title(제목) · Status(상태)
제목 · status · date
배경 · 제약
Context(맥락)
Context and Problem Statement(배경·문제)
대안
(전용 칸 없음)
Considered Options(검토한 선택지)
선택과 이유
Decision(결정)
Decision Outcome(결정 결과)
영향 · 비용 · 한계
Consequences(결과)
Consequences(결과)
다시 판단할 조건
(없음)
(없음)
관련 Spec · 이슈 · 이전 ADR
Status의 대체 링크
More Information(추가 정보)
사용자 판단
(없음)
decision-makers(참여자 목록)
장점 낡음 신호·사람 판단 한계 가장 길다
장점 가볍다 한계 대안 칸 없음
장점 선택지 명시 한계 낡음 조건 없음
강사 운영 방식plan/instructor/templates.md · “ADR — 중요한 결정 기록”
제 서식: 여덟 칸, 둘이 새로 붙었다
# ADR 서식
ADR ID·제목·상태·날짜:
결정이 필요한 배경·제약:
비교한 대안:
선택과 이유:
영향·비용·감수할 한계:
다시 판단할 조건:
관련 Spec·이슈·이전 ADR:
사용자 판단 필요 여부·결과:
다시 판단할 조건: 이 결정이 낡았다고 볼 신호
사용자 판단: 에이전트가 정하지 못하는 결정은 사람 몫
저장소 안의 짧은 마크다운 한 파일 = ADR 하나
다시 판단할 조건이 낡음을 미리 알리고, 사용자 판단이 사람 몫을 남긴다.
여덟 칸이라 세 서식 중 가장 길다. 공개 표준이 아닌 강사 방식이고 이득을 측정한 것은 아니다.
스펙과 갈리는 지점: 스스로 낡음을 알리는 문서. 다음 두 장에서 채워 본다.
질문 시간 · 약 5분
여기까지, 질문 받습니다
지금까지 다룬 것: 병렬 작업의 스펙 충돌 · 나눠 두기 · ADR이란 · Nygard 원형 · Status의 생애 · MADR · 세 서식 비교 · 강사 서식
교육용 예시 ADR가상의 프로젝트 · 실제 기록이 아님 · 1/2
예시 ADR (1/2): 배경과 대안
docs/adr/0007-reminder-scheduler.md# ADR-0007 · 예약 알림은 스케줄러로 보냅니다
상태: 승인됨 · 2026-10-21 (제안 10-19)
## 배경·제약
- 공유 웹호스팅: 상시 프로세스(queue:work) 불가
- cron은 1분마다 실행할 수 있음
- 하루 약 300건, 5분 지연까지 허용
- 운영자는 서버 설정을 직접 바꾸지 않음
## 대안
A. Redis + queue:work (Supervisor)
→ 호스팅을 바꿔야 함
B. DB(데이터베이스) 큐 + schedule:run 매분
→ 추가 비용 없음
C. 외부 발송 서비스의 예약 API(Application Programming Interface, 연동 규약)
→ 월 비용, 서비스 종속
배경에는 제약을 사실로
대안은 버린 것까지 한 줄씩
상태와 날짜가 맨 위
교육용 예시 ADR가상의 프로젝트 · 실제 기록이 아님 · 2/2
예시 ADR (2/2): 선택, 영향, 다시 판단할 조건
## 선택과 이유
B. 상시 프로세스 불가라는 제약을 지키고
하루 300건에는 충분합니다.
## 영향+ 배포가 단순합니다 (cron 한 줄)
- 알림이 최대 1분 늦습니다
- 한 번에 많이 보내면 실행이 길어집니다
## 다시 판단할 조건
- 하루 발송 2,000건 초과
- 한 번의 실행 시간이 50초 초과
- VPS(Virtual Private Server, 가상 사설 서버)로 이전, 또는 지연 허용이 1분 미만으로 변경
## 관련
Spec: notifications §예약 · 이슈 #58 #61
이전 ADR: 0003 (SSR(Server-Side Rendering, 서버 렌더링) 유지)
## 사용자 판단
필요 → 완료 (10-21 운영자: 1분 지연 허용)
선택은 이유 한 줄
단점도 영향에 적는다
조건은 숫자와 사건으로
사람이 답한 것은 날짜와 함께
강사 운영 방식이슈별 흐름 2단계 “ADR 점검”
‘다시 판단할 조건’이 낡음을 알려 준다
에이전트가작업 시작관련 ADR 읽기(이슈의 ‘관련’ 칸)‘다시 판단할 조건’을현재 상태와 대조해당 없음결정을 따라 구현해당함구현을 멈추고사용자에게 보고사용자가 판단→ 새 ADR 또는 수정조건 밖조건 안
스펙은 낡았는지 스스로 말하지 못하지만, ADR은 낡을 조건을 미리 적어 둡니다.
정리큰 단일 스펙 vs ADR + 이슈 스펙
왜 에이전트에게 ADR이 좋은가
큰 단일 스펙
길고, 낡고, 부딪힌다
전체를 읽어야 해서 컨텍스트를 많이 쓴다
왜 그렇게 정했는지가 빠지기 쉽다
낡아도 표시가 없다
병렬 작업이 한 파일에서 충돌
ADR + 이슈 스펙
짧고, 이유가 있고, 신호를 준다
필요한 ADR 한 장만 읽는다
이유와 버린 대안이 남는다
다시 판단할 조건이 낡음을 알린다
파일이 나뉘어 충돌이 줄어든다
ADR은 짧고, 이유가 남고, 낡음을 알린다.
모든 결정에 쓰면 ADR도 길어진다. 이득은 운영 경험이며 측정한 것은 아니다.
스펙을 없애지 않고 성격별로 쪼갠다. 결정은 ADR, 이번 작업은 이슈 스펙.
2011-11-15Nygard의 “architecturally significant” 기준 · 강사 운영 방식
모든 결정에 쓰지는 않습니다
ADR을 쓴다
되돌리기 비싼 결정
구조·의존 라이브러리·인터페이스·배포 방식
에이전트가 다시 물어볼 만한 선택
제약 때문에 정석을 버린 선택
사람의 판단이 필요했던 선택
쓰지 않는다
코드와 PR(Pull Request, 변경 병합 요청)이 설명하는 것
변수 이름, 함수 하나의 구현 세부
이슈 안에서 끝나는 선택 → 이슈 스펙
PoC(Proof of Concept, 시험 제작)의 임시 결정은 한 줄 메모
ADR 초안은 AI가 쓰게 해도 됩니다. 상태와 사용자 판단은 사람이 확정합니다.
강사 운영 방식GitHub 프로젝트·이슈·라벨이 설계도
이슈 원장: 설계도가 곧 작업 목록
프로젝트 보드= 설계도이슈 1개= 작업 1개워크트리에이전트 작업이슈 닫힘 = 도장Closes #N스쿼시 머지PR → CI통과쪼개 등록남은 칸 확인
이슈 하나가 작업 하나, 닫을 때마다 한 칸씩 채우는 도장 깨기입니다. 강사 실제 보드 화면으로 교체 예정
GitHub Docs ‘하위 이슈 추가’ 화면. 이슈 아래 하위 이슈를 100개, 8단계까지 둘 수 있다고 설명한다.
하위 이슈: 상위 이슈 하나에 최대 100개, 중첩은 8단계까지
마일스톤 → 스테이지 → 스프린트 → Task를 추적 이슈로
완료 조건과 검증 방법이 이슈에 있다
강사 운영 방식issue-pr-management · ApplyFlow 가상 예시 · 2026-09-28 확인
PR 폭증은 이슈를 합쳐 줄인다
이슈 4개 (가상 예시)PR 하나Closes #201, #203한 번에 검토·출시·롤백#201에 로그 이관중복 정리로 종료별도 PR초점 복구는 열어 둠#201 수동 저장 중복#202 같은 문제 + 브라우저 로그#203 가져오기 중복#204 오류 안내 + 초점 복구Related만
기준은 개수가 아니라 하나의 검토·출시·롤백 단위인가입니다. 번호는 가상입니다. → 15교시
2026-10-28 확인GitHub Docs · Linking a pull request to an issue
GitHub Docs 동시 실행 제어 문서. 같은 그룹의 실행이 겹칠 때 이전 실행을 취소하는 concurrency 설정을 다룬다.
# .github/workflows/ci.ymlconcurrency:
group: ci-${{ github.workflow }}-
${{ github.event.pull_request.number
|| github.sha }}
cancel-in-progress: ${{
github.event_name == 'pull_request' }}
✓ 같은 PR에 새 푸시 → 이전 실행 취소
! 큐 후보(merge_group)는 취소 안 함
후보마다 sha가 달라 서로 끊지 않는다
같은 PR에 푸시가 잇따를 때 낡은 실행을 끊어 러너 분을 아낀다. 설정 몇 줄이면 된다.
큐 후보(merge_group)까지 같은 그룹에 넣고 취소하면 서로의 필수 검사를 끊는다.
에이전트는 푸시가 잦아서 가장 싸고 안전한 1단계. 효과는 작아도 위험이 거의 없다.
2단계 · 거르기GitHub Docs · 워크플로 구문 · paths
2. 관계없는 변경은 거른다: 경로 필터
docs.github.com/…/workflow-syntax
GitHub Docs 화면 캡처 · paths / paths-ignore
GitHub Docs 워크플로 구문 문서. 목차에 paths(특정 경로가 바뀔 때만 실행) 항목이 보인다.
# 문서만 바뀐 PR은 테스트를 건너뛴다on:
pull_request:
paths-ignore:
- 'docs/**'
- '**.md'
! 필수 검사 워크플로 전체를
paths로 생략하면 상태가 안 올라와
PR·머지 큐가 기다릴 수 있다
→ 워크플로는 항상 실행하고,
안에서 작업만 고른다
2024-10-22 → 2025-09-2315교시 복습 · computer use · Chrome DevTools MCP(Model Context Protocol, 모델 컨텍스트 프로토콜)
스모크가 통과해도 남는 질문: 쓸 만한가
developer.chrome.com/blog/chrome-devtools-mcp
Chrome for Developers 화면 캡처 · 15교시에서 본 화면
15교시에서 본 Chrome DevTools MCP 발표 글. 에이전트가 브라우저에서 콘솔 오류·요청 실패를 직접 읽는 스모크용 도구.
스모크는 동작하는지를 본다: 열리고, 눌리고, 오류가 없는가
버튼이 있어도 그 사람이 찾을 수 있는지는 모른다
다음 장치: 특정 고객이 되어 눌러보게 한다
→ 15교시 이어서
페르소나 평가강사 운영 방식 · 단계 20
페르소나 평가: 고객이 되어 눌러보고, 고친다
1. 페르소나 주입고객 한 명을 적은 파일2. 그 사람처럼 클릭브라우저로 앱 사용4. 고치고 재평가같은 페르소나로3. 피드백을 이슈로막힌 곳·증거·재현개선 루프
사람 대신 에이전트가 고객 한 명(페르소나: 고객을 글로 적은 프로필)을 연기하며 앱을 씁니다. 막힌 곳은 이슈가 되고, 고친 뒤 같은 사람으로 다시 평가합니다.
LLM(Large Language Model, 대규모 언어 모델) 가상 사용자 시뮬레이션 · 대표 연구 UXAgent2025-02-18 · arXiv 2502.12561 · 2025-04-05 v3
LLM 가상 사용자 시뮬레이션의 연구 사례, UXAgent: 사용성 시험을 미리 돌려 본다
arxiv.org/abs/2502.12561
arXiv 화면 캡처 · 논문 초록
UXAgent 논문 초록. LLM 에이전트가 수천 명의 가상 사용자처럼 웹사이트를 쓰게 해 사용성 시험을 돕는다는 내용.
참가자를 모으기 전에 수천 명의 가상 사용자로 시험해 연구 설계를 점검한다. 생각·행동·영상이 남는다.
가상 사용자일 뿐이라 실제 사람 실험을 대신하지 못한다. 논문도 사람 연구 이전 단계로 제안한다.
우리 과정에서는 페르소나 평가의 근거 ①: 사람에게 가기 전 막힌 곳을 싸게 찾는다.
LLM 페르소나 시뮬레이션 · 대표 도구 TinyTroupe2025-07-13 · 2026-03-28 · arXiv 2507.09788 · microsoft/TinyTroupe 0.7.0
LLM 페르소나 시뮬레이션 라이브러리, TinyTroupe: 성격과 목표를 준 가상 인물
arxiv.org/abs/2507.09788
arXiv 화면 캡처 · 2025-07-13 제출 · 2026-06-09 v3
TinyTroupe 논문의 arXiv 화면. Microsoft의 가상 인물 시뮬레이션 Python 라이브러리를 다룬 논문.
성격·관심사·목표를 가진 가상 인물을 만들어 대화·행동시킨다. 광고 평가·포커스 그룹 등에 쓴다.
Microsoft의 실험적 라이브러리다. README는 결과를 “통찰용”으로만 쓰고 직접 의사결정에는 쓰지 말라고 한다.
그대로 쓰지 않아도, 페르소나를 상세히 정의해 주입한다는 발상을 가져온다. ②번 근거.
한계UXAgent 초록 · TinyTroupe README 경고문
가상 사용자는 사전 점검이다, 최종 판정이 아니다
스모크 테스트동작하는가?페르소나 평가쓸 만한가?실제 사용자 테스트진짜 사람이 확인자동 클릭사람 확인
TinyTroupe README: 결과는 “insight generation”(통찰을 얻기)용이고 직접 의사결정용이 아닙니다. UXAgent도 실제 참가자 연구 이전 단계로 제안합니다.
입력 준비실제 고객 자료 → 페르소나 파일 · 강사 운영 방식
페르소나는 지어내지 않고, 실제 고객에서 뽑는다
실제 고객 자료정리페르소나 파일personas/*.md문의·불만 기록인터뷰 메모사용 로그 요약개인 식별 정보 제거공통 패턴으로 묶기요약한 명씩 작성
문의·불만·인터뷰에서 반복되는 사람 유형을 한 명씩 적습니다. 이름·연락처 같은 식별 정보는 지웁니다.
예시 · 가상 인물personas/seoyeon.md
페르소나 파일: 목표와 포기 조건까지 적는다
# 페르소나: 서연 (가상)누구 38세 사무직, 반려견 2마리를 키움
목표 점심시간 10분 안에 예약 변경
환경 스마트폰, 지하철, 한 손 조작
버릇 약관은 안 읽음. 용어가 낯서면
바로 전화를 검토함
포기 같은 화면에서 2번 막히거나
3분이 넘으면 그만둠
근거 최근 문의 기록 중 ‘예약 변경’
관련 반복 불만
personas/seoyeon.md누구인가나이 · 직업 · 맥락목표이 앱으로 하려는 일능력과 환경기기 · 숙련도 · 인내심버릇과 성격읽는 방식 · 의심하는 것그만두는 조건포기하는 순간
실행페르소나 + 과업 한 줄 + 브라우저 도구 · 강사 운영 방식
실행: 과업은 한 줄, 증거는 파일로
$ claude "personas/seoyeon.md 를 읽고
그 사람이 되어 localhost:8000 에서
'예약 변경'을 해 보세요.
- 브라우저 도구로 직접 클릭
- 단계마다 보이는 것과 누른 이유를 한 줄
- 포기 조건에 닿으면 멈추고 이유 기록
- 결과는 evals/2026-11-24/seoyeon.md"
✓ evals/2026-11-24/seoyeon-01.png …
✓ evals/2026-11-24/seoyeon.md
평가 에이전트페르소나·과업 한 줄브라우저 도구Playwright MCP증거 저장스크린샷·기록·요약내 앱화면·콘솔 돌려줌클릭·입력
관찰 항목페르소나 평가 · 한 사람, 한 과업마다 채움
관찰 항목: 판정보다 증거 한 줄
항목
묻는 것
수월
헤맴
막힘
과업 완수
목표를 이루었나
막힘 없이 완수
헤맨 뒤 완수
포기
찾기
필요한 버튼·메뉴를 찾았나
첫 화면에서
2~3군데 뒤짐
못 찾음
이해
문구·용어를 이해했나
바로 이해
추측해서 진행
오해하거나 전화 검토
신뢰·오류
오류·불안 요소가 있었나
없음
경고·지연 있음
오류로 중단
수고
단계 수·시간이 적절한가
기대 이내
1.5배 이내
포기 조건 초과
항목마다 수월·헤맴·막힘 중 하나. 각 칸에는 스크린샷 번호나 기록 줄을 붙입니다. 증거 없는 판정은 이슈로 만들지 않습니다.
이슈 원장 연결14교시 이슈 원장 · 강사 운영 방식
피드백은 이슈로: 재현 경로와 증거를 붙인다
제목 [페르소나] 예약 변경 버튼이 없어 포기
페르소나 seoyeon (포기 조건: 3분 초과)
재현 홈 → 내 예약 → 카드에 ‘취소’만 있음
증거 evals/2026-11-24/seoyeon-03.png
반응 “취소하고 다시 잡아야 하나?”
기대 예약 카드에 ‘변경’ 노출
라벨 persona-eval · ux · p1
평가 에이전트페르소나 N명이슈 원장피드백 → 이슈코디네이터워커들워크트리별 수정멈춤 조건통과 또는 상한점검 통과테스트·스모크평가배치PR판단
질문 시간 · 약 5분
여기까지, 질문 받습니다
지금까지 다룬 것: TinyTroupe · 사람 테스트의 대체가 아니다 · 페르소나는 어디서 오나 · 페르소나 파일 예시 · 눌러보게 하기 · 관찰 항목 · 피드백을 이슈로 · 자기 개선 루프
강사 운영 방식페르소나 평가 실행 화면 · 교체 예정
제 서비스에서 돌리는 모습
실제 고객 페르소나(강사 자료)평가 에이전트브라우저로 클릭GitHub 이슈프로젝트 보드강사 운영 중인서비스워커 수정PR → 머지주입눌러보기피드백배포
직접 도식 · 강사 실제 화면으로 교체 예정
역공학 MCP · 대표 도구 REA최근 동향 · 2026-10-28 README 확인 · github.com/morluto/rea · rea.tools
역공학(리버스 엔지니어링) MCP의 예, REA: 소스 없이 앱의 동작을 조사한다
github.com/morluto/rea
GitHub 저장소 화면 캡처 · 2026-10-29
REA GitHub 저장소 첫 화면. 제목은 “에이전트로 무엇이든 역공학”(Reverse engineer anything with agents).
“One MCP for reverse engineering across binaries, applications, and runtime behavior.”바이너리·애플리케이션·실행 중 동작을 아우르는, 역공학(완성품을 뜯어 원리 파악)용 MCP 하나.REA README
소스 없이 앱·바이너리·웹사이트가 어떻게 동작하는지 조사하고, 근거와 한계를 함께 돌려준다. 분석은 로컬에서 한다.
대상에 따라 Hopper·Ghidra·IDA 등 별도 분석 도구가 필요하다. 허가받은 소프트웨어에만 쓴다.
에이전트 도구가 내 앱 테스트를 넘어 남의 앱 조사로 넓어지는 최근 동향의 예.
2026-10-28 README 확인REA 조사 흐름
REA 쓰는 법: 에이전트에게 묻고, 근거를 받는다
github.com/morluto/rea · How REA works 그림
README 그림 화면 · 질문 → 조사·추적 → 근거 → 활용, 추가 질문으로 반복
REA README의 ‘How REA works’ 그림. 질문 → 조사·추적 → 근거 읽기 → 에이전트 활용, 추가 질문으로 반복.
# 설치는 각자. 붙인 뒤에는 평소처럼 묻는다에이전트에게
Understand how search works in the
Notes app, show me the evidence, and
build a similar feature for my project.
번역 Notes 앱의 검색이 어떻게 동작하는지
설명하고, 근거를 보여 주고, 내 프로젝트에
비슷한 기능을 만들어 줘.
! 대상에 따라 Hopper · Ghidra · IDA,
Node.js, Chrome 계열 브라우저 등 필요
2026-10-28 README · 가이드 확인REA 분석 대상 · RL(Reinforcement Learning, 강화학습) 환경 만들기
REA는 앱 안을 넓게 들여다보되, 허가받은 소프트웨어에만 쓴다
github.com/morluto/rea · 네이티브 분석 예시
README 이미지 · Hopper 안에서 네이티브 바이너리 분석
Hopper(바이너리 분석 앱) 안에서 분석을 돌리는 화면. 분석 대상은 /usr/bin/true.
rea.tools/guides/rl-environments
가이드 화면 캡처 · 녹화한 웹앱 세션을 에이전트용 환경으로
REA 가이드 ‘RL 환경 만들기’. 녹화한 웹앱 세션을 AI 에이전트 훈련·시험용 환경으로 바꾼다(RL: 강화학습).
네이티브 바이너리·JS/Electron·웹·.NET·APK(Android Package Kit, 안드로이드 앱 설치 파일)까지 분석 대상이 넓다. 녹화한 웹앱 세션을 에이전트용 환경으로 바꾼다.
내 소유이거나 분석 허가를 받은 소프트웨어에만 써야 한다는 README 면책이 있다.
에이전트를 같은 조건에서 재현해 평가하는 환경을 만드는 방향으로 도구가 확장되고 있다.
실습 · 약 25분18단계 중 16·17·18단계 · 이슈별 워크플로우 9–12 · 프롬프트와 스모크
이슈 하나를 PR에서 스모크까지 보내고, 결과는 코드 대신 스모크로 확인한다
9–10 PR → CI이슈 하나, PR 버전 점검11 스쿼시 머지사람 승인 뒤 한 커밋12 머지 후 스모크합쳐진 앱을 눌러 본다18 다음 루프유지 · 수정 · 추가17 피드백 이슈증거 붙여 원장에17 페르소나 평가고객이 되어 눌러 본다
저는 코드를 읽지 않습니다. 하네스에게 시키고, 돌려서 확인합니다. 사람이 보는 것은 내 답, 정리된 결정, 스모크 결과 세 가지입니다. 이것은 제 방식이고, 내 하네스에 맞게 바꿔도 됩니다.
설계 대화 체크리스트이슈별 워크플로우 9–12 · 18단계 중 17·18 · 에이전트가 묻지 않으면 내가 먼저
하네스는 PR 전에 여섯 가지를 하나씩 묻는다
단계
하네스가 물을 것
예시 답
빠지면
9 PR
PR(Pull Request, 변경 병합 요청) 하나의 범위는
이슈 #7 하나, 수용 조건 첨부
일이 섞여 리뷰가 어렵다
10 CI(Continuous Integration, 지속적 통합)
필수 점검과 실패 시 처리는
테스트 전부 통과, 실패하면 머지 불가
“내 컴퓨터에선 됐다”로 머지
11 머지
누가 승인하고 어떤 방식인가
내가 승인, 스쿼시
main이 어지러워진다
12 스모크
무엇을 눌러 보고, 실패하면
로그인 → 예약 변경, 후보 제외
통과한 줄 알고 다음 일로
17 피드백
누구로 평가하고 이슈는 어떻게
서연 1명, 증거 있는 것만
막연한 불만이 이슈로 쌓인다
18 다음 루프
무엇을 하고 언제 멈추나
이슈 3건, 최대 2바퀴
사소한 개선이 끝없이 이어진다
그대로 붙여 넣어도 됩니다각자 쓰는 에이전트 · 질문 → ADR(Architecture Decision Record, 아키텍처 결정 기록) 한 건 → 사람 승인
첫 프롬프트로 질문부터 시키고, 다섯 가지를 보고 승인한다
> 12교시에서 끝낸 이슈 #7로 이어서 한다.
(예약 앱, PoC(Proof of Concept, 개념 증명))
아직 PR은 만들지 마.
9–12단계(PR → CI → 스쿼시 머지 →
머지 후 스모크)와 17(페르소나 평가 →
피드백 이슈), 18(다음 루프)에 필요한
질문을 한 번에 하나씩 해 줘.
질문마다 추천 답과 이유를 주고
8개 안에서 끝내.
끝나면 docs/adr/에 ‘전달 흐름’ ADR
한 건을 쓰고, 내가 “승인”이라고 할
때까지 기다려.
내가 한 답이 ADR에 그대로 들어 있다
PR 범위·CI 필수 점검·머지 방식이 한 줄 요약으로 읽힌다
스모크 시나리오 표가 있다 (핵심 흐름 + 막혀야 할 요청)
스모크·CI 실패 시 처리가 적혀 있다
평가 반복 상한이 있고, 피드백 이슈에는 증거가 붙는다
→ 다섯이 ‘예’일 때만 “승인”
이슈별 워크플로우 9–10단계하네스에게 시키고 요약을 받는다 · 결과 화면은 예시
PR과 CI는 만들게 시키고, 결과 요약을 보여 달라고 한다
> ADR대로 이슈 #7의 PR을 만들어 줘.
끝나면 이것만 보여 줘.
- 수용 조건별 충족 여부
- 테스트·CI 결과 요약 (실패하면 어느 것)
- 이 PR에서 눌러 볼 스모크 범위
- main에 ‘CI 통과 필수’ 규칙이 켜져 있는지
# 하네스가 보여 준 결과 (예시)
수용 조건 1/1 충족
테스트·CI 통과 (2번째 실행)
스모크 범위 홈 → 내 예약 → 변경
main 보호 켜짐
결과 줄은 예시 · 실제 값은 각자 하네스가 보여 준다
내가 확인
부족하면 이렇게
CI 요약
“실패한 항목과 이유를 한 줄씩 보여 줘”
main 보호
“CI가 빨간 PR이 머지되지 않는 것을 설정 화면으로 보여 줘”
CI 뒤 변경
“바뀐 버전으로 CI를 다시 돌리고 결과를 보여 줘”
이슈별 워크플로우 11–12단계머지 후 스모크 · 시나리오 표가 이 교시의 중심 · 실제 결과 열은 예시
머지하고 나면, 합쳐진 앱을 눌러 보고 표로 남긴다
> 승인한다. 스쿼시로 머지해 줘.
> main을 받아 앱을 띄우고
1) 로그인 2) 내 예약 → 변경
3) 콘솔 오류 0 4) 막혀야 할 요청 1개
를 눌러 보고 스크린샷을 남겨 줘.
결과는 시나리오 표로.
실패하면 이슈 #7을 다시 열고
원인·복구를 적고, 이 커밋을
배포 후보에서 빼.
시나리오
기대 결과
실제 결과
통과
로그인
홈이 열린다
홈 표시
✓
내 예약 → 변경
변경 화면이 열린다
버튼이 안 보임
✗
콘솔 오류
0건
0건
✓
남의 예약 변경 요청
막히고 안내
안내 표시
✓
‘실제 결과’는 예시 · ✗가 나오면 이슈 재오픈 + 후보 제외
약 10분이슈 하나를 9–12단계로 보내 보고 · 일부러 어기기 세 번 · 결과 열은 예시
이슈 하나를 실제로 보내 보고, 규칙을 일부러 어겨 본다
# 1 이슈 #7을 9–12단계로> ADR대로 이슈 #7의 PR을 만들고
CI가 통과하면 알려 줘. 머지는 내가 한다
# 2 일부러 어기기 (하나씩)> CI가 실패한 PR을 그냥 머지해 줘
> 리뷰 없이 main 에 바로 푸시해 줘
> 버튼을 숨긴 채 머지 후 스모크를 돌려 줘
✓ 막혔다 → 어떤 메시지로?
! 안 막혔다 →
“왜 통과됐는지 설명하고, 막히게 고친 뒤
같은 요청으로 다시 보여 줘”
어겨 보기
기대
실제(예시)
통과
CI 실패 PR 머지
막힘
막힘
✓
main에 바로 푸시
막힘
푸시됨
✗
버튼 숨기고 스모크
실패로 잡힘
잡힘
✓
안 막힌 원인(예: main 보호 미설정) → ADR 한 줄 갱신 → 같은 요청으로 재확인
18단계 중 17단계 · 사용자 피드백앞 장의 페르소나 평가를 머지된 앱에 돌린다
머지한 앱에 페르소나 평가를 돌리고, 피드백을 이슈로 남긴다
> main 을 띄우고 personas/seoyeon.md 의
사람이 되어 ‘예약 변경’을 해 봐.
- 브라우저 도구로 직접 클릭
- 단계마다 보이는 것과 이유를 한 줄
- 포기 조건에 닿으면 멈추고 이유 기록
- 증거는 evals/2026-11-24/ 에 저장
- 항목별 수월·헤맴·막힘. 증거 없는 판정은 이슈 금지
- 이슈는 라벨 persona-eval, 평가는 최대 2바퀴
끝나면 만든 이슈 목록과 증거 위치를 보여 줘.
피드백 분류
처리
버그 · 콘솔 오류
자동 처리: 워커에 배치
문구 · 버튼 노출
자동 처리: 워커에 배치
ADR을 바꿔야 하는 제안
사람 판단 대기
범위 변경 · 고복잡도 · 반려
사람 판단 대기
18단계 · 다음 업데이트 루프피드백 이슈에서 다음 계획으로 · 결과 줄은 예시
피드백은 다음 계획이 되고, 새 이슈로 처음부터 이어진다
> 피드백 이슈를 보고 다음 계획을
유지 · 수정 · 추가 · 보류로 나눠 줘.
바뀌는 결정이 있으면 어느 ADR을
고칠지 알려 주고, 이미 내린 결정과
증거는 지우지 마.
평가 2바퀴 또는 열린 이슈 0이면 멈춰.
# 하네스가 보여 준 결과 (예시)유지 예약 목록·취소 (막힘 없음)
수정 ‘변경’ 노출 → 이슈 #14
추가 변경 알림 → ADR 갱신 필요
보류 결제 화면 → 사람 판단
피드백 이슈원장에 쌓인 것분류자동 처리 · 사람 판단다음 계획유지 · 수정 · 추가Spec · ADR 갱신바뀐 결정만 기록새 이슈 등록이슈별 워크플로우 1–12
다음 회차(5회차 12-01)까지 해 볼 것누적 실습 ‘나만의 하네스 만들기’ · 형태는 자유