커맨드 라인 curl과 ntfy.sh를 이용한 실시간 알림 시스템 구축 가이드
PetaLinux 빌드와 같이 시간이 오래 걸리는 작업을 터미널에서 실행할 때, 작업이 언제 끝나는지 계속 확인하는 것은 번거로운 일입니다. 이 가이드에서는 간단한 무료 오픈소스 도구인 curl과 ntfy.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.sh와 curl의 조합은 개발자나 시스템 관리자가 커맨드 라인 환경에서 최소한의 노력으로 강력한 실시간 알림 시스템을 구축할 수 있게 해주는 훌륭한 솔루션입니다.
별도의 비용이나 복잡한 설정, 개인정보 노출의 위험 없이, 긴 작업의 완료를 기다리는 시간을 다른 생산적인 일에 사용할 수 있게 됩니다. 이 간단한 방법을 통해 개발 워크플로우의 효율성을 한 단계 높여보세요.
'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 |