Ch3. 멀티세션 워크플로우
워크스페이스 기반 병렬 세션 관리, 컨텍스트 분리, 협업 패턴
멀티세션은 여러 개의 독립적인 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