[플레이데이터 SK네트웍스 Family AI 캠프 13기] 4차 프로젝트 회고: 신용카드 추천 챗봇 개발 💳

해피해피슈크림·2025년 7월 25일
post-thumbnail

안녕하세요. 이번 글에서는 저희 4차 팀 프로젝트, 신용카드 추천 챗봇 개발 과정과 그 과정에서 느낀 점을 기록해보려 합니다.

📌 Github 바로 가기

🎯 프로젝트 목표와 방향

4차 프로젝트는 3차 프로젝트의 기능을 유지한 채 AWS EC2와 Django 배포 경험을 쌓는 것이 핵심이었습니다.

저희 6조는 "신용카드 추천 챗봇"이라는 주제로 진행했습니다. 요즘 카드 혜택이 정말 다양하잖아요, 정보를 얻기 위해 카드사 웹사이트를 하나하나 비교하거나 블로그 후기를 찾는 건 번거로운 일입니다. 저희는 이런 문제를 해결하고자 대화형 인터페이스 기반의 카드 추천 시스템을 만들었습니다.

로그인 화면

챗봇 기본 화면

챗봇 답변 생성 화면

💡 개발 기능 및 구조 요약

시스템 구조는 다음과 같습니다.

  1. 사용자가 Web UI를 통해 질문을 입력합니다.

  2. Django view 함수에서 입력을 받아,

    • 일반 대화인지,
    • 카드 추천 요청인지 판단합니다.
  3. 일반 대화면 GPT에게 바로 전달해 응답을 생성하고,

  4. 카드 추천 요청이라면 Recommender 모듈을 거쳐 GPT 응답을 생성합니다.

Recommender 모듈은 핵심 로직을 담당하며, 내부 구성은 다음과 같습니다:

self.rag_chain = (
    RunnableLambda(self._retrieve_and_filter_docs)   # 🔍 문서 검색 & 필터링
    | RunnableLambda(self._format_docs_for_prompt)   # 📄 포맷팅
    | PromptBuilder.create_recommendation_prompt()   # 🧠 프롬프트 생성
    | self.model_manager.llm                         # 🤖 GPT 호출
    | StrOutputParser()                              # 🔤 문자열로 변환
)

이 체인을 통해 사용자의 쿼리에 적절한 카드 정보를 찾아 자연어로 추천해주는 흐름입니다.

🔍 기능적 특징

  • 로그인 기능: 인증된 사용자만 사용 가능하도록 설정
  • FAISS 기반 벡터 DB 사용: 빠른 유사도 검색으로 밀리초 단위 응답
  • 모듈화된 구조: 검색 → 필터링 → 포맷팅 → GPT 응답까지 각 기능이 독립적
  • 장고 앱 구조로 유지보수성과 확장성을 고려해 설계

🔧 맡은 역할

저는 이번 프로젝트에서 로그인 기능 구현과 발표를 담당했습니다. 로그인 기능을 구현하면서 Django를 더 깊이 이해하고, 발표를 준비하면서 전체 시스템의 흐름을 정리할 수 있었습니다.

🌱 느낀 점

  • 발표를 위해 팀의 작업을 구조화해 정리하며 프로젝트의 전체적인 흐름을 더 깊게 이해할 수 있었습니다.
  • Django와 AWS EC2 환경에서 직접 배포해보면서, 단순히 작동하는 코드보다 사용자가 접근 가능한 웹 서비스로 만드는 과정이 얼마나 많은 고려사항을 필요로 하는지 배웠습니다.

🚀 다음 도전

이제 최종 프로젝트가 남아 있습니다. 이번 프로젝트 경험을 바탕으로, 더 정교한 시스템사용자 경험을 고려한 인터페이스를 설계해보고자 합니다. 특히 발표와 문서화 경험은 제게 큰 자산이 되었습니다. 기술을 설명하고 전달하는 능력을 계속 발전시키고 싶습니다.

읽어주셔서 감사합니다!

0개의 댓글