Skip to content

Feature/us 09 chunking embedding - Chunking 및 Embedding 작성#16

Merged
i3months merged 10 commits into
feature/us-09-repo-web-analyzerfrom
feature/us-09-chunking-embedding
May 16, 2026
Merged

Feature/us 09 chunking embedding - Chunking 및 Embedding 작성#16
i3months merged 10 commits into
feature/us-09-repo-web-analyzerfrom
feature/us-09-chunking-embedding

Conversation

@i3months

Copy link
Copy Markdown
Member

변경 사항

PDF 이력서 처리

<프론트 및 코어 백엔드>
사용자가 이력서 업로드 -> 코어 백엔드에서 MinIO에 저장 -> 관련 테이블 CRUD -> RabbitMQ 메세지 발행

<AI 서버>
RabbitMQ 메세지 수신 -> MinIO에서 PDF 가져옴 -> PDF 텍스트 추출 -> LLM 호출 -> MinIO에 마크다운 저장 -> 마크다운 chunking -> chunk를 pgvector에 embedding -> RabbitMQ 메세지 발행

<코어 백엔드>
RabbitMQ 메세지 수신 -> 관련 테이블 CRUD

Github 리포지토리 처리

<프론트 및 코어 백엔드>
사용자가 리포 추가 -> 코어 백엔드에서 관련 테이블 CRUD -> RabbitMQ 메세지 발행

<AI 서버>
메세지 수신 -> 깃허브 토큰 가져옴 -> 리포지토리 호출 -> 미리 설정한 우선순위 기반으로 프로젝트 분석 -> LLM 분석 -> MinIO 저장 -> 이후 똑같은 chunk embedding

웹 이력서 처리

모두 똑같지만 AI 서버가 PDF 텍스트 추출 대신 웹 텍스트 추출


뭘 하는지 간단하게 정리하겠습니다.

chunking

텍스트를 조각냅니다.
LLM 모델은 입력 길이에 한계가 있으니 분석한 md가 길어지면 다 못넣습니다.
조각 단위로 설정해야 질문과 관련된 부분을 타게팅 할 수 있습니다.

chunk_size는 조각의 최대 길이, chunk_overlap은 조각끼리 겹치는 길이를 의미합니다.
각 조각의 경계에서 의미가 잘리는걸 방지하기 위해 설정합니다.

자르는 기준은 줄바꿈 및 단어 경계입니다.

embedding

텍스트를 벡터로 변환합니다.
의미가 비슷한 텍스트끼리면 좌표가 가깝고 다르면 멀리 떨어집니다. (+1은 같은의미 0은 무관 -1은 반대)

RAG는 아래와 같이 수행됩니다.
면접 시뮬레이션에서 답변 텍스트를 임베딩 -> 이력서 조각과 비교 -> 가장 가까운 조각만 LLM 프롬프트에 주입

이번 PR의 구현에서는 구현체와 인터페이스를 분리합니다.
텍스트를 숫자로 바꾸는건 외부 API 없이 가능하지만 의미를 보존하는 숫자로 바꾸는 작업은 LLM이 필요합니다.

mock 구현체는 테스트 및 개발 환경에서 사용됩니다.
배포 환경에서는 외부 API를 사용합니다.

@vercel

vercel Bot commented May 15, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
stackup Ready Ready Preview, Comment May 15, 2026 10:06am

@i3months i3months changed the base branch from dev to feature/us-09-repo-web-analyzer May 15, 2026 09:37
@i3months i3months merged commit da3eb1e into feature/us-09-repo-web-analyzer May 16, 2026
2 checks passed
i3months added a commit to i3months/stackup that referenced this pull request Jun 30, 2026
UX 감사 후속(보류했던 중간 규모 6건).

- [Team-StackUp#9 데이터유실] 라이브 텍스트 답변 낙관적 업데이트 롤백: 답변은 WS fire-and-forget
  (ack 없음)이라 tempId별 10s 타임아웃 도입 — 시간 내 서버 반영(pendingAnswers
  content 매칭 소진)이 없으면 stuck 낙관적 메시지 제거 + 입력 복원(restoreDraft) +
  실패 토스트. 낙관적 상태를 COMPLETED→CREATED('전송 중')로. 해피패스(서버 COMPLETED
  대체)·dedup 보존, 언마운트 시 타이머 정리.
- [Team-StackUp#17] 세션 생성: maxQuestions >= generalQuestionCount 교차검증 + 인라인 안내,
  라벨 명료화('한 주제를 얼마나 파고들지', '꼬리질문 포함 전체 질문 최대 개수').
- [Team-StackUp#18] 피드백 리포트: 강점/개선/키워드/학습방향을 점수 직후로 끌어올림,
  직무적합도·이해도·첫인상을 '추가 평가' 그룹으로 묶어 '종합 점수 미반영' 면책 1회.
- [Team-StackUp#16] 세션 생성 페이지 '워크스페이스로' 복귀 링크 추가.
- [Team-StackUp#22] 터치 타깃: Stepper ± 및 DeliveryModeToggle min-h-11(>=44px).
- [Team-StackUp#12] 공용 ListSkeleton 도입, 5개 목록의 '불러오는 중…' 한 줄 → 고정높이 골격(CLS↓).

build 통과, lint 신규 에러 없음. 프론트 전용.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.

1 participant