Skip to content

Feat: web service launch [#97]#99

Merged
baekyutae merged 63 commits into
mainfrom
feat/97-web-service-launch
Jul 13, 2026
Merged

Feat: web service launch [#97]#99
baekyutae merged 63 commits into
mainfrom
feat/97-web-service-launch

Conversation

@baekyutae

@baekyutae baekyutae commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

요약

Biblio를 실제 사용 가능한 웹 서비스로 런칭한다. 프론트엔드 구축부터 쿠키 인증, 프로젝트·영상 관리 UI, YouTube 처리 파이프라인 안정화, 다운로드 프록시(WARP), 배포 인프라 변경까지를 하나의 런칭 단위로 묶었다.

주요 작업 단위

1. 모델 배포·롤백 E2E (#95, feat/95-train-deploy-rollback-e2e → merge #96)

  • feedback-loop: active 모델 복제 기반 candidate 배포 흐름, storage 경로 prefix 정규화 헬퍼 분리
  • 백엔드 기능별 E2E 시나리오·공통 실행 기반·헬퍼 검증 추가

2. 프론트엔드 초기 구축 (#85, feat/85-biblio-FE → merge #98)

  • Next.js 프로젝트 초기 설정, 핵심 UI 컴포넌트, 페이지 라우트, 로그인/회원가입 화면
  • API 클라이언트·인증 모듈, 컴포넌트·API·인증 테스트

3. 쿠키 기반 세션 인증 (core-api + FE + 공통 패키지)

  • core-api: 사용자 테이블, 쿠키 인증·CSRF 검증 API, 보안 검증 테스트
  • 프론트엔드: 쿠키 기반 로그인 흐름 연동
  • packages/biblio-auth 세션 쿠키 인증 공통 패키지 분리·병합

4. 프로젝트·영상 관리

  • 프로젝트 CRUD, 프로젝트, 영상 삭제 연동, 프로젝트 관리 UI ↔ 영상 작업 연결
  • 프로젝트 목록 복귀·로그아웃 버튼

5. YouTube URL 전처리 (병합)

  • videos: YouTube URL 전처리 흐름 추가

6. 검색 질의응답 & 피드백

  • search-service: 검색 질의 응답 저장 흐름
  • 프론트엔드: 검색 응답 피드백 버튼, 기록 로드 실패 시 현재 검색한 응답은 화면에 계속 표시되게 수정(기존에는 전부 미 표시)

7. 프론트엔드 배포 (Cloud Run)

  • Next.js API 프록시 라우팅
  • infra: frontend Cloud Run 배포 구성

8. 업로드 흐름

  • GCS signed URL 헤더·CORS 반영, 업로드 진행률, 로딩 스피너, 업로드중 화면 이탈 및 새로 고침 경고 메세지
  • 파일 크기 상한 조정(2GB → 500MB)

9. 파이프라인 워커 안정화

  • STT 단어 시간 기반 타임스탬프 복구: 첫세그먼트의 첫 타임스탬프(00:00)를 모든 청크에 복사하는 구조가 문제였음
  • 워커 실패 후 PROCESSING 작업 자동 복구 + 검증 시나리오

10. YouTube 다운로드 프록시 (WARP)

  • pipeline-worker: YouTube 다운로드 요청용 proxy, Deno 이미지 태그 고정
  • infra: 임베딩 VM에 wireproxy(WARP) SOCKS5 배선, 방화벽 1080 개통
  • 실제 YouTube URL E2E READY 검증 완료 (직결 시 403 → 프록시 경유로만 처리 성공)

11. 인프라 튜닝

  • 임베딩 모델 캐시 디스크 100GB → 20GB
  • postgres VM 부팅 디스크 50GB pd-ssd → 20GB pd-balanced (등급 하향)
  • pipeline-worker 메모리 512MB → 1GB (ffmpeg OOM 대응), concurrency 1 → 4
  • 업로드 파일 크기 상한 2GB → 500MB
  • GCP 요금 조회용 BigQuery SQL 추가

검증

  • 각 서비스 단위 테스트 및 프론트엔드 테스트 통과
  • 백엔드 E2E 시나리오 통과
  • 프로덕션(gcp-perf) 배포 후 로그인·업로드·검색·YouTube 처리 전 구간 동작 확인

참고 / 후속

  • WARP 무료 계정: 막히면 YOUTUBE_PROXY_URL만 유료 프록시로 교체 가능

이슈

Closes #97

baekyutae and others added 30 commits June 25, 2026 22:31
docs: template - 사용하지않음
사유: 과하게 문서 분량은 많음

e2e test - 로컬환경 기준에 outdated된 코드 기준 작성
Feat(feedback loop) 모델 배포/롤백 gcp 환경 테스트 및 스크립트 작성[#95]
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Feat(fe) biblio fe 데모 페이지 제작 [#85]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
baekyutae added 24 commits July 2, 2026 14:52
작업 내역:
- packages/biblio-auth 공통 인증 패키지 추가
- core-api와 search-service 인증 로직을 공통 패키지 기반 adapter로 정리
- search-service 세션 쿠키 인증과 CSRF 403 오류 경계 추가
- 실제 /api/v1/search, /api/v1/search/history 쿠키 인증 테스트 추가
- core-api/search-service Docker build context를 repo root 기준으로 변경
- .dockerignore 추가로 env, venv, node_modules, build 산출물을 Docker context에서 제외

검증:
- search-service 전체 테스트 174 passed
- core-api 전체 테스트 165 passed
- frontend 검색 관련 테스트 4 files / 13 tests passed
- core-api/search-service Docker build 통과
- Docker image 내부 biblio_auth import 확인
- git diff --check 통과

남은 항목:
- 같은 API host에서 /api/v1/search*를 search-service로 전달하는 배포 라우팅은 별도 인프라 작업으로 처리
  - add frontend standalone Dockerfile
  - add frontend Cloud Run service and public invoker binding
  - grant frontend service account invoker access to backend services
  - add linux/amd64 image build support
@baekyutae baekyutae self-assigned this Jul 13, 2026
@baekyutae baekyutae linked an issue Jul 13, 2026 that may be closed by this pull request
baekyutae and others added 2 commits July 13, 2026 20:59
의존성 install 시 lifecycle 스크립트(postinstall 등)로 악성 코드가
실행될 수 있는 경로를 차단한다. next build는 lint를 실행하지 않아
Docker 빌드에 영향 없음(--no-cache 전체 빌드 검증 완료).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

@baekyutae
baekyutae merged commit c4cdd8b into main Jul 13, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bilbio 웹 서비스 배포

1 participant