Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

밤빵's 개발일지

[TIL]20241216 벨루가 추천 시스템 본문

개발Article

[TIL]20241216 벨루가 추천 시스템

최밤빵 2024. 12. 16. 15:19

1. 벨루가 추천 시스템이란?

벨루가 추천 시스템은 당근마켓에서 자체적으로 개발한 개인화 추천 엔진이다. 사용자가 당근마켓에서 더 빠르게 자신에게 맞는 상품을 찾을 수 있도록 돕는 것이 이 시스템의 핵심 목적이다. 벨루가는 대규모 데이터를 기반으로, 사용자 개개인의 취향과 행동 패턴을 학습해 맞춤형 추천을 제공한다. 이는 사용자 경험을 크게 향상시키는 요소로, 당근마켓이 커뮤니티 중심의 로컬 마켓플레이스에서 더 강력한 플랫폼으로 자리 잡는 데 기여하고 있다.

 

주요특징

데이터 기반 개인화

사용자가 검색한 키워드, 클릭한 상품, 관심 등록, 구매 기록 등 행동 데이터를 활용하여, 각 사용자가 선호할 가능성이 높은 상품을 실시간으로 추천한다.

추천 알고리즘

협업 필터링

유사한 취향을 가진 다른 사용자가 선호한 상품을 추천하는 방식.

콘텐츠 기반 필터링

상품 자체의 속성을 분석해 비슷한 속성을 가진 상품을 추천.

 

벨루가는 이 두 가지 방식을 혼합한 하이브리드 추천 알고리즘을 사용하여 더 정확하고 풍부한 추천 결과를 제공한다.

 

확장성과 안정성

수백만 명의 사용자가 실시간으로 서비스를 이용할 수 있도록, 대규모 데이터를 처리하고 분산 시스템 구조로 안정성을 보장한다.


2. 벨루가 추천 시스템에 관심을 갖게 된 계기

나는 아날로그적인 사고를 가진 사람이었다. 알고리즘이나 추천 시스템 같은 건 나랑 동 떨어진거라 생각도 해본적이 없는데, 개발을 배우기 시작하면서 내가 사용하던 앱과 서비스들의 내부 동작 원리가 궁금해지기 시작했다. 특히 당근마켓처럼 친숙한 서비스에서 "나에게 왜 이런 상품을 추천할까?"라는 질문이 자연스럽게 떠올랐다. 어떤 원리인가를 찾아보다가, 당근마켓이 이런 복잡한 추천 시스템을 자체적으로 개발했다는 사실을 알게 되었다. 개인화된 추천이 단순히 좋아 보이는 것을 보여주는 것이 아니라, 사용자와 상품 간의 관계를 수학적으로 계산한 결과라는 점이 굉장히 재밌었다.


3. 고민

추천 시스템은 왜 필요할까?

당근마켓은 로컬 커뮤니티에 초점을 맞춘 서비스인데, 개인화 추천이 왜 중요할까? 내가 필요로 하는 물건을 더 빠르게 찾을 수 있다면 서비스 이용이 훨씬 편리해질 것이다. 추천 시스템은 사용자 경험의 향상을 위한 핵심 기술이다.

이런 시스템은 어떻게 작동할까?

벨루가 블로그에서 추천 시스템의 작동 원리에 대해 간략히 설명하고 있었지만, 초보자로서는 완전히 이해하기 어렵다. 특히 협업 필터링이나 콘텐츠 기반 필터링 같은 용어가 낯설다. 하지만 예제와 사례를 찾아보면서, 협업 필터링은 “비슷한 취향의 사람들끼리 추천을 공유하는 방식”이고, 콘텐츠 기반 필터링은 “상품의 속성을 분석해 비슷한 상품을 추천하는 방식”이라는 점을 이해하게 되었다.

추천 시스템을 어떻게 간단히 구현할 수 있을까?

벨루가는 하이브리드 방식과 대규모 데이터를 사용하지만, 나 같은 초보 개발자도 콘텐츠 기반 필터링 정도는 구현할 수 있지 않을까 생각했다. Snoopy 테마 상품처럼 특정 속성을 기준으로 필터링하는 간단한 추천 기능부터 시작할 수 있지 않을까?

추천 시스템을 발전시키려면 무엇이 필요할까?

벨루가는 사용자 행동 데이터를 실시간으로 분석해 개인화된 결과를 제공한다. 아마 구현하려면 분산 시스템, 데이터베이스 최적화, 실시간 처리 기술 등 내가 아직 익히지 못한 많은 기술이 필요할 것이다. 하지만 한 번에 모든 것을 배우는 것은 불가능하니까, 작은 부분부터 시작해 차근차근 접근해야겠다는 생각이 들었다.


4. 배운점

사용자 중심의 개발 철학 이해

벨루가는 “사용자가 진짜 필요로 하는 것을 더 빨리 찾도록 돕는다”는 철학을 중심으로 설계되었다. 나도 이런 철학을 바탕으로 사용자에게 도움이 되는 기능을 설계하고 싶다.

데이터의 중요성 인식

추천 시스템은 데이터를 중심으로 작동한다. 따라서 데이터를 어떻게 수집하고 분석하며 처리할지를 고민해야 한다. 이 과정에서 데이터베이스 설계, 캐싱, 분산 처리 등 다양한 기술을 익힐 필요가 있다.

작은 시작, 큰 도전

벨루가처럼 완전한 시스템을 만드는 것은 현재로서는 불가능하지만, 간단한 콘텐츠 기반 추천 기능부터 시작할 수 있다. 추천 시스템의 기본 원리를 학습하고, 점차 복잡한 구조로 발전시켜 나가는 것이 목표다.


5. 느낀 점

벨루가 추천 시스템은 단순히 추천을 넘어선, 사용자 경험을 개선하는 핵심 기술이라는 점에서 큰 감명을 받았다. 이 시스템은 단순히 코드를 작성하는 것을 넘어 사용자의 니즈를 이해하고 기술로 풀어내는 과정의 중요성을 보여준다.

초보 개발자로서 벨루가처럼 복잡한 시스템을 당장 구현할 수는 없지만, 이번 계기를 통해 추천 시스템에 대한 관심과 학습 의지가 생겼다. 앞으로 내가 만든 코드가 사용자에게 가치를 제공할 수 있도록, 데이터 분석과 추천 알고리즘을 더 깊이 공부하고 싶다.


벨루가 추천 시스템은 내가 "개발자는 사용자의 문제를 해결하는 사람"이라는 생각을 강하게 인식시켜 준 계기가 되었다. 이 시스템을 계기로 추천 기술에 대해 공부하면서, 나만의 추천 시스템을 구현하는 날을 목표로 삼고있다.