Computer >> 컴퓨터 >  >> 프로그래밍 >> Redis

Redis 런치패드: 개발자를 위한 샘플 앱 허브 완전 정리

Redis 커뮤니티는 항상 Redis를 빛내는 핵심 동력이었습니다. 이러한 커뮤니티 덕분에 Redis는 스택 오버플로(Stack Overflow) 개발자 설문조사에서 무려 5년 연속 '가장 사랑받는 데이터베이스'로 선정되었습니다. Redis의 인기가 높아질수록 다양한 개발자 커뮤니티, 산업 분야, 지역에서 활용 사례도 함께 확장되고 있습니다.

커뮤니티의 사랑과 하나의 비전을 바탕으로 Redis의 힘을 강화하고 성장시키고자 하는 마음에서 Redis 런치패드(Launchpad)가 탄생했습니다. Redis 런치패드는 저희와 여러분이 Redis 기반으로 만든 75개 이상의 샘플 애플리케이션을 한곳에 모은 허브입니다. 개발자와 아키텍트는 이곳에서 Redis를 실시간 데이터 플랫폼이자 기본 데이터베이스로 활용하는 다양한 샘플 앱을 손쉽게 검색하고 시각화할 수 있습니다. 서로 다른 아키텍처, 데이터 모델링, 데이터 저장 방식, 명령어를 보여주는 고품질 샘플 앱을 깊이 있게 살펴보며 더욱 빠르게 고성능 앱을 만들 수 있습니다.

이 앱들은 다양한 프로그래밍 언어(JavaScript, Java, Python 등)로 작성되었으며, 여러 산업 분야(금융 서비스, 게임, 리테일 등)에 맞춰져 있고, RedisJSON, RediSearch 같은 다양한 Redis 모듈을 활용해 각기 다른 기능을 선보입니다. 심지어 개별 명령어 단위로 검색하여 해당 명령이 여러 앱과 언어에서 어떻게 사용되는지 확인할 수도 있습니다!

Redis 런치패드 활용 방법

사용 방법은 간단합니다. https://launchpad.redis.com에 접속하여 다양한 조건으로 원하는 앱을 검색하세요. 앱을 클릭하면 해당 앱이 어떻게 만들어졌고 어떻게 작동하는지 보여주는 영상과 상세 설명을 확인할 수 있습니다. 데이터 모델링, 데이터 추가 명령어, 데이터 조회 명령어까지 모두 포함되어 있습니다.

게다가 일부 앱에는 바로 사용할 수 있는 배포 버튼이 제공됩니다. Heroku, Vercel, Google Cloud 등으로 몇 번의 클릭만으로 신속하게 배포할 수 있습니다.

Redis 런치패드 자체도 Redis로 만들었습니다!

흔히 말하는 '우리 제품을 직접 써본다(drink our own champagne)'는 정신 그대로, 저희는 직접 만든 제품을 활용해 캐싱을 넘어선 Redis의 강력함을 직접 증명하고 있습니다.

그럼 런치패드가 어떻게 구축되었고 어떻게 작동하는지 기술적인 부분을 살펴보겠습니다.

데이터 저장 및 인덱싱 구조

현재 앱 메타데이터는 Redis 해시(Hashes)에 저장하고, RediSearch로 인덱싱합니다. 좌측 필터 패널, 퍼지(fuzzy) 검색, 앱 갤러리, 페이지네이션까지 모든 기능이 RediSearch만으로 지원됩니다.

GitHub 저장소를 런치패드에 포함시키려면 두 가지 조건이 필요합니다. 첫째, redis-developer GitHub 계정의 일부여야 하고, 둘째, 'marketplace.json' 메타데이터 파일을 포함해야 합니다. 이 파일에는 앱 이름, 설명, 사용된 프로그래밍 언어, 영상, 명령어 등 앱에 관한 모든 정보가 담겨 있습니다. 이 파일의 내용만이 검색 및 필터링을 위해 Redis 데이터베이스에 추가됩니다.

나머지 작동 과정은 다음과 같습니다:

  1. 독립된 백엔드 서비스가 주기적으로 redis-developer GitHub 계정의 모든 저장소를 순회하며 marketplace.json 파일을 확인합니다. 파일을 발견하면 Redis Enterprise Cloud에서 운영 중인 프로덕션 Redis 데이터베이스 클러스터 내부의 Redis 해시 데이터 구조로 내용을 푸시합니다.
  2. RediSearch가 실시간으로 데이터를 즉시 인덱싱하여 검색 가능한 상태로 만듭니다.

데이터베이스에 데이터가 준비되면 다음 단계는 단순히 쿼리하여 결과를 브라우저에 표시하는 것입니다. 작동 방식은 다음과 같습니다:

  1. 별도의 백엔드 Node.js 앱이 다양한 검색 쿼리로 데이터베이스를 조회합니다.
  2. 마지막으로 프론트엔드 Next.js(React) 앱이 패싯 검색(faceted search), 페이지네이션, 퍼지 검색을 구현하고 검색 결과를 깔끔한 그리드 형태로 표시합니다.

내 앱을 Redis 런치패드에 추가하는 방법

여러분의 앱을 런치패드에 추가해 주신다면 대환영입니다. 경우에 따라 소셜 미디어를 통해 홍보해 드릴 수도 있습니다. 첫 번째 요건은 앱이 Redis 기반으로 만들어졌고 Redis를 기본 데이터베이스로 사용해야 한다는 것입니다. 두 번째 요건은 QA 진행과 커뮤니티의 이해를 위해 명확하고 상세한 안내 문서를 제공해야 한다는 점입니다.

요건을 충족했다고 판단되면 다음 절차에 따라 메타데이터 파일을 추가하고 알려주세요:

  1. 아래의 marketplace.json 파일을 수정하여 저장소 루트(root)에 추가합니다.
  2. 해당 프로젝트에 이슈(issue)를 열어 포크(fork)를 요청합니다.
  3. 'hidden' 플래그가 true로 설정되어 있는지 확인합니다. 검토 후 포크하는 시점에 false로 변경해 드립니다.
  4. 이후 앱이 자동으로 공개됩니다.

marketplace.json 파일 상세 정보

이 파일에는 앱의 메타데이터가 담깁니다. 최신 상세 정보는 런치패드의 'Add your app' 버튼을 클릭하여 확인하세요. 작성 시점 기준 예시는 다음과 같습니다:

예시 metadata.json:

{
  "name": "앱 이름",
  "description": "앱 설명",
  "language": "사용 언어",
  "video": "데모 영상 URL",
  "commands": ["사용된 Redis 명령어 목록"],
  "hidden": true
}

이번 출시를 매우 기대하고 있습니다. Redis는 놀라울 정도로 유연한 도구이며, Redis 런치패드는 Redis를 실시간 데이터 플랫폼이자 기본 데이터베이스로 활용하는 방법을 구체적으로 보여줄 것입니다.

지금 바로 런치패드를 확인하고, 소셜 미디어에서 @redisinc을 태그하여 의견을 들려주세요. 🚀