Ch3. 멀티세션 워크플로우
기능별·계층별 워크스페이스 분리로 여러 Kiro 세션을 병렬 운영하고, 공유 타입·API 계약·통합 스크립트와 정기/이벤트 기반 동기화로 협업하는 워크플로우
핵심 요약
- 멀티세션은 백엔드·프론트엔드·테스트·문서 등을 독립 워크스페이스(각자
.kiro/)로 나눠 병렬 개발하는 패턴입니다. - 세션별
inclusion: alwaysSteering으로 컨텍스트를 분리하되, 통합 지점(API 엔드포인트·미들웨어·타입)을 명시합니다. - 세션 간에는 공유 타입(
#[[file:../shared-types/*]]), OpenAPI 계약, 통합 스크립트로 인터페이스를 공유합니다. - 동기화는 정기 통합 스크립트,
agentStop훅 기반 자동 동기화, 공유 상태 문서(shared-status.md)로 운영합니다. - 충돌과 통합 비용을 줄이는 핵심 모범 사례는 명확한 책임 분리, 인터페이스 우선 설계, 정기 통합 검증입니다.
멀티세션은 독립적인 Kiro 세션 여러 개를 동시에 운영하는 고급 워크플로우입니다. 복잡한 프로젝트를 기능별, 계층별로 쪼개 병렬로 개발하거나, 서로 다른 컨텍스트에서 실험적인 개발을 진행할 때 쓸모가 있습니다.
멀티세션 개념
멀티세션의 장점
- 병렬 개발: 여러 기능을 동시에 개발
- 컨텍스트 분리: 각 세션이 독립적인 컨텍스트 유지
- 실험적 개발: 메인 코드에 영향 없이 실험
- 팀 협업: 팀원별로 다른 세션에서 작업
워크스페이스 기반 세션 관리
1. 기능별 워크스페이스 분리
project-root/
├── main/ # 메인 워크스페이스
│ ├── .kiro/
│ └── src/
├── feature-auth/ # 인증 기능 워크스페이스
│ ├── .kiro/
│ └── auth-module/
├── feature-payment/ # 결제 기능 워크스페이스
│ ├── .kiro/
│ └── payment-module/
└── experimental/ # 실험적 기능 워크스페이스
├── .kiro/
└── prototypes/2. 계층별 워크스페이스 분리
ecommerce-project/
├── backend/ # 백엔드 워크스페이스
│ ├── .kiro/
│ ├── api/
│ └── database/
├── frontend/ # 프론트엔드 워크스페이스
│ ├── .kiro/
│ ├── components/
│ └── pages/
├── mobile/ # 모바일 워크스페이스
│ ├── .kiro/
│ └── react-native/
└── docs/ # 문서 워크스페이스
├── .kiro/
└── documentation/세션별 Steering 설정
메인 세션 Steering
<!-- main/.kiro/steering/project-overview.md -->
---
inclusion: always
---
# 전자상거래 플랫폼 프로젝트
## 전체 아키텍처
- 마이크로서비스 기반
- React + Node.js 스택
- PostgreSQL 데이터베이스
## 현재 진행 상황
- 인증 시스템: feature-auth 워크스페이스에서 개발 중
- 결제 시스템: feature-payment 워크스페이스에서 개발 중
- UI 컴포넌트: frontend 워크스페이스에서 개발 중기능별 세션 Steering
<!-- feature-auth/.kiro/steering/auth-context.md -->
---
inclusion: always
---
# 인증 시스템 개발
## 목표
JWT 기반 인증 시스템 구현
## 요구사항
- 이메일/비밀번호 로그인
- 소셜 로그인 (Google, GitHub)
- 토큰 갱신 메커니즘
- 권한 기반 접근 제어
## 기술 스택
- Express.js
- Passport.js
- JWT
- bcrypt
## 메인 프로젝트와의 통합 지점
- API 엔드포인트: /api/auth/*
- 미들웨어: authMiddleware
- 타입 정의: types/auth.ts세션 간 통신 패턴
1. 공유 타입 정의
// shared-types/
├── auth.d.ts
├── user.d.ts
├── product.d.ts
└── order.d.ts
// 각 워크스페이스에서 참조
#[[file:../shared-types/auth.d.ts]]2. API 계약 공유
# shared-specs/api-spec.yaml
openapi: 3.0.0
info:
title: E-commerce API
version: 1.0.0
paths:
/api/auth/login:
post:
summary: 사용자 로그인
# ... 상세 스펙
/api/products:
get:
summary: 상품 목록 조회
# ... 상세 스펙3. 통합 스크립트
#!/bin/bash
# integrate.sh - 각 워크스페이스의 결과물을 메인 프로젝트로 통합
echo "Integrating auth module..."
cp -r feature-auth/auth-module/* main/src/modules/auth/
echo "Integrating payment module..."
cp -r feature-payment/payment-module/* main/src/modules/payment/
echo "Integrating UI components..."
cp -r frontend/components/* main/src/components/
echo "Running integration tests..."
cd main && npm run test:integration실전 멀티세션 워크플로우
시나리오 1: 대규모 기능 개발
목표: 전자상거래 주문 시스템 구현
세션 A (backend-orders): 주문 API 개발
- 주문 생성/조회/수정/취소 API
- 재고 관리 로직
- 결제 연동
세션 B (frontend-orders): 주문 UI 개발
- 주문 폼 컴포넌트
- 주문 내역 페이지
- 주문 상태 추적
세션 C (test-orders): 테스트 코드 작성
- API 단위 테스트
- UI 컴포넌트 테스트
- E2E 테스트 시나리오
세션 D (docs-orders): 문서화
- API 문서 생성
- 사용자 가이드 작성
- 개발자 문서 업데이트시나리오 2: 실험적 기능 개발
목표: AI 기반 상품 추천 시스템 프로토타입
세션 A (main): 기존 시스템 유지보수
- 버그 수정
- 성능 최적화
- 일반적인 기능 개발
세션 B (experimental-ai): AI 추천 시스템 실험
- 머신러닝 모델 통합
- 추천 알고리즘 테스트
- 성능 벤치마킹
세션 C (experimental-ui): 새로운 UI 패턴 실험
- 개인화된 대시보드
- 인터랙티브 상품 탐색
- A/B 테스트 준비시나리오 3: 팀 협업 워크플로우
팀 구성: 백엔드 2명, 프론트엔드 2명, QA 1명
백엔드 개발자 A (session-api-core):
- 핵심 비즈니스 로직
- 데이터베이스 스키마
- 인증/권한 시스템
백엔드 개발자 B (session-api-integration):
- 외부 API 연동
- 결제 시스템 통합
- 알림 시스템
프론트엔드 개발자 A (session-ui-core):
- 핵심 UI 컴포넌트
- 상태 관리
- 라우팅 시스템
프론트엔드 개발자 B (session-ui-features):
- 기능별 페이지 구현
- 사용자 인터랙션
- 반응형 디자인
QA 엔지니어 (session-testing):
- 테스트 계획 수립
- 자동화 테스트 작성
- 품질 검증세션 동기화 전략
1. 정기적 통합
# 매일 오전 9시 자동 실행
# sync-sessions.sh
#!/bin/bash
echo "Starting daily session sync..."
# 각 세션의 변경사항을 메인 브랜치로 병합
cd feature-auth && git push origin feature/auth
cd ../feature-payment && git push origin feature/payment
cd ../frontend && git push origin feature/ui
# 메인 프로젝트에서 통합
cd ../main
git pull origin main
git merge origin/feature/auth
git merge origin/feature/payment
git merge origin/feature/ui
# 통합 테스트 실행
npm run test:integration
echo "Session sync completed!"2. 이벤트 기반 동기화
// .kiro/hooks/sync-on-completion.json
{
"id": "sync-sessions",
"name": "세션 완료 시 동기화",
"description": "주요 기능 완료 시 다른 세션들과 동기화",
"eventType": "agentStop",
"hookAction": "runCommand",
"command": "./scripts/sync-with-other-sessions.sh"
}3. 실시간 상태 공유
# shared-status.md - 모든 세션에서 참조
## 현재 개발 상태
### 인증 시스템 (feature-auth)
- ✅ 로그인 API 완료
- 🔄 소셜 로그인 개발 중
- ⏳ 권한 시스템 대기 중
### 결제 시스템 (feature-payment)
- ✅ 결제 API 완료
- ✅ 환불 로직 완료
- 🔄 정기 결제 개발 중
### UI 컴포넌트 (frontend)
- ✅ 기본 컴포넌트 완료
- 🔄 결제 UI 개발 중
- ⏳ 관리자 페이지 대기 중멀티세션 모범 사례
1. 명확한 책임 분리
✅ 좋은 예:
- 세션 A: 사용자 인증만 담당
- 세션 B: 상품 관리만 담당
- 세션 C: 주문 처리만 담당
❌ 나쁜 예:
- 세션 A: 인증 + 상품 관리 + 주문 처리2. 인터페이스 우선 설계
// 먼저 인터페이스 정의
interface AuthService {
login(email: string, password: string): Promise<AuthResult>;
logout(token: string): Promise<void>;
refreshToken(token: string): Promise<string>;
}
// 각 세션에서 구현
class JWTAuthService implements AuthService {
// 구현...
}3. 정기적인 통합 검증
# 매주 금요일 실행
# weekly-integration-check.sh
#!/bin/bash
echo "Weekly integration check..."
# 모든 세션의 최신 코드로 통합 빌드
./scripts/integrate-all-sessions.sh
# 전체 테스트 스위트 실행
npm run test:all
# 성능 테스트
npm run test:performance
# 보안 검사
npm run security:audit
echo "Integration check completed!"문제 해결
충돌 해결
# 세션 간 코드 충돌 발생 시
git merge --strategy-option=ours origin/feature/other-session
# 또는
git merge --strategy-option=theirs origin/feature/other-session의존성 관리
// package.json - 공통 의존성 관리
{
"workspaces": [
"main",
"feature-auth",
"feature-payment",
"frontend"
],
"devDependencies": {
"typescript": "^5.0.0",
"eslint": "^8.0.0",
"prettier": "^3.0.0"
}
}컨텍스트 동기화
# 주간 컨텍스트 동기화 미팅
1. 각 세션의 진행 상황 공유
2. 인터페이스 변경사항 논의
3. 통합 이슈 해결 방안 수립
4. 다음 주 계획 조율성과 측정
개발 속도 지표
- 기능 개발 속도: 40-60% 향상
- 병렬 개발 효율성: 70-80% 향상
- 통합 시간 단축: 50% 단축
- 버그 발생률: 30% 감소팀 협업 지표
- 코드 충돌 빈도: 60% 감소
- 코드 리뷰 시간: 40% 단축
- 지식 공유 효율성: 50% 향상
- 팀 만족도: 80% 향상멀티세션 워크플로우는 복잡한 프로젝트를 효율적으로 관리하면서 팀 생산성을 끌어올리는 도구입니다. 계획을 제대로 세우고 체계적으로 관리하면 개발 과정을 크게 바꿀 수 있습니다.
참고 문서
- Kiro 공식 사이트: https://kiro.dev
- Kiro 문서: https://kiro.dev/docs