RAG + Graph DB를 이용하여 추천 시스템 만들기에 대한 고민
안녕하세요, 이번 글에서는 벨루가에서 최근 시작하게 된 추천 시스템 프로젝트에 대해 소개하려 합니다. 추천 시스템은 이제 우리 일상 속에 깊숙이 자리잡았습니다. 쇼핑몰에서 상품을 추천받기도 하고, 음악 스트리밍 서비스에서 새로운 아티스트를 발견하기도 하죠. 이런 추천 시스템은 크게 두 가지 상황에서 사용 될 수 있다고 보았습니다. 첫째는 사용자가 직접 추천을 요청하는 경우이고, 둘째는 사용자의 행동과 상황을 분석하여 자동으로 추천하는 경우입니다. 개인적으로는 후자에 더 관심이 있는데요, 사용자의 니즈를 예측하여 능동적으로 추천하는 시스템을 만들고 싶었습니다. 그리고 우리 벨루가에서 탬플릿화 또는 솔루션화 될 수 있게 설계를 하면 좋겠다고도 생각했습니다. 나아가 수많은 카페24, 고도몰, 네이버 스마트 스토어와 연결하여 사용할 수 있겠다는 생각도 해봅니다. 하지만 막상 프로젝트를 시작하려니 고민이 많이 됐습니다. 사용성을 이해하고 신용카드 관련 도메인 지식이 가지고 있는게 아니거든요. 이럴 때는 어떻게 해야 할까요? 저희는 데이터에서 힌트를 찾기로 했습니다. 데이터 확보가 용이한 것 부터 생각해보기로. 아니면 약간의 상상으로 데이터를 만들 수 있다면 최소한의 검증을 할 수 있다고 생각했죠. 그리고 당현히 벨루가 팀은 RAG(Retrieval-Augmented Generation)와 Graph DB를 활용하기로 했습니다. RAG는 정보 검색과 생성을 결합하여 정확한 답변을 만들어내는 강력한 도구입니다. 여기에 Graph DB를 결합하면 데이터 간의 복잡한 관계성을 더 잘 활용할 수 있죠. 물론 Graph DB를 사용하는 데는 비용과 성능 이슈가 있습니다. 그리고 GPT, Claude, Gemini, Llama 3, Cohere 등과 같은 언어 모델 API를 사용하는 것도 속도와 비용 면에서 부담이 될 수 있죠. 하지만 개인화된 추천의 가치를 생각한다면 이 정도 투자는 충분히 의미 있다고 생각했습니다. 그리고 앞으로 더욱더 개인화는 세계적인 흐름이 될 것이라 생각 하고 있습니다. 또 한 가지 고민은 Graph DB의 엔티티를 어떻게 구분할 것인가였습니다. 사람이 일일이 정의하는 것도 방법이지만, 언어 모델을 활용한 자동화도 생각해 볼 만합니다. 이를 통해 시스템의 효율성을 한층 높일 수 있을 것 같았죠. 벨루가팀은 이 프로젝트를 통해 신용카드 맛집 추천 시스템을 만들어 보려 합니다. 사용자의 위치 정보, 신용카드 정보, 맛집 정보 등을 종합하여 가장 혜택을 많이 받을 수 있는 맛집을 추천하는 거죠. 이를 통해 신용카드 사용률도 높이고, 사용자 경험도 개선할 수 있을 것이라 기대하고 있습니다. 사실 저 자신은 추천 시스템을 잘 활용하지 않는 편인데요, 그 이유는 추천이 제 취향과 잘 맞지 않기 때문이었습니다. 하지만 이번 프로젝트를 통해 진정으로 개인화된 추천 시스템을 만들어 본다면, 저 같은 사용자들의 만족도도 크게 향상시킬 수 있지 않을까요? 물론 이 여정이 순탄치만은 않을 것입니다. 주어진 시간은 3~4주 정도, 시행착오도 있을 테고, 예상치 못한 어려움도 만날 수 있죠. 하지만 그 과정에서 배우고 성장하는 것, 그것이 이 프로젝트의 가장 큰 의미라고 생각합니다. 작은 성공부터 하나씩 쌓아가다 보면, 분명 값진 결실을 맺을 수 있을 거예요. 프로젝트가 완성되는 그 날까지, 벨루가는 계속해서 도전하겠습니다. 이 블로그를 통해 그 여정을 여러분과 함께 나누고 싶네요. 앞으로의 이야기가 기대되시나요? 저도 마찬가지랍니다. 여러분도 각자의 분야에서 새로운 도전을 시작해 보시는 건 어떨까요? 언제나 여러분의 도전을 응원하겠습니다. 다음 글에서 다시 만나요, 감사합니다! 예상 되는 설계 방향
![👍](https://static.cafenono.com/emoji/14/img-apple-64/1f44d.png)
![😂](https://static.cafenono.com/emoji/14/img-apple-64/1f602.png)
![😍](https://static.cafenono.com/emoji/14/img-apple-64/1f60d.png)
3