Try using it in your preferred language.

English

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar
translation

AI가 번역한 다른 언어 보기

Kofsitho

Supabase, 그리고 FCM을 사용하여 실시간 푸시알림 시스템 구축하기

  • 작성 언어: 한국어
  • 기준국가: 모든 국가 country-flag

언어 선택

  • 한국어
  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar

durumis AI가 요약한 글

  • Deno, Supabase, 그리고 Firebase Cloud Messaging(FCM)을 사용하여 실시간 푸시 알림 시스템을 구축하는 방법을 설명하며, Deno와 클라우드 서비스에 관심 있는 개발자를 대상으로 합니다.
  • Supabase의 실시간 데이터베이스 기능을 활용하여 데이터베이스 변경 사항을 감지하고, FCM을 통해 사용자에게 푸시 알림을 전송하는 방법을 자세히 설명합니다.
  • 이 글을 통해 개발자는 Deno, Supabase, FCM을 활용하여 실시간 푸시 알림 시스템을 구축하고 사용자에게 즉각적인 정보 전달과 향상된 상호 작용을 제공할 수 있습니다.
Deno, Supabase, 그리고 Firebase Cloud Messaging을 사용하여 실시간 푸시 알림 시스템 구축하기

Deno, Supabase, 그리고 Firebase Cloud Messaging을 사용하여 실시간 푸시 알림 시스템 구축하기

서론

  • 실시간 푸시 알림의 중요성
  • Deno, Supabase, Firebase Cloud Messaging(FCM) 소개

Deno와 Supabase를 활용한 서버 설정

  • Deno 소개 및 특징
  • Supabase 클라이언트 설정
  • 환경 변수를 통한 안전한 설정 관리

실시간 데이터베이스 변경 감지

  • Supabase의 실시간 기능 소개
  • 데이터베이스 변경 감지를 위한 인터페이스 정의

Firebase Cloud Messaging을 이용한 푸시 알림 전송

  • FCM의 역할과 중요성
  • Google 서비스 계정을 이용한 액세스 토큰 획득
  • Deno 서버에서 FCM을 통한 푸시 알림 전송 로직

결론

  • Deno, Supabase, FCM을 활용한 시스템의 장점
  • 실시간 푸시 알림 시스템의 사용자 경험에 대한 기여

1. 서론

오늘날의 디지털 시대에서 실시간 푸시 알림은 사용자 경험을 극대화하는 핵심 요소입니다. 이 글에서는 Deno, Supabase, 그리고 Firebase Cloud Messaging(FCM)을 활용하여 실시간 푸시 알림 시스템을 구축하는 방법을 탐구합니다. 이 글은 Deno와 클라우드 서비스에 관심 있는 개발자들을 대상으로 합니다.


2. Deno와 Supabase를 활용한 서버 설정

Deno는 현대적인 JavaScript 및 TypeScript 런타임으로, Node.js의 제한을 극복하고자 만들어졌습니다. Supabase는 PostgreSQL을 기반으로 하는 오픈소스 백엔드 서비스로, 실시간 데이터베이스 기능을 제공합니다. 이 두 기술을 결합하여 강력하고 유연한 백엔드 시스템을 구축할 수 있습니다.


코드 예시: Supabase 클라이언트 설정


import { createClient } from 'npm:@supabase/supabase-js@2'
const supabase = createClient(
Deno.env.get('SUPABASE_URL')!,
Deno.env.get('SUPABASE_SERVICE_ROLE_KEY')!
)

이 코드는 Supabase 클라이언트를 초기화하는 방법을 보여줍니다. 여기서는 Deno의 환경 변수 기능을 사용하여 Supabase 연결 정보를 안전하게 관리합니다.


3. 실시간 데이터베이스 변경 감지

Supabase의 Web Hook 기능을 활용하면 데이터베이스의 변경 사항을 즉시 감지하고 반응할 수 있습니다. 이를 통해 사용자에게 최신 정보를 신속하게 전달할 수 있습니다.


코드 예시: 웹훅 페이로드 정의


interface Post {
id: string
title: string
content: string
}
interface WebhookPayload {
type: 'INSERT'
table: string
record: Post
schema: 'public'
}
// posts 테이블에 새로운 게시글이 추가되면, 모든 사용자에게 푸시 알림을 보내는 함수
Deno.serve(async (req) => {
// 요청으로부터 웹훅 페이로드를 추출합니다.
const payload: WebhookPayload = await req.json()
console.log("payload: ", payload);
// ... 코드 생략 ...

이 인터페이스들은 Supabase에서 발생하는 데이터 변경 이벤트를 처리하기 위해 정의됩니다. Post 인터페이스는 게시글 데이터 구조를, WebhookPayload는 웹훅으로부터 받은 데이터의 구조를 정의합니다.


4. Firebase Cloud Messaging을 이용한 푸시 알림 전송

FCM은 다양한 플랫폼에 걸쳐 푸시 알림을 보낼 수 있는 강력한 서비스입니다. Deno 서버에서 FCM을 통해 알림을 전송하면, 사용자는 새로운 게시글이나 중요한 업데이트를 즉시 받아볼 수 있습니다.


코드 예시: FCM을 통한 푸시 알림 전송


import serviceAccount from '../serviceAccountKey.json' with { type: 'json' }
// Google 서비스 계정으로부터 액세스 토큰을 얻는 함수
const getAccessToken = ({
clientEmail,
privateKey,
}: {
clientEmail: string
privateKey: string
}): Promise => {
return new Promise((resolve, reject) => {

이 코드는 Deno 서버가 FCM을 사용하여 푸시 알림을 보내는 과정을 보여줍니다. 여기서는 Google 서비스 계정을 사용하여 FCM에 필요한 액세스 토큰을 얻습니다.


5. 결론

Deno, Supabase, 그리고 FCM을 사용하여 실시간 푸시 알림 시스템을 구축하는 것은 현대 웹 개발에서 매우 유용합니다. 이 시스템을 통해 개발자는 사용자에게 즉각적인 정보 전달과 향상된 상호작용을 제공할 수 있습니다. 이 글에서 소개된 기술과 코드 예시를 통해, 개발자들은 자신만의 실시간 알림 시스템을 구축하는 데 필요한 지식과 도구를 얻을 수 있을 것입니다.


kofsitho
Kofsitho
Kofsitho
kofsitho
[비전공, 개발자로 살아남기] 14. 신입 개발자 자주 묻는 기술면접 내용 요약 신입 개발자 면접에서 자주 나오는 기술 질문과 답변을 정리했습니다. 메모리 영역, 자료구조, 데이터베이스, 프로그래밍 패러다임, 페이지 교체 알고리즘, 프로세스와 스레드, OSI 7 계층, TCP와 UDP 등 다양한 주제를 다룹니다.
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

2024년 4월 3일

[이펙티브 자바] 아이템 6. 불필요한 객체 생성을 피하라 자바에서 불필요한 객체 생성을 최소화하여 성능을 향상시키는 방법에 대해 설명합니다. 문자열, 부울, 정규 표현식, 뷰 객체, 오토 박싱 등 다양한 예시와 함께 객체 재사용의 중요성을 강조합니다. 특히 방어적 복사가 필요한 경우 객체 재사용으로 인한 문제점을 주의해야 합니다.
제이온
제이온
제이온
제이온

2024년 4월 28일

[Spring] @Async 사용 방법 Spring @Async를 사용하여 Java에서 비동기 처리를 구현하는 방법을 설명합니다. @EnableAsync 어노테이션을 사용하여 비동기 메소드를 선언하고, ThreadPoolTaskExecutor를 사용하여 스레드 풀을 구성하여 효율적인 비동기 작업 처리를 수행할 수 있습니다. Future, ListenableFuture, CompletableFuture 등 다양한 리턴 타입을 사용하여 비동기 메소드의 결과를 처리하는 방법도 다룹니다.
제이온
제이온
제이온
제이온

2024년 4월 25일

FTX 파산으로 보는 돈과의 관계 변화: 은행의 기회 FTX 파산 사태 이후, 창립자의 가벼운 태도는 막대한 손실을 본 투자자들의 분노와 대조를 이루며, 우리가 돈과의 관계를 다시 생각해 볼 필요성을 제기합니다.
Byungchae Ryan Son
Byungchae Ryan Son
Byungchae Ryan Son
Byungchae Ryan Son

2024년 5월 9일

웹 개발, SEO 및 개발자 역할에 대한 블로그 다음은 제가 해당 블로그 콘텐츠에 대한 이해를 바탕으로 작성한 요약입니다. Devapenseo Webian 블로그는 효과적이고 검색 엔진에 최적화된 웹사이트를 구축하는 데 있어 웹 개발, SEO 및 개발자의 역할을 다룹니다. 블로그 작성자
Devapenseo Webian
Devapenseo Webian
devapenseo webian
Devapenseo Webian
Devapenseo Webian

2024년 2월 23일

'서드파티쿠키'의 종말과 새로운 로그인 기술의 등장 서드파티 쿠키 차단으로 인해 웹 로그인 시스템이 변화하고 있으며, 구글은 안전하고 편리한 로그인을 위한 새로운 기술인 FedCM을 개발했습니다. FedCM은 웹브라우저 내부의 독립된 영역에서 작동하여 피싱을 방지하고, 다양한 소셜 로그인 서비스에서 사용될 수 있는 표준 기술입니다. 현재는 크롬 데스크톱에서만 사용 가능하지만, 구글은 모바일 크롬 및 다른 브라우저에서도 지원을 확대할 계획입니다.
해리슨 블로그
해리슨 블로그
해리슨 블로그
해리슨 블로그
해리슨 블로그

2024년 3월 18일