본문으로 건너뛰기

LLM과 벡터 DB를 활용한 개인화된 스팀 게임 추천 시스템 구축기

LLM을 사용하여 8만 개의 스팀 게임 리뷰에서 미세한 특징을 추출하고, 이를 벡터화하여 사용자에게 추천 이유를 설명해 주는 개인 맞춤형 추천 시스템을 구축했다.

커뮤니티 반응

작성자의 열정적인 프로젝트에 대해 긍정적인 반응이 많으며, 특히 추천 이유를 설명해 주는 방식에 대해 흥미를 보이고 있습니다.

주요 논점

01찬성다수

기존 스팀 태그보다 훨씬 구체적인 검색이 가능하며 추천 이유가 명확하여 유용하다.

합의점 vs 논쟁점

합의점

  • 기존의 광범위한 장르 태그만으로는 사용자의 세밀한 취향을 반영하기 어렵다.
  • LLM은 텍스트 리뷰에서 정성적인 특징을 정량적인 벡터로 변환하는 데 효과적인 도구이다.

실용적 조언

  • 유사한 추천 시스템을 만들 때 LLM이 생성한 다양한 표현들을 하나로 묶어주는 정규화 파이프라인(6단계 과정 등)을 반드시 고려해야 한다.
  • 벡터 DB와 관계형 DB(PostgreSQL)를 함께 사용하여 메타데이터와 벡터 검색의 장점을 모두 활용하라.

섹션별 상세

작성자는 8만 개의 스팀 게임에서 추출한 2,000개의 리뷰를 4단계 파이프라인을 통해 정제했다. LLM은 이 리뷰들을 분석하여 게임의 구조와 분위기를 설명하는 비정형 마이크로 태그와 벡터 데이터를 생성한다. 이를 통해 '액션'이라는 넓은 범주 대신 '카드 시너지', '재즈 퓨전' 같은 구체적인 특징을 포착할 수 있게 되었다.
추출된 비정형 태그들을 그룹화하기 위해 별도의 6단계 파이프라인을 운영한다. 예를 들어 'fast combat'과 'speedy action combat'처럼 의미가 유사한 서로 다른 표현들을 하나의 개념으로 묶어 데이터의 일관성을 확보한다. 이 과정은 데이터의 노이즈를 줄이고 검색 정확도를 높이는 핵심적인 정규화 단계이다.
구축된 데이터는 PostgreSQL과 Chroma DB에 저장되어 효율적인 벡터 검색을 지원한다. 사용자가 선호하는 게임의 특정 요소(예: 소셜 시뮬레이션 20%, 던전 탐험 20%)를 슬라이더로 조절할 수 있는 '어드밴스 모드'를 제공하여 추천 결과에 대한 제어권을 부여한다. 이는 단순한 유사도 측정을 넘어 사용자가 왜 이 게임을 추천받았는지 이해할 수 있게 돕는다.
기존 협업 필터링 알고리즘이 빠지기 쉬운 '인기 게임 위주의 추천' 함정을 해결하고자 했다. 리뷰 텍스트에 기반한 내용 중심 필터링(Content-based Filtering)을 고도화함으로써 잘 알려지지 않은 저평가된 게임들을 발굴하는 데 효과적임을 확인했다. 결과물은 Docker 컨테이너를 통해 Digital Ocean 환경에 성공적으로 배포되었다.

용어 해설

협업 필터링(Collaborative Filtering)
많은 사용자로부터 얻은 기호 정보를 기반으로 사용자들의 관심사를 예측하는 방법이다. 사용자의 과거 행동 데이터가 부족한 신규 항목을 추천하기 어렵거나 인기 있는 항목 위주로 추천되는 '필터 버블' 현상이 발생할 수 있다.
벡터 표현(Vector Representation)
데이터의 특징을 다차원 공간의 수치 배열로 변환하여 컴퓨터가 이해할 수 있게 만드는 방식이다. 이 프로젝트에서는 게임의 특징(예: 낮 밤 주기, 던전 탐험)을 백분율 기반의 벡터로 수치화하여 유사도를 계산하는 데 사용했다.
비정형 태깅(Non-canonical Tagging)
표준화된 분류 체계에 얽매이지 않고 LLM을 통해 자유롭고 구체적인 키워드를 생성하는 기법이다. '액션' 같은 광범위한 단어 대신 '재즈 퓨전 음악', '시골 마을 분위기'처럼 게임의 고유한 개성을 포착하는 데 유리하다.

언급된 도구

Chroma DB추천

게임 특징 벡터 저장 및 유사도 검색

PostgreSQL추천

메타데이터 및 구조화된 데이터 저장

React중립

사용자 인터페이스(UI) 개발

Docker추천

애플리케이션 컨테이너화 및 배포

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 05. 09.수집 2026. 05. 09.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.