NCP 클라우드 위에 반려동물 상담 RAG 챗봇 하루 만에 올리기
무엇을 만들었나
NCP CLOVA Studio(HyperCLOVA X)를 LLM으로, LangChain(공식 langchain-naver 통합)을 오케스트레이션으로, Streamlit을 UI로 쓰는 반려동물 훈육·행동교정 상담 RAG 챗봇을 하루 만에 만들었다.
파이프라인
data/ 아래 문서(.md/.txt)를 청킹해서 ClovaXEmbeddings로 임베딩하고 FAISS 로컬 인덱스로 저장하는 ingest 스크립트, 그리고 retriever + ChatClovaX로 구성한 LangChain RAG 체인. 반려동물과 무관한 질문은 검색 단계에서 걸러서 LLM 호출 자체를 아예 안 하도록 했다 — 불필요한 API 비용도 줄고 응답도 빨라진다.
디자인은 별도 문서(Design.md)로 Intercom의 디자인 시스템을 분석해서 기준을 잡았다. 캔버스는 크림(#f5f1ec), 카드는 화이트+헤어라인 테두리(그림자 없음), 프라이머리는 charcoal이고 오렌지는 "AI" 배지에만 한정해서 썼다. Saans 폰트는 라이선스 문제로 공식 대체 가이드대로 Inter로 바꿨다.
NCP 배포 아키텍처
NKS(Kubernetes)는 이 정도 규모의 단일 앱엔 과하다고 판단해서 NCP Server(VM) + systemd로 배포하기로 했다. 서버를 Private Subnet에 두고 ALB로만 노출하는 구성을 ARCHITECTURE.md에 정리했다 — Subnet 5개(pub-subnet/pub-lb/pub-nat/pri-subnet/pri-db), Bastion은 Ubuntu, App 서버는 Rocky Linux, 하이퍼바이저는 KVM으로 실제 NCP 콘솔에서 생성한 이름 그대로 문서를 동기화했다.
하루의 순서
초기 구현 → GitHub 저장소 링크를 README에 추가 → 실제 콘솔에서 만든 리소스 이름으로 아키텍처 문서를 다시 맞추는 순서로 마무리했다. 문서를 먼저 쓰고 나중에 인프라를 맞추는 대신, 실제로 만든 뒤 문서를 실물에 맞게 동기화하는 쪽이 더 정확했다.