MapleStory Finger Point

[SSAFYdia] 5일 만에 AI 챗봇 완성?! 🔥 | SSAFY에서 배운 LLM & RAG 실전 적용기

2025. 1. 27. 18:09Archive/SSAFY

 

˗ˋˏ 안녕하세요! ˎˊ˗

 

이번 기사를 통해 겨울 12기 SSAFY 계절학기에서 AI 코스를 수강하면서 AI, LLM, 그리고 RAG 기술을 배우고 이를 활용한 챗봇 프로젝트까지 진행한 경험을 공유하려고 합니다. 

 

처음엔 AI 기술을 단순히 학습하는 과정이라고 생각했는데 직접 구현하고 배포까지 해보면서 진짜 실무에서 AI 서비스를 만들려면 어떤 과정이 필요한지 몸소 체험할 수 있었던 시간이었습니다! ദി ᷇ᵕ ᷆ )

 

 

따라서, 이번 기사에서는 다음 내용들을 다뤄보겠습니다.

✅ AI, LLM, RAG 개념 정리
✅ 5일 동안 진행한 구미 맛집 추천 챗봇 프로젝트
✅ 배운 점 & 느낀 점 & 아쉬운 점

 

ps. 2학기를 진행 중인 12기 SSAFY 교육생분들 중 프로젝트에 AI를 어떻게 활용해야 할지 고민이 되시는 분들은 해당 내용을 참고하여 RAG를 프로젝트에 적용하는 방안을 생각해 보시면 좋을 것 같습니다! ( ◜࿀◝ )

 

 


 

🎯 AI, LLM, RAG 기술이 뭘까?

 

"해당 이미지는 DALL-E 모델로 생성한 이미지입니다."

 

계절학기 동안 이러한 개념들을 배우고 직접 실습하면서 챗봇 서비스를 만들어 보는 프로젝트까지 진행했습니다!

1️⃣ AI (Artificial Intelligence, 인공지능)

  • 인공지능은 우리가 흔히 알고 있는 머신러닝, 딥러닝, 자연어 처리(NLP) 등의 기술을 포함하는 개념이에요.
  • 이번 프로젝트에서는 특히 자연어 처리(NLP)와 LLM을 활용한 챗봇 개발에 집중했습니다.

2️⃣ LLM (Large Language Model, 대규모 언어 모델)

  • ChatGPT 같은 대규모 언어 모델(LLM)은 엄청난 양의 텍스트 데이터를 학습해서 인간처럼 말을 이해하고 생성할 수 있어요.
  • GPT-4, Claude, Gemini 같은 모델들이 대표적인 LLM입니다.

3️⃣ RAG (Retrieval-Augmented Generation, 검색 기반 생성 모델)

  • LLM은 모든 걸 기억할 수 없고 학습된 시점 이후의 데이터에 대해서는 알지 못합니다. 그래서 외부 데이터베이스에서 정보를 검색(Retrieve) 한 후 그걸 기반으로 답변을 생성(Generate)하는 방식이 RAG입니다.
  • 쉽게 말해, LLM이 최신 정보를 모를 때 RAG를 활용하면 최신 데이터를 찾아와서 답변을 만들어주는 역할을 합니다.
  • 이걸 이용하면 AI 챗봇이 더 정확하고 신뢰도 높은 답변을 할 수 있어요!

 

 

"해당 이미지는 DALL-E 모델로 생성한 이미지입니다."

 


 

🍽 5일 동안 개발한 맛집 추천 챗봇 '맛있구미' (MatEatGumi)

 

"맛있구미"는 ✨ 최신 사용자 리뷰를 기반으로 구미에서 맛집을 추천해 주는 AI 챗봇 서비스 ✨ 입니다.

 

💡 프로젝트 개요

1️⃣ 구미 지역 맛집의 최신 리뷰 데이터를 수집
2️⃣ RAG 파이프라인을 구축해서 데이터 검색 가능하게 만들기
3️⃣ 사용자가 질문하면 적절한 맛집을 추천해 주는 챗봇 서비스 개발

 

이 과정을 통해 AI 챗봇을 단순히 생성 모델이 아니라 검색 + 생성(RAG) 시스템으로 만들어 볼 수 있었습니다!

 

🚀 프로젝트 목표

프로젝트를 진행하면서 설정했던 목표는 다음과 같습니다.

✅ AI 챗봇을 실제 서비스처럼 구현해 보기
✅ RAG 기반으로 데이터를 검색해서 더 정확한 답변을 제공하도록 만들기
✅ 프론트엔드 + 백엔드 + AI 시스템까지 직접 배포해 보기

 

🗺 프로젝트 진행 과정 (로드맵)

✅ Day 1 (2024.12.30) - 기획 & 데이터 수집

 

팀원들과 처음으로 만나서 이야기를 나누면서 너무 어려운 주제가 아닌 친숙하고 쉬운 주제로 RAG 학습에 초점을 맞추는 것으로 의견을 모으고 맛집 추천 챗봇을 만들기로 결정했습니다.

또한 "진평동 맛집", "인동 맛집"이라는 검색 키워드를 가지고 웹 스크래핑을 통해 50개 맛집 & 100개 리뷰 데이터를 수집했고 Pinecone 벡터 DB를 사용해 데이터를 저장했습니다.

 

✅ Day 2-3 (2024.12.31 - 2025.01.01) - 개발 & 배포

  • 백엔드: FastAPI로 챗봇 API 만들기 & Fly.io 배포
  • 프론트엔드: Parcel.js로 빌드 & Vercel에 배포
  • RAG 파이프라인 구축: Pinecone DB에 데이터 저장 & 검색 기능 개발

 

✅ Day 4 (2025.01.02) - 기능 개선 & 평가

 

OpenAI Assistant API를 활용해 대화 맥락 유지 기능 추가했습니다. 그래서 챗봇이 이전 대화의 맥락을 기억하고 현재 응답에 반영할 수 있게 되었습니다. 또한 문서 검색 개수(k) 파라미터 값을 조정하여 답변을 비교하는 방식으로 RAG 성능 테스트를 진행하고 데이터 검색 정확도 및 응답 속도 측정했습니다.

 

답변 길이에서 차이가 생기네요!

 

✅ Day 5 (2025.01.03) - 최종 점검 & 코드 정리

응답 대기 로딩 인디케이터 추가 등 챗봇 UI 최적화를 진행하고 간단한 코드 리팩토링과 최종 배포를 완료하고 발표 자료를 준비했습니다!

 

 

5일이라는 시간(발표 날짜를 제외하면 4일이고 연휴도 제외하면 3일..!)이 꽤 부족할 것 같다고 생각했는데 나름 계획대로 잘 진행되어서 프로젝트를 잘 마무리할 수 있었던 것 같습니다!

 


 

🗣️ 프로젝트 후기

💡 프로젝트를 통해 배운 점

🔥 1️⃣ LLM + RAG 조합의 강력함

처음엔 그냥 GPT API를 활용하면 되는 거 아닌가? 싶었는데 RAG를 적용하니까 훨씬 신뢰도 높은 답변을 제공할 수 있었어요!

특히 최신 데이터를 검색하고 챗봇이 답변을 생성하는 과정이 흥미로웠습니다.

 

실제로 RAG 파이프라인을 설계하면서 RAG와 LLM에 대한 이해도를 더욱 높일 수 있었습니다.

 

🚀 2️⃣ 실무에서의 AI 서비스 배포 경험

단순히 AI 모델을 개발하는 것뿐만 아니라 실제 사용자에게 서비스 제공하려면 배포 과정도 중요하다!라는 걸 깨달았습니다.

또한 FastAPI + Fly.io / Parcel.js + Vercel 배포 과정을 경험하면서 웹 서비스 배포에 대한 이해도가 높아졌어요.

Open API로 제공되는 다양한 AI 서비스를 사용해 보는 경험을 통해 이후 프로젝트에서 AI를 어떻게 활용할 수 있을지에 대한 고민이 해소되었습니다. (직접 한 땀 한 땀 데이터셋을 구축하고 모델을 전이학습을 통해서든 무조건 커스텀하게 학습시켜야 한다는 강박에서 벗어난 것 같습니다..!)

 

 

3️⃣ 속도가 중요하다! (성능 최적화의 필요성)

처음엔 Pinecone 검색 속도가 10초 이상 걸리는 문제가 있었는데 이걸 최적화하지 않으면 사용자가 이탈할 수밖에 없다는 걸 직접 경험했어요.

성능 개선은 아직 부족하지만 다음엔 더 빠르게 만들 수 있도록 연구해 봐야겠습니다..!

 

 

🤔 아쉬운 점 & 개선할 점

🔻 서버 응답 속도 문제로 인하여 응답 시간이 10초 이상 걸려서 실시간 사용성이 떨어졌음 😭
🔻 정량적인 평가 부족으로 검색 정확도를 평가할 기준을 만들지 못함
🔻 강의 코드를 따라가긴 했지만 실제로 배포 과정 중에 세부 설정을 변경하거나 최적화하는 과정이 부족했음

 

 

🎉 SSAFY AI 계절학기 후기 & 다음 목표

이번 AI 계절학기를 통해 단순히 LLM을 활용하는 것뿐만 아니라,

✅ RAG 기반 AI 서비스의 개념을 배우고 직접 구현하는 경험
✅ 웹 개발 + AI 배포까지 실무적인 경험
✅ 팀원들과 협업하며 프로젝트를 진행하는 과정


까지 모두 경험할 수 있어서 정말 유익한 시간이었습니다.

 

다음에는 AI 성능 최적화, 배포 자동화, 사용자 경험 개선 같은 부분에 더 신경 써서 프로젝트를 진행해보고 싶습니다!

 

카페도 가서 열심히 진행한 프로젝트! 정말 귀여운 팀원들과 함께여서 즐거웠습니다 ^.^

 


 

 

이번 계절학기를 수강하고 프로젝트를 진행하면서 AI 서비스 개발에 흥미를 가지게 되었고 앞으로 프로젝트에 AI를 더 잘 활용할 수 있는 방안을 생각하고 적용하고 싶습니다!

 

 

이번 기사를 읽어주셔서 감사합니다! (ゝ。∂)


혹시 궁금한 점 있으면 댓글로 남겨주시고 다음 기사도 많은 관심 부탁드려요! 🙌

 

 

 

 

+) 혹시 프로젝트 코드가 궁금하시면 아래 GitHub을 확인해 주세요.

 

GitHub - mijisuh/mateatgumi-frontend

Contribute to mijisuh/mateatgumi-frontend development by creating an account on GitHub.

github.com

 

 

GitHub - mijisuh/mateatgumi-backend

Contribute to mijisuh/mateatgumi-backend development by creating an account on GitHub.

github.com