2 분 소요

🧠 시작하며

2024년 8월, 생성형 AI 기술이 막 본격적으로 산업에 스며들던 시기에,
저는 AWS DNA GenAI 6기 프로그램에 참여해 실제 고객 문제를 해결하기 위한 챗봇 프로젝트를 수행했습니다.

당시 GPT-4, Bedrock, LangChain, RAG 등의 기술이 하나둘씩 등장하고 있었고,
이를 단순히 따라가거나 체험하는 수준이 아닌, 직접 프로덕트를 만들어내는 프로젝트에 뛰어들었습니다.


문제 정의와 기획

웹 기반 서비스 툴을 사용하는 초보 사용자들은 다양한 기능을 접하면서
무엇을 먼저 해야 할지, 어디서 시작해야 할지 막막함을 느끼기 쉽습니다.
제가 다니고있는 기업의 솔루션은 고객들에게 이런 질문들을 자주 받고있습니다.

  • “디자인 모드는 어디서 접근하죠?”
  • “결제 시스템은 어떻게 신청하나요?”
  • “상품은 어디서 등록하나요?”

이런 입문자 중심의 질문들을 실시간으로 안내할 수 있는 인터페이스가 필요했고,
그 해결책으로 생성형 AI 기반 가이드 챗봇을 기획하게 되었습니다.


🧩 구조 설계

프로젝트 초기에는 단순한 챗봇을 예상했지만, 실제 유저 시나리오와 문맥을 다루기 위해
다음과 같은 구조가 필요하다는 판단을 내렸습니다.

🔧 전체 구성도

AWS 클라우드 아키텍처를 통한 챗봇 시스템 구성도 - 사용자부터 Bedrock까지의 데이터 흐름
사용자 → 프론트엔드 → API → LangChain → Bedrock → 응답 스트리밍(SSE)

  • OpenSearch: 사전 FAQ 데이터를 벡터 임베딩하여 검색
  • LangChain: 질문 문맥과 검색 결과를 조합하여 프롬프트 구성
  • Bedrock Titan V2: 질문 가공 및 응답 생성
  • SSE (Server-Sent Events): LLM 응답을 실시간 스트리밍

🔨 실제 구현 내용

📁 데이터 전처리

  • FAQ CSV를 S3에 업로드 → Titan V2 Embedding을 통해 OpenSearch에 등록
  • Titan V2는 Cohere 대비 검색 품질이 우수하여 최종 채택
  • OpenSearch Hybrid Search (Lexical 6 : Semantic 4) 비율 설정

🧠 LLM 프롬프트 전략

  • 사용자 이전 대화 히스토리와 현재 쿼리를 합쳐 LangChain으로 가공
  • 검색 결과를 포함하여 Bedrock에 전달
  • 할루시네이션 회피 로직 적용: 관련 문서 없을 경우 “추가 질문 유도”
  • 답변에 가이드 링크 포함 (실제 URL 패턴 기반)

🛰 SSE 통신 처리

  • GPT 응답 내 개행 문자 \n이 SSE의 delimiter(\n\n)와 충돌하여 응답 누락 발생
  • 사용자 경험 저하 방지를 위해 delimiter 재정의 및 문자열 치환 처리

🎬 시연 및 발표

프로젝트 후반에는 실제 사용자 시나리오를 시연하는 데모와 함께 발표도 진행하였습니다.

  • 사용자: “사이트 만들려면 뭐부터 해야 하나요?”
  • 챗봇: “디자인 모드에 접근하여 템플릿을 선택해보세요. 되돌리기, 복구하기 기능도 함께 활용해보세요.”

아래는 발표 당시의 모습입니다:

AWS DNA Day 6 발표 중 챗봇 구조와 프롬프트 설계 전략을 설명하는 발표자의 모습
※ 발표 중 챗봇 구조와 프롬프트 설계 전략을 설명하는 장면


🧭 결과 및 한계

  • 실제로 동작 가능한 챗봇 MVP를 구현했고,
  • 실사용자 시나리오에 대응 가능한 수준의 시스템을 완성하였습니다.

하지만 아쉽게도 기업 서비스에 직접 반영되지는 못했습니다.
운영 리스크, 유지관리 부담, 우선순위 조정 등의 현실적인 벽이 있었고,
이는 기술 프로젝트가 실전에서 어떤 제약을 만나는지를 뼈저리게 체감하게 해주었습니다.


💡 얻은 것들

✅ 기술적으로

  • LangChain, OpenSearch, Bedrock 기반의 RAG 구조를 실제로 설계하고 구현해봄
  • Hybrid Search 비율 조정, SSE 스트리밍 오류 대응 등 운영 레벨의 문제도 경험
  • Embedding 모델 선택, 프롬프트 구조 설계 등 LLM 기반 설계의 핵심 고려사항을 몸으로 익힘

✅ 개인적으로

  • 기획부터 발표까지 전 과정을 경험하면서 신기술을 실전 문제에 적용할 수 있는 역량을 확인
  • 단순 구현이 아닌, 사용자와 시스템의 흐름을 설계하는 사고 과정을 훈련
  • 새로운 기술을 빠르게 흡수하고, 불확실한 영역에서 시도하며 만들어내는 힘을 실감

✍️ 마무리하며

이 프로젝트는 단순히 챗봇을 만들어본 경험이 아니라,
생성형 AI 기술을 이용해 실전 문제를 해결하려는 시도였으며,
불확실하고 낯선 영역에 스스로 뛰어들어 문제를 끝까지 밀어붙인 작은 도전의 기록이었습니다.

비록 완성된 제품으로 이어지지는 않았지만,
이 과정을 통해 얻은 지식과 경험은 분명히 다음 시도에서 더 나은 선택을 이끌어줄 밑바탕이 될 것입니다.

댓글남기기