이남기 — 프로젝트 포트폴리오

여행 플랫폼에서 7년. 최근 2년은 LLM 기반 상담·자동화 시스템과 호텔 검색을 프로덕션에 올렸습니다.
이 문서는 이력서의 각 줄이 실제로 무엇이었는지를 설명합니다.

측정된 결과

무엇전후어떻게 쟀나
항공권 수수료 응답시간 (p50)27.9초104ms운영 로그 189,131건. 경로 태그를 함께 적재해 1년 뒤 경로별 비교
상담 에이전트 자동 응답률상담 운영시간 외 응대 없음89.1%대화 로그 28,017턴 / 사용자 10,457명
호텔 자동완성 결과 0건 요청 비율15.5% · 18.6%0.26% · 0.84%브라우저 실측(프리비아 · 투어비스), 글자 입력마다 한 번씩 센 요청. 배포 전 14일 vs 후 27시간

호출당 토큰은 2,709에서 302로(88.9%↓) 줄었고, 상담사 이관율은 14.1%에서 8.9%로(37%↓) 내려갔습니다.
POI 지도 검색은 없던 검색 축을 새로 내 지금 월 21.9만 회 호출로 쓰이고 있습니다.

목차

깊게 다루는 것

#케이스한 줄
1항공권 취소 수수료 자동 산출상담사가 규정을 읽어 계산하던 문의를 고객이 직접 조회하게. 규정을 읽는 일을 LLM에서 파서로 한 항공사씩 옮겼습니다
2POI 지도 검색"에펠탑 근처 호텔"이 검색되지 않던 상태에서 문장 검색을 새로 냈습니다. 자연어 의도 분류 · 1,000건 지도 표시 · 가격 수급 · 상태 관리 네 문제로 풉니다
3AI 상담 에이전트 2종상담사가 받던 1차 응대를 봇에게. 봇에게는 조회와 안내만 맡기고, 답의 내용은 서버가 확정하고 모델은 문장으로만 옮깁니다

중간 깊이로 다루는 것

#케이스한 줄
6챗봇 인시던트 대응 에이전트상담사 제보가 올라오면 에이전트가 받아 확인·분석·수정·검증을 돌립니다. 고쳤다는 증명은 고객이 받을 문장으로, 머지와 배포는 사람이 합니다
7호텔 검색 자동완성 완화이름을 조금만 다르게 쳐도 0건이던 자동완성을, 정확히 맞는 결과는 그대로 두고 그 아래에만 비슷한 이름을 붙이게 고쳤습니다. A/B 없이 배포 전 색인·쿼리를 보존해 효과와 회귀를 갈랐습니다

짧게 다루는 것

#케이스한 줄
4팀 배포 체계 구축없던 배포 체계를 세워 한 곳으로 모았습니다. 그 표준이 장애도 하나 퍼뜨렸습니다
5여행 예약 플랫폼 프론트엔드호텔·항공 예약과 결제 플로우를 화면 단위로 만들었습니다. 성과 수치는 없고, 없는 이유를 적었습니다

읽는 법

케이스마다 같은 순서입니다 — 배경 → 문제정의 → 해결방안 → 결과 → 정직하게. 이력서의 각 프로젝트 절과 같은 틀이라, 이력서에서 읽은 줄이 여기서 그대로 펼쳐집니다. 깊은 3편과 중간 2편(케이스 6·7)은 소문제 3~4개로, 짧은 2편은 요지 ①②③으로 씁니다.
정황인 것과 확인된 것을 구분해 적었고, 아직 못 잰 것은 못 잰 이유와 함께 남겼습니다.

기술 스택

Frontend Next.js 14~16 · React 19 · TypeScript · Tailwind · Zustand · TanStack Query
Backend FastAPI · SQLAlchemy 2.0(async) · Pydantic · Node.js
AI LangGraph · LangChain · OpenAI · Gemini
Data PostgreSQL(Supabase) · Elasticsearch · BigQuery
Infra GCP Cloud Run · Vercel · Docker · GitHub Actions(Reusable Workflow)
Test pytest · Vitest · Playwright

© 2026 이남기 · portfolio.namgee.dev