Rails 애플리케이션에 추천 시스템 추가하기: Refer Gem 활용

Referral System in Rails applications

작성자
AVO
발행일
2025년 08월 13일

핵심 요약

  • 1 Refer Gem을 활용하여 Rails 애플리케이션에 추천 시스템을 쉽게 통합하고 사용자 획득 비용을 절감할 수 있습니다.
  • 2 추천 시스템은 쿠키를 통해 추천인과 피추천인을 추적하고, 사용자 가입 시 추천 기록을 데이터베이스에 저장하는 방식으로 작동합니다.
  • 3 추천 링크 공유, 가입 시 자동 추천 등록, 추천 현황 대시보드 제공 등 포괄적인 추천 기능을 구현할 수 있습니다.

도입

성공적인 제품은 훌륭한 출발점이지만, 의미 있는 사용자 유입을 위해서는 다양한 유통 채널이 필요합니다. 유기적 검색, 소셜 미디어, 유료 광고, PR 등 여러 채널이 있지만, 시간이 지남에 따라 사용자 획득 비용이 증가하는 경향이 있습니다. 이러한 문제를 해결하고 사용자 획득 비용을 낮추기 위한 효과적인 방법 중 하나는 추천 시스템을 도입하는 것입니다. 본 문서는 Refer Gem을 사용하여 Rails 애플리케이션에 추천 시스템을 추가하는 방법을 상세히 설명합니다.

추천 시스템 도입의 필요성 및 작동 방식

추천 시스템을 도입하는 주된 이유는 고객 획득 비용(CAC)을 절감하기 위함입니다. 제품 채택 라이프사이클이 진행됨에 따라 고객 획득 비용은 증가할 가능성이 높으며, 추천 시스템은 사용자들이 보상을 받으면서 다른 잠재 고객에게 제품을 추천할 기회를 제공합니다. 좋은 추천 프로그램은 다음과 같은 특징을 가집니다:

  • 선순환 구조: 제품으로부터 실질적인 이점을 얻을 수 있는 사용자들을 추천하는 것이 이상적입니다.

  • 매력적이면서도 저비용: 추천 보상은 사용자에게 매력적이면서도 비즈니스에 큰 부담이 되지 않아야 합니다.

  • 마찰 없음: 추천 과정에서 발생하는 모든 마찰은 결과에 악영향을 미치므로, 최대한 간단하게 추천할 수 있어야 합니다.

추천 시스템 작동 원리

추천 시스템이 작동하려면 누가 누구를 추천했는지 안정적으로 추적할 수 있어야 합니다. 웹 애플리케이션에서는 쿠키를 활용하는 것이 가장 효과적입니다. 작동 방식은 다음과 같습니다:

  1. 링크 공유: 추천인이 특정 코드가 포함된 추천 링크를 지인에게 공유합니다.

  2. 쿠키 저장: 피추천인이 해당 링크를 통해 사이트를 방문하면, 링크의 쿼리 파라미터에 포함된 추천 코드가 피추천인의 브라우저 쿠키에 저장됩니다.

  3. 추천 기록: 피추천인이 회원가입을 완료하면, 애플리케이션은 쿠키에서 코드를 읽어 추천인을 찾고, 추천 기록을 데이터베이스에 저장하여 추천인과 피추천인을 연결합니다.

  4. 보상 지급: 피추천인이 특정 비즈니스 목표(예: 계정 생성, 제품 구매, 무료 체험 시작)를 달성한 후 추천인에게 보상이 지급됩니다.

Refer Gem을 이용한 구현

본 튜토리얼에서는 Refer Gem을 사용하여 Rails 애플리케이션에 추천 시스템을 구축합니다. 주요 기능은 다음과 같습니다:

  • 사용자는 링크 공유를 통해 다른 사용자를 추천할 수 있습니다.

  • 새로운 사용자 계정 생성 시 성공적인 추천으로 간주됩니다.

  • 추천 후 일정 시간이 지나면 추천은 유효하지 않게 됩니다.

  • 사용자는 원하는 만큼 추천할 수 있지만, 보상은 제한된 수의 추천에 대해서만 제공됩니다.

  • 피추천인이 특정 액션을 완료한 후에야 양측 사용자에게 보상이 지급됩니다.

  • 사용자는 애플리케이션 내 대시보드에서 자신의 추천 통계를 확인할 수 있습니다.

  • 추천 과정은 마찰 없이 간단하게 이루어져야 합니다.

애플리케이션 설정 및 Gem 설치

  1. bin/rails generate authentication 명령어로 인증 시스템을 추가합니다 (기존 앱에는 생략).

  2. bundle add refer && bundle install 명령어로 Refer Gem을 설치합니다.

  3. bin/rails generate refer:install 명령어로 Gem의 초기 설정을 진행합니다. 이 과정에서 refer_referrals, refer_referral_codes, refer_visits 테이블을 위한 마이그레이션이 생성됩니다.

  4. bin/rails generate refer:model User 명령어로 User 모델에 추천 관련 연관 관계를 추가합니다.

  5. User 모델에 after_create 콜백을 추가하여 사용자 생성 시 ReferralCode를 자동으로 생성합니다.

  6. 기존 사용자들을 위한 ReferralCode 생성 마이그레이션을 실행합니다.

추천 시스템의 핵심 요소

  • 추천 쿠키: ApplicationControllerset_referral_cookie를 추가하여 ref 쿼리 파라미터에서 추천 코드를 읽고 쿠키에 저장합니다. 이 쿠키는 피추천인의 브라우저에 저장되어 추천인을 추적하는 데 사용됩니다.

  • 추천 생성: RegistrationsControllercreate 액션에서 Refer.refer(@user) 메서드를 호출하여 새로운 사용자 가입 시 추천 기록을 생성합니다.

  • 보상 로직: User 모델에 qualifies_for_referral? 메서드를 추가하여 추천의 유효 기간 및 최대 추천 횟수 제한을 구현하고, SubscriptionsController 등에서 reward_referral 메서드를 호출하여 보상을 지급합니다.

  • 사용자 대시보드: ReferralsController와 해당 뷰를 통해 사용자는 자신의 추천 방문 수, 가입 수, 구독자 수 등의 통계를 확인할 수 있습니다.

결론

추천 시스템을 도입하는 것은 고객 획득 비용을 절감하고, 추천인과 신규 사용자 모두에게 가치를 제공하는 효과적인 전략입니다. Rails 환경에서는 `Refer` Gem을 활용하여 이러한 시스템을 효율적으로 구축할 수 있습니다. 이 Gem은 쿠키 기반의 추천 추적, 모델 간의 연관 관계 설정, 그리고 추천 기록 관리를 위한 데이터베이스 테이블 생성을 자동화하여 개발 시간을 크게 단축시킵니다. `set_referral_cookie`를 통해 추천 링크를 통한 방문자를 추적하고, `Refer.refer` 메서드를 통해 실제 추천을 기록함으로써, 복잡한 로직 없이 견고한 추천 시스템을 구현할 수 있습니다. 본 문서가 다음 Rails 프로젝트에 추천 시스템을 성공적으로 구현하는 데 도움이 되기를 바랍니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!