linux

Notification Guide

jhinux 2025. 11. 13. 11:23

커맨드 라인 curlntfy.sh를 이용한 실시간 알림 시스템 구축 가이드

PetaLinux 빌드와 같이 시간이 오래 걸리는 작업을 터미널에서 실행할 때, 작업이 언제 끝나는지 계속 확인하는 것은 번거로운 일입니다. 이 가이드에서는 간단한 무료 오픈소스 도구인 curlntfy.sh를 사용하여, 작업 완료 시 데스크톱이나 스마트폰으로 실시간 푸시 알림을 받는 시스템을 구축하는 방법을 심층적으로 알아봅니다.

1. 핵심 도구 소개

1.1. ntfy.sh란?

ntfy.sh (notify로 발음)는 회원가입이나 복잡한 설정 없이 사용할 수 있는 매우 간단한 HTTP 기반의 발행-구독(Publish-Subscribe) 알림 서비스입니다. 주요 특징은 다음과 같습니다.

  • 무료 및 오픈소스: 누구나 무료로 사용할 수 있으며, 원한다면 직접 서버를 구축하여 비공개로 운영할 수도 있습니다.
  • 간편함: 알림을 받기 위해 채널(토픽)을 구독하고, 해당 채널의 주소로 HTTP 요청만 보내면 됩니다.
  • 크로스 플랫폼: 웹 브라우저, 안드로이드, iOS 등 다양한 환경에서 알림을 받을 수 있는 전용 앱을 제공합니다.
  • 다양한 기능: 메시지에 제목, 우선순위, 태그(이모지), 클릭 가능한 링크를 추가하는 등 다양한 고급 기능을 지원합니다.

1.2. curl이란?

curl은 거의 모든 리눅스 시스템과 macOS에 기본적으로 설치되어 있는 커맨드 라인 도구입니다. URL을 사용하여 서버와 데이터를 주고받는 역할을 하며, ntfy.sh에 알림 메시지를 보낼 때 핵심적인 역할을 합니다.

  • curl -d "메시지 내용" <URL>: -d 옵션은 HTTP POST 요청의 본문(body)에 데이터를 담아 보내는 역할을 합니다. ntfy.sh에서는 이 데이터가 바로 알림의 메시지 내용이 됩니다.

2. 알림 시스템 구축 단계별 가이드

1단계: 나만의 알림 토픽(채널) 정하기

'토픽'은 알림을 발행하고 구독하는 고유한 채널입니다. 다른 사람과 겹치지 않도록 예측하기 어려운 자신만의 이름을 만드는 것이 좋습니다. 이 가이드에서는 실제 사용했던 Petalinux를 예시로 사용하겠습니다.

토픽 이름 예시: Petalinux, my-project-alerts-a1b2c3

2단계: 토픽 구독하기

알림을 받을 기기에서 아래 방법으로 토픽을 구독합니다.

  • 웹 브라우저: 주소창에 ntfy.sh/Petalinux 와 같이 ntfy.sh/ 뒤에 자신의 토픽 이름을 입력하여 접속합니다. 페이지가 열리면 'Subscribe' 버튼을 누르고 브라우저의 알림 권한을 허용합니다.
  • 모바일 앱: 구글 플레이 스토어나 애플 앱스토어에서 'ntfy' 앱을 설치한 후, '+' 버튼을 눌러 Petalinux 토픽을 추가하여 구독합니다.

3단계: curl로 테스트 메시지 보내기

이제 터미널에서 curl 명령을 사용하여 구독한 채널로 메시지를 보낼 수 있습니다.

curl -d "테스트 메시지입니다. Gemini가 성공적으로 알림을 보냈습니다." ntfy.sh/Petalinux

위 명령을 실행하면, Petalinux 토픽을 구독하고 있는 모든 기기(웹 브라우저, 스마트폰 앱)에서 "테스트 메시지입니다..." 라는 내용의 푸시 알림을 즉시 받게 됩니다.

3. 심화 활용법: 알림을 더 풍부하게 만들기

ntfy.sh는 단순히 텍스트 메시지만 보내는 것 이상의 기능을 제공합니다. curl-H (헤더) 옵션을 사용하여 다양한 추가 정보를 보낼 수 있습니다.

3.1. 제목 추가하기

알림에 제목을 붙여 가독성을 높일 수 있습니다.

curl \
  -H "Title: PetaLinux 빌드 상태" \
  -d "프로젝트 빌드가 성공적으로 완료되었습니다." \
  ntfy.sh/Petalinux

3.2. 우선순위 설정하기

긴급한 알림의 경우 우선순위를 높여 사용자의 주의를 끌 수 있습니다. (모바일 앱에서 소리/진동을 다르게 설정 가능)

  • 우선순위: min, low, default, high, urgent (5단계)
curl \
  -H "Title: 빌드 실패!" \
  -H "Priority: urgent" \
  -d "Kernel 컴파일 중 오류가 발생했습니다. 로그를 확인하세요." \
  ntfy.sh/Petalinux

3.3. 태그와 이모지 사용하기

메시지에 태그를 추가하여 시각적으로 구분할 수 있습니다. 특정 키워드는 자동으로 이모지로 변환됩니다. (예: tada, warning, skull)

curl \
  -H "Title: 빌드 완료" \
  -H "Tags: tada" \
  -d "모든 작업이 성공했습니다." \
  ntfy.sh/Petalinux

3.4. 클릭 가능한 링크 추가하기

알림을 클릭했을 때 특정 웹사이트로 바로 이동하도록 설정할 수 있습니다.

curl \
  -H "Title: 문서 생성 완료" \
  -H "Click: https://github.com/my-project/docs" \
  -d "새로운 빌드 문서가 생성되었습니다. 확인하려면 이 알림을 클릭하세요." \
  ntfy.sh/Petalinux

4. 결론

ntfy.shcurl의 조합은 개발자나 시스템 관리자가 커맨드 라인 환경에서 최소한의 노력으로 강력한 실시간 알림 시스템을 구축할 수 있게 해주는 훌륭한 솔루션입니다.
별도의 비용이나 복잡한 설정, 개인정보 노출의 위험 없이, 긴 작업의 완료를 기다리는 시간을 다른 생산적인 일에 사용할 수 있게 됩니다. 이 간단한 방법을 통해 개발 워크플로우의 효율성을 한 단계 높여보세요.

'linux' 카테고리의 다른 글

NVM 리눅스 설치 및 사용법  (0) 2025.11.29
외부 접속을 위한 WSL2 SSH  (0) 2025.11.17
WSL2 가이드 정리  (0) 2025.11.15
ssh reserve tunnel 가이드  (0) 2025.11.15
ubuntu 22.04 & gemini cli  (0) 2025.11.09