seuk.suvisdev.cloud · Claude) 단독으로 진행 중이다. 코드는 09-18 8071fd9 이후 동결했고, 09-28 점검에서 컨테이너 5개와 헬스체크 모두 정상이었다. 다음 단계는 10-14~10-27 GPU 풀가동이다. → §7심사기간(09-20~10-17) 프리즈 배포를 3대 PC 온프레미스로 구축했다가, 2026-09-18 온프레미스를 폐쇄하고 AWS(Anthropic Claude) 배포로 전환하기로 결정. 무엇을 만들었고 · 어떤 오류를 어떻게 고쳤으며 · 왜 접었는지의 기록.
| 결정 | 온프레미스 폐쇄 · 심사는 AWS(EC2, Seuk-Team/Arda 배포)로 진행 |
| 시점 | 2026-09-18 |
| 핵심 사유 | 온프레미스 고유의 실패가 심사 직전에 계속 쌓임 — 로컬 sLLM(qwen3)의 다단계 도구호출 불안정, 브라우저→내부 MinIO 접근 불가. AWS 는 Claude(안정적 도구호출)+실 S3(브라우저 접근 가능)라 이 부류 오류가 원천적으로 없음 |
| AWS 로 이관 | 심사자용 데모 로그인(Login.tsx + 시연계정 잠금) → Seuk-Team/Arda 커밋 (AWS auto-CD 가 origin/main ff-merge 배포) |
| 자산 보존 | 코드는 해커톤 repo(Seuk-Hackathon/arda). 학습 어댑터·GPU 이미지·문서는 PC1/바탕화면 |
| PC | IP | 역할 |
|---|---|---|
| PC1 | 192.168.0.235 | Postgres · api · Caddy · n8n · MinIO · cloudflared(터널) · Ollama (GPU RTX 3050) |
| PC2 | 192.168.0.115 | lie-detection (답변-서류 일관성 대조 + 보조 신호 · STT · 표정 ViT) · RTX 3050 |
| PC3 | 192.168.0.122 | Ollama 예비(standby) |
arda.arda.suvisdev.cloud(프론트·Vercel) · arda-api.suvisdev.cloud(api · /ai/*→PC2 · /n8n/*)아래는 온프레 당시 구성이다. 심사·운영 서빙은 클라우드 Anthropic Claude(요약·평가·추천 3단 체인·도구 호출·FAQ)로 확정됐다. STT 는 업로드 답변·재전사·아르 음성 = OpenAI whisper-1 API, 실시간 면접 전사 = CPU 로컬 faster-whisper 로 갈려 돈다(09-17 운영 실측, ADR-0038 「같은 변수, 두 해석」 — §7-1). Qwen3 어댑터 3종은 직접 학습(Colab QLoRA)한 완결 R&D 자산으로 보존한다.
arda-agent(채팅·도구) v9 · arda-interview(면접) v6 · arda-summary(서류요약 전용) v1large-v3-turbo(int8, CPU). (현재 AWS 운영 STT 는 업로드 답변 = OpenAI whisper-1 API, 실시간 면접 전사 = CPU 로컬 faster-whisper — §7-1)cloverky/arda-expression-vit(CPU) · 얼굴 랜드마크는 MediaPipe(CPU)pg_dump(09-16)를 PC1 Postgres 에 restore. 더미 지원자 15 + fit-check 24명(전부 가상 인물·example.com)minio:9000 에 못 닿아 Postgres file_blobs(bytea) + 1회용 티켓 스트리밍으로 미리보기(ADR-0028 앵커라 미리보기 전용)stage-changed-arda) + Gmail SMTP. MAIL_DISPATCH=n8n 이라 MAIL_DRY_RUN 무관 실발송register-watchdog.ps1/wsl-watchdog.ps1 가 PowerShell 5.1 에서 파싱 실패
원인한글 주석 + 따옴표 손실(Start-Process -ArgumentList "-c","sleep infinity" 의 따옴표 벗겨짐)'"sleep infinity"' 로 따옴표 보존. keepalive 정상(result=0). 교훈: .ps1 은 영문 전용 + 전달 전 ParseFile/dry-run.STT_TIMEOUT_SEC=60 제거(기본 180 복원)chain_evaluate.v2 프롬프트의 출력 예시 숫자 70/40/60 을 소형 모델(qwen3)이 그대로 베낌. Claude 는 안 베껴서 AWS 에선 안 드러남chain_evaluate.v3: 예시 숫자 제거, 채점 구간표+절차 명시, 요건 비면 공고 제목 사용. 실측: 문해린 85·한지우 85·오하람 40·한도윤(디자이너) 15 ↔ Haiku 78·86·44 와 같은 방향 (커밋 6daaf32). ※ v9 채팅 어댑터는 요약에 부적합(<tool_call> 냄) → 전용 arda-summary 유지format 스키마도 못 막음_repair_inner_quotes) 추가. 정상 JSON 은 그대로 (커밋 615357d). 이후 56/56 파싱 성공minio:9000(컨테이너 내부 호스트) → 브라우저에서 이름이 안 풀림file_blobs 에 넣고 1회용 티켓 API URL 로 스트리밍(inline 미리보기). PUBLIC_API_BASE_URL 로 절대 URL 스킴 고정(mixed-content 해결)minio:9000 에 직접 PUT → 온프레에선 못 닿음. 공개 지원폼도 같은 코드라 온프레에선 아무도 브라우저로 이력서 못 올림0413840). presign-upload 가 온프레면 api PUT URL(/files/blob-put, 1회용 티켓)을 주고 서버가 MinIO 에 저장. 다운로드도 blob 없으면 MinIO 서버측 스트리밍. AWS(실 S3)는 기존 그대로. 터널 실측: PUT 200, MinIO 저장·티켓 1회용 확인Semaphore(1) 직렬화). 터짐이 아니라 느려짐
결과lie-detection GPU 변형 이미지(python:3.13-slim + torch cu124 + LD_LIBRARY_PATH) 빌드 + compose GPU 할당. 실측: 전사 7.5초→~1초, 8명 동시에도 대기줄 0, 정확도 동일. (커밋 안 함 — PC2 로컬 파일, 롤백 즉시)create_application) 폐쇄의 결정타list_postings 로 실제 공고 id 를 확인하지 않고 create_application 을 한 번에 호출하며 posting_id 추측(rounds=1). 안내를 줘도 추측 반복
판단프롬프트/데이터로 매번 땜질해야 하는 로컬 모델 한계. AWS 는 Claude 라 도구 체인을 안정 수행 → 이 부류 오류 없음 → 온프레 폐쇄 결정create_application 이 list_postings 건너뛰고 posting_id 추측. 채팅 접수·복잡 도구 흐름을 심사에서 신뢰 불가 (2-8)09-18 당시 계획. 09-28 확인: 동결 직전에 Seuk-Team/Arda 에 전부 머지·배포됐다 — 데모 로그인 #333(담당자·지원자 버튼, ?demo= 자동로그인), 시연계정 잠금 #335·#343, 데모 지원자 로그인마다 초기화 #338·#342. 상세는 §7.
Login.tsx(데모 버튼 + ?demo= 자동로그인) + 백엔드 DEMO_LOCKED(시연계정 비번/역할 잠금). → Seuk-Team/Arda PR #333(오너 허가). 머지 시 AWS auto-CD 배포DEMO_LOCKED_EMAILS env. 지원자 비번 로그인 백엔드는 이미 upstream 有~/arda(Seuk-Team origin/main, 09-18 당시 HEAD 75d2d1a — 최종 8071fd9), auto-CD deploy-arda.sh(2분 폴링 → ff-merge → build → up). compose 서비스 api·db·caddy·n8n·lie-detectionDesktop\arda\온프레미스\ — 이 문서 + 이전 구성보고·반영흐름 + stt_repro(STT 재현) + tools(요약 재생성·파일적재·복원 스크립트)/var/lib/ollama/adapters), GPU 이미지(arda-lie-detection:gpu), file_blobs, 복원 백업(~/backup)Seuk-Hackathon/arda(해커톤 repo) — 온프레 관련 커밋 전부 여기 보존. 온프레 전용 작업 중 Seuk-Team 으로 옮긴 것은 데모로그인(+시연계정 잠금)뿐.프리즈 배포 자체는 동작했다 — 폐쇄는 "안 됨"이 아니라 "심사 안정성 대비 유지비용" 판단이다.
| 항목 | 내용 |
|---|---|
| 심사 URL | https://seuk.suvisdev.cloud · API https://api.seuk.suvisdev.cloud |
| LLM | Claude (anthropic 백엔드). 자체 학습 Qwen 어댑터는 시연 경로에서 빠짐 — 연구·비교 자료로만 남음 |
| STT | 업로드 답변·재전사·아르 음성 = whisper-1 API · 실시간 면접 전사 = CPU 로컬 faster-whisper (09-17 운영 실측 STT_BACKEND 빈 값 — ADR-0038 「같은 변수, 두 해석」. 09-18 이후 값은 미확인) |
| 서버 | AWS t3.large (ap-northeast-2c, EBS 50GB) ≈ $2.8/일 |
| 컨테이너 | 5개 — api · db(postgres/pgvector) · caddy · n8n · lie-detection |
| 배포 | main merge → 2분 후 자동 반영 (systemd timer). 동결 이후 배포 없음 |
Seuk-Team/Arda main 마지막 커밋 8071fd9 (2026-09-18 18:22 KST). 해커톤 제출 마감(09-20) 이후 커밋·브랜치·PR 0건. 열린 PR 은 #311 (09-17, 미머지) 하나. api 컨테이너는 09-18 이후 재시작 없음.?demo= 자동로그인) · 시연계정 잠금(#335·#343) · 데모 지원자 로그인마다 인적성·면접일정·AI면접 초기화(#338·#342) · 아르 캔드 응답($0, #334·#347) · 무관 질문 거절을 '데이터 근거' 기준으로 · 지원자 FAQ 가 회사 프로필 근거(#348) · 자료 부족 지원자 자동 서류 탈락(#349·#351, ADR-0034 확장) · 아르 챗 이력서 드래그·드롭 접수·다중첨부(#318·#326·#336) · 이력서 변동 요약 chain·재접수 diff UI(#320·#327) · 탈락 축 빨간 표시(#328) · 면접 실시간 분석 수치 요약→종합평가 · 면접 링크 메일 발송 · 로그인 화면 소개 영상 팝업(#354) · 로그아웃 우측 상단 계정 메뉴 · ERD v2.8*/15 — 실제 실행 간격은 GitHub 스케줄 지연으로 수시간까지 벌어짐, api·front 200 확인, 실패 시 이슈 자동 생성) · 무결성 앵커 게시(매일) — 09-18 이후 전부 성공?demo=staff) → ab@ab.com (admin). 비밀번호·역할·사용자관리·메일템플릿 변경 잠김fitcheck-be-01@example.com. 로그인할 때마다 인적성·면접일정·AI면접 세 화면 초기화.env 스위치(STT_BACKEND · Ollama · VIT_MODEL) 변경은 해커톤 심사 종료 후에만. 제품 시연 10-27