하랑이와 함께하는 모두의 AI 챌린지(내부 명칭 "모두의 AI 챌린지 2026")는 하랑이 캐릭터와 함께 학생이 AI 리터러시를 배우는 인터랙티브 학습 웹입니다. 학생은 어린이·청소년·성인(kid/teen/adult) 세 프로그램 중 하나를 골라 하랑이가 주인공인 스토리를 따라가며, 대사·선택지·퀴즈로 개념을 익히고 각 비트(beat)마다 실제 AI 도구를 직접 써봅니다. 모델 피커로 국산 모델인 Upstage Solar나 네이버 HyperCLOVA X를 골라 프롬프트를 보내면 답변이 토큰 단위로 실시간 스트리밍되고, 시스템 프롬프트를 직접 작성해 나만의 AI 비서를 만들거나 이미지·영상·음악 생성, OCR, 문서 요약·파싱, 정보 추출, 한 문장으로 웹페이지를 만드는 "바이브 코딩"까지 체험합니다. 성인 과정에서는 계약서 이미지를 올리면 OCR로 단어를 인식하고 위험·기간·의무·권리 항목을 골라 원본 위에 색으로 칠해 주는 에이전트 자동화를 경험하며, "세종대왕 맥북" 같은 일부러 틀린 환각 데모로 "AI의 답은 다시 확인해야 한다"는 점을 배운 뒤 마지막에 수료증을 받습니다.
약 4인 팀으로 진행했으며, 저는 프론트엔드와 백엔드 양쪽 모두에서 최다 기여자로 풀스택 리드를 맡았습니다. 프론트엔드에서는 16종의 비트(beat)를 discriminated union으로 정의하고 진행 상태(스테이지·비트 인덱스·선택 모델·정답 여부 등)를 들고 beat 종류에 따라 분기 렌더링하는 StoryPlayer 비트 엔진을 설계했고, 백엔드 OpenAPI 스펙에서 React Query 클라이언트를 자동 생성하는 Orval 파이프라인, 토큰 주입과 401 자동 갱신·재시도를 처리하는 axios 인스턴스, SSE 응답을 직접 파싱해 토큰을 누적하는 LLM 호출 계층, 중복 호출 차단과 실패 시 샘플 결과 폴백, PostHog·Sentry 계측을 구현했습니다. 백엔드에서는 FastAPI 비동기와 dependency-injector 기반으로 도메인·애플리케이션·인프라·프레젠테이션 계층으로 나눈 멀티 프로바이더 AI 게이트웨이를 만들어 Upstage·CLOVA·Gemini를 하나의 API로 묶었고, SSE 챗 스트리밍, OCR·문서 파싱·요약·이미지/영상/음악 생성 프록시, 그리고 바이브 코딩 결과 HTML을 S3 presigned URL로 공유하는 기능과 15MB 업로드 제한·한국어 에러 정규화를 담당했습니다.
기술스택: React 19, Vite, TanStack Router·Query, Panda CSS, Zustand, i18next(ko/en), Orval (프론트엔드) / Python 3.14, FastAPI, dependency-injector, httpx·OpenAI SDK, boto3(AWS S3), Sentry (백엔드) / Upstage Solar·Document OCR·Parse·Information Extract, 네이버 HyperCLOVA X(요약), Google Gemini(Nano Banana 이미지·Veo 영상·Lyria 음악) (외부 AI)