전송 방식과 생성 방식을 구분
서버의 실제 토큰 이벤트만 표시합니다. error나 done 없는 종료는 미완료로 분류하고 부분 응답은 보고서에 저장하지 않습니다. 실패를 규칙 응답으로 대체하지 않습니다.
답변을 돌아보고, 다음 질문으로.
질문·응답·스트리밍을 연결한 AI 인터페이스 실험
AI 예상 질문·2문항 면접·독립 평가·실제 SSE·서버 JSON 보고서 다운로드
공개 API에서 합성 답변의 2문항 면접·후속 질문·보고서·종료를 확인했습니다. 게임·SSE 실제 추론 검증은 남아 있습니다. 로컬 연습은 AI 평가와 구분합니다.
FastAPI·Streamlit과 React fetch 스트리밍을 학습한 개인 프로젝트입니다. 이번 확장은 원본 화면 구조를 유지하면서 실제 서버 면접·평가·보고서와 실시간 토큰 소비를 연결합니다.
FastAPI·Streamlit 기반 스트리밍 구현 및 React fetch 스트림 처리 학습·구현.
DECISIONS & TRADE-OFFS서버의 실제 토큰 이벤트만 표시합니다. error나 done 없는 종료는 미완료로 분류하고 부분 응답은 보고서에 저장하지 않습니다. 실패를 규칙 응답으로 대체하지 않습니다.
TXT와 답변·수동 토큰은 저장하지 않습니다. 공용 익명 토큰만 같은 탭에 최대 1시간 보관합니다. 설정은 명시적으로 저장할 때만 남기며 진행 중 요청은 중단할 수 있습니다.
원본 React 화면의 시각적 구조를 유지하며 실제 AI 질문·서버 면접 세션·답변 평가·후속 질문·종합 보고서·fetch SSE를 연결했습니다. 2026-10-30 공개 API에서 합성 답변의 2문항 면접·보고서·종료를 확인했습니다. 실제 SSE와 모든 생성 기능의 운영 검증은 남아 있습니다. 점수는 학습용 모델 추정치이며 별도 로컬 연습은 규칙 피드백입니다. 사내 문서·벡터 인덱스는 옮기지 않았습니다.
개발 당시 기록을 기준으로 정리했습니다. 아래 결과는 이 웹사이트의 체험 기능에서 새로 측정한 값이 아닙니다.
Streamlit에서는 프레임워크가 텍스트 표시 흐름을 제공
React에서 fetch로 응답을 읽고 화면에 단계적으로 반영
Streamlit에서는 정형화된 구조로 스트리밍 텍스트를 안정적으로 표시했지만, React에서는 데이터를 받는 방식과 화면 상태 갱신을 직접 설계해야 했습니다.
두 UI 환경이 스트림을 소비하고 렌더링하는 책임이 달랐습니다. 당시 axios를 사용하는 수신 코드로는 원하는 점진 표시 흐름을 구성하기 어려웠습니다.
당시 React 쪽 수신 구조를 fetch 기반으로 바꾸고 응답 스트림을 읽어 도착한 텍스트를 단계적으로 화면에 반영했습니다. axios가 모든 환경에서 스트리밍을 지원하지 않는다는 뜻은 아닙니다.
개정2 PDF p.31과 원본 React 스트림 소비 코드를 대조했습니다. 이번 확장의 UTF-8 청크 분할·SSE 종료·오류·취소 검사는 별도의 프론트 테스트로 확인하며 당시 측정 결과로 소급하지 않습니다.
개정 PDF에는 React 기반 스트리밍 구조를 구현·학습한 경험이 기록돼 있습니다. 네트워크 성능 향상률이나 생성 모델의 실시간 토큰 속도는 측정되지 않았습니다.
스트림 전송과 UI의 점진 렌더링, 모델의 토큰 생성은 각각 다른 경계입니다. 이번 확장은 서버가 실제 생성한 토큰만 표시하고 완료 이벤트가 없는 부분 응답을 실패로 처리합니다.
근거 · 범위 개정 포트폴리오 PDF p.31의 Streamlit·React·fetch 선택 기록. 이번 실제 AI API 확장과 당시 구현 경험을 구분합니다.
고정 질문·규칙 응답·실패 후 로컬 대체로 실제 AI와 혼동
서버 세션·revision·실제 평가 결과만 반영
기존 포트폴리오 대화는 실제 면접 세션이 아니었고 서버 실패 뒤 로컬 응답으로 대체해 AI 평가와 혼동할 수 있었습니다.
프론트 대화 상태와 서버의 세션·완료 상태가 연결되지 않았습니다. SSE에는 독립 10초 제한이 있어 공유 GPU 대기열과 추론보다 먼저 중단될 수 있었습니다.
최신 OpenAPI에 맞춰 질문·시작·답변·상태·종료·보고서·독립 평가를 연결했습니다. revision으로 중복을 막고 취소·연결 중단 후 상태 조회를 요구합니다. SSE는 fetch·AbortController와 전체 165초 여유를 사용하며 부분 응답을 보고서로 저장하지 않습니다.
청크 분할·terminal error·조기 종료·취소와 면접 상태 전이는 Mock 회귀 테스트로 검증합니다. 초기 공개 API 검사에서는 첫 답변이 503이었으나, 같은 날 후속 검사에서 합성 답변의 2문항 면접·보고서·종료 200, 오래된 revision 409를 확인했습니다. 게임·실제 SSE 성공 검증은 남아 있습니다.
실제 AI 면접은 서버 결과만 사용하며 자동 로컬 대체를 제거했습니다. 공개 API에서 5회 모델 예산의 2문항 흐름과 예산 소진 후 429를 확인했습니다. 별도 로컬 연습은 AI 미사용을 명시하고 서버 면접 점수를 만들지 않습니다.
시작 성공과 면접 완료는 다릅니다. 실패 호출도 예산을 쓰므로 자동 재시도나 체험권 재발급 대신 실제 상태와 사용량을 확인해야 합니다.
근거 · 범위 이번 프론트 변경·최신 서버 API 계약·2026-10-30 공개 API 검증. 원본 PDF의 과거 성과로 표시하지 않습니다.