-
Notifications
You must be signed in to change notification settings - Fork 0
07 Demo Deployment
hywznn edited this page Jul 21, 2026
·
3 revisions
데모도 배포입니다.
시연자 PC에서 LM Studio를 켜두고 호출하는 방식은 최종 데모 구조가 아닙니다. 최종 데모는 팀과 심사자가 접근 가능한 HTTPS 환경에서 PostgreSQL과 외부 LLM API 또는 클라우드 Model Endpoint를 사용합니다.
flowchart LR
U["시연자 / React Client"] -->|HTTPS| B["Spring Boot Demo"]
B --> P["PostgreSQL"]
B --> A["AI Adapter"]
A --> E["External LLM API / Cloud Endpoint"]
B --> O["Logs / Health"]
한 번의 Agent 배포를 다음 값의 조합으로 기록합니다.
- backend_version
- agent_version
- model_provider
- model_name
- model_version
- prompt_version
- context_pack_version
- workflow_catalog_version
데모 전에 실제 실행값을 확인할 수 있어야 합니다.
| 이름 | 목적 | 저장 위치 |
|---|---|---|
| SPRING_PROFILES_ACTIVE | prod 선택 | 배포 설정 |
| DATABASE_URL | PostgreSQL 연결 | Secret |
| DB_USERNAME / DB_PASSWORD | DB 인증 | Secret |
| JWT_SECRET | Access/Refresh 서명 | Secret |
| AI_PROVIDER | 외부 Provider 선택 | 배포 설정 |
| AI_BASE_URL | Provider Endpoint | 설정 또는 Secret |
| AI_API_KEY | 외부 LLM 인증 | Secret |
| AI_MODEL | 모델 이름 | 배포 설정 |
| AGENT_VERSION | Agent 배포 버전 | 배포 설정 |
| PROMPT_VERSION | Prompt 버전 | 배포 설정 |
| CONTEXT_PACK_VERSION | Context Pack 버전 | 배포 설정 |
| WORKFLOW_CATALOG_VERSION | Workflow 버전 | 배포 설정 |
실제 값은 Wiki, Issue, PR, Docker image에 기록하지 않습니다.
- main 기준 GitHub Actions 성공
- Docker image가 Java 17로 정상 기동
- prod 프로필에서 H2 미사용
-
ddl-auto: validate - Flyway migration 적용·롤백 영향 검토
- Seed에 실제 개인정보 없음
- HTTPS 적용
- CORS Origin 최소화
- JWT·DB·AI Secret 배포 환경에만 저장
- Swagger 공개 범위 결정
- 로그의 Authorization, Worker Link URL, 개인정보 확인
- 공개 링크 만료·폐기 정책 확인
- 외부 Provider와 모델명 확인
- LM Studio 종료 상태에서도 정상 작동
- Timeout, Retry, Rate Limit, 비용 한도 확인
- JSON Schema 오류가 안전하게 처리됨
- AiInvocation 버전·latency·오류 저장 확인
- liveness 확인
- readiness가 DB 연결 실패를 반영
- request_id로 API·AI·Audit 추적 가능
- 직전 배포 image 식별 가능
- DB migration 호환 범위 확인
- 장애 시 외부 AI 기능이 자동 발송으로 이어지지 않음
- Health와 readiness 확인
- HR 로그인
- 근로자 목록 조회
- 테스트 근로자 생성 또는 Seed 확인
- 복합 요청 분석
- 후보 2개와 버전 로그 확인
- 한 업무 승인
- Worker Link 생성·조회
- 근로자 응답 제출
- 완료와 AuditLog 확인
정확한 API Payload는 Swagger와 #10 E2E 이슈의 런북을 기준으로 합니다.
- 배포 상태와 DB 연결 확인
- 외부 LLM 상태·잔여 한도 확인
- 데모 계정 로그인 확인
- Seed 근로자와 날짜 확인
- 기존 Worker Link와 테스트 Token 폐기
- Golden Scenario 한 번 실행
대표 입력을 그대로 사용합니다.
응웬반A 체류연장 준비하고 여권 사본도 요청해줘
강조할 내용:
- 단순 번역이 아니라 업무카드 2개로 구조화
- 개인정보 최소 Context만 AI에 전달
- HR 승인 전 발송 금지
- 근로자는 만료 링크에서 제한된 행동만 가능
- 전체 과정과 Agent 버전 추적
| 증상 | 확인 | 안전한 대체 |
|---|---|---|
| 외부 LLM Timeout | AiInvocation request_id, Provider 상태 | Fake 결과를 진짜 AI 결과처럼 위장하지 않고 사전 녹화·로그로 구조 설명 |
| JSON 파싱 실패 | parsing_error, raw 전문 노출 금지 | REVIEW_REQUIRED 처리 화면 설명 |
| DB 연결 실패 | readiness, DB 상태 | 배포 재시작보다 DB·migration 확인 우선 |
| Worker Link 만료 | expires_at, revoked_at | HR 재발급 절차 시연 |
| 권한 오류 | 역할·company_id | 계정 변경 전에 감사 로그 확인 |
장애 상황에서도 AI 결과를 수동으로 승인된 것처럼 DB에 넣거나 개인정보를 로그로 출력하지 않습니다.
운영 고도화 시 Agent Router를 추가해 Blue/Green을 분리합니다.
0% → 10% → 50% → 100%
Green은 staging Smoke Evaluation을 통과한 뒤에만 트래픽을 받으며, 문제 발생 시 즉시 Blue로 되돌립니다. MVP에서는 버전 기록과 롤백 가능한 Docker image까지 준비합니다.