내 이력서를 아는 면접관과 연습하세요.
GitHub 레포지토리와 이력서를 분석해 나만을 위한 질문을 만들고, 얕은 답변은 다시 파고드는 AI 모의면접 시뮬레이터입니다. 개발·비개발 직군 모두 지원합니다.
일반적인 모의면접 서비스는 누구에게나 같은 질문을 던집니다. STACK-UP은 지원자의 자료에서 질문을 만듭니다.
- 자료 등록 — GitHub 레포지토리, 이력서(PDF), 자기소개서를 올리면 AI가 분석해 임베딩 인덱스를 구축합니다.
- 맞춤 면접 — 기술 · 인성 · 통합 · 직무 맞춤(회사명 + 채용공고 기반) 4가지 모드. 첫 질문은 자기소개로 시작하고, 그 답변을 씨앗으로 본 질문 풀이 만들어집니다.
- 꼬리질문 — 답변이 얕으면 저지연 모델 + RAG로 즉시 파고듭니다. 생성되는 질문은 토큰 단위로 스트리밍됩니다.
- 음성 면접 — 질문은 TTS로 읽어 주고, 음성 답변은 STT로 받아 적습니다. 말 속도(어절/분) · 무음 구간 · 간투어까지 측정합니다.
- 종합 피드백 — 4축 채점(구체성 · 논리 · 구조 · 정확성), 멀티 면접관 패널 평가, 답변별 모범 답안과 리라이트, 학습 방향, 공유 링크까지.
flowchart TB
FE["Frontend<br/>React 19 · TypeScript · Vite"]
GW["Nginx Gateway"]
CORE["Core Server<br/>Spring Boot 4 · Java 21"]
RT["RealTime Server<br/>Go · SSE/WebSocket"]
AI["AI Server<br/>FastAPI · LangChain"]
MQ[["RabbitMQ"]]
PG[("PostgreSQL<br/>+ pgvector")]
S3[("S3 / MinIO")]
FE --> GW
GW --> CORE
GW --> RT
CORE <--> RT
CORE <--> MQ
MQ <--> AI
CORE --> PG
CORE --> S3
AI --> S3
| 컴포넌트 | 기술 | 책임 |
|---|---|---|
frontend/ |
React 19 · TypeScript · Vite · Tailwind v4 · TanStack Query | FSD 구조 SPA. 라이브 면접 UI, 피드백 리포트, 다크모드 |
backend/ |
Java 21 · Spring Boot 4 · JPA · QueryDSL · Flyway | 인증(GitHub · Google OAuth), 세션 · 메시지 · 피드백 API, DB 단독 접근 |
ai/ |
Python 3.13 · FastAPI · LangChain | 문서 분석 · 임베딩, 질문 생성, 답변 평가, 피드백 합성, STT/TTS |
realtime/ |
Go · chi · amqp091-go | 라이브 면접 WebSocket, 작업 상태 SSE, 토큰 스트리밍 중계 |
infra/ |
Docker Compose | PostgreSQL(+pgvector) · RabbitMQ · MinIO |
- PostgreSQL 단독 접근 — DB에는 Core 서버만 접근합니다. AI · RealTime은 API 또는 RabbitMQ를 경유해 데이터 소유권을 한곳에 둡니다.
- LLM 이중 모델 운용 — 세션 시작(질문 풀 생성)은 품질 우선 모델, 라이브 꼬리질문은 저지연 모델 + 사전 구축한 RAG 인덱스로 3초 내 응답을 노립니다.
- 비동기 메시징 + 멱등성 — AI 작업은 전부 RabbitMQ로 발행하고 콜백으로 수신합니다. DLX/DLQ, 멱등 키, 커밋 후 발행(
AFTER_COMMIT)으로 유실과 중복을 방어합니다. - 원자적 상태 전이 — 세션 시작 · 종료 · 중단은 조건부 UPDATE로 전이를 차지한 트랜잭션만 부수효과를 발행합니다. 동시 요청 · 스위퍼 경합에도 피드백이 중복 생성되지 않습니다.
- 분산 추적 — 모든 요청과 메시지에
X-Trace-Id를 전파하고, AI 요청은 비용까지 로깅합니다. - 아키텍처 룰의 코드화 — 백엔드는 ArchUnit으로 레이어 의존 방향 · 도메인 간 순환을 빌드 단계에서 차단하고, 프론트는 FSD 의존 규칙(
app → pages → features → domain → shared)을 따릅니다.
Docker, Java 21, Node.js 20+, Python 3.13(uv), Go가 필요합니다.
# 1. 환경 변수
cp .env.example .env
cp ai/.env.example ai/.env
# 2. 인프라 (PostgreSQL, RabbitMQ, MinIO)
docker compose up -d
# 3. 서버 실행 (각각 별도 터미널)
cd backend && ./gradlew bootRun
cd ai && uv sync && uv run uvicorn ai_server.main:app --reload
cd realtime && go run ./cmd/realtime
cd frontend && npm install && npm run devLLM · STT API 키가 없어도 mock provider로 부팅됩니다. 전체 변수 목록은 docs/environment.md를 참고하세요.
stackup/
├── frontend/ # React SPA (FSD: app → pages → widgets → features → domain → shared)
├── backend/ # Spring Boot Core 서버 (도메인 우선 패키징)
├── ai/ # FastAPI AI 서버 (LangChain 체인, RabbitMQ 컨슈머)
├── realtime/ # Go 실시간 서버 (SSE · WebSocket)
├── infra/ # Docker Compose, RabbitMQ definitions
└── docs/ # 횡단 관심사 문서 (아래 표)
| 주제 | 문서 |
|---|---|
| 시스템 아키텍처 · 책임 분담 | docs/architecture.md |
| 시나리오별 데이터 흐름 | docs/data-flow.md |
| REST API 규약 · 에러 코드 | docs/api-conventions.md |
| RabbitMQ 메시지 스키마 · 재시도 | docs/messaging.md |
| SSE 이벤트 스펙 | docs/event-stream.md |
| DB 스키마 · Flyway 정책 | docs/database.md |
| 보안 (인증 · 암호화 · 개인정보) | docs/security.md |
| 디자인 시스템 (SEED 토큰 · 다크모드) | docs/design-system.md |
| 브랜치 · 커밋 · PR 컨벤션 | docs/git-conventions.md |
전체 인덱스: docs/README.md
| 이름 | 담당 |
|---|---|
| 박상우 | Backend Core — Spring Boot, OAuth, 세션 · 리포트 API, DB |
| 정준모 | AI 서빙 — LangChain/RAG, STT/TTS, 프롬프트 |
| 조서현 | RealTime 서버(Go), Core-AI 연동, GitHub 분석 |
| 신재호 | Frontend — React UI, 미디어 스트림, 웹캠 |