작성일 댓글 남기기

미세먼지 알림 자동화, 노코드로 직접 만드는 법

봄철 아침 미세먼지 알림 확인하는 모습

봄이 오면 벚꽃과 함께 어김없이 찾아오는 불청객이 있습니다. 바로 미세먼지입니다. 요즘은 대부분 날씨 앱에서 미세먼지 알림을 받고 있지만, 사실 이 알림이 내 생활 패턴에 딱 맞지 않아서 불편했던 적 없으신가요? 출근 시간에는 알림이 안 오고, 정작 안 나가는 주말에 울리거나, ‘나쁨’이라고만 뜨고 구체적으로 어떻게 해야 할지 알려주지 않거나 말입니다.

이런 불편을 해결하는 방법이 있습니다. 코딩을 전혀 몰라도 노코드 자동화 도구를 사용하면 나만의 기준과 시간대에 맞는 대기질 알림 시스템을 직접 만들 수 있습니다. 이번 글에서는 노코드 자동화 플랫폼 Make(메이크, 구 Integromat)를 중심으로 미세먼지 알림을 자동화하는 전 과정을 단계별로 안내해 드리겠습니다. 이 과정에서 배우는 자동화 사고방식은 미세먼지뿐 아니라 일상의 모든 반복 작업에 그대로 적용할 수 있으니, 끝까지 읽어보시면 분명 도움이 될 겁니다.

기본 앱 알림으로는 왜 부족할까

스마트폰에 설치된 날씨 앱이나 에어코리아 앱도 미세먼지 알림 기능을 제공합니다. 하지만 실제로 써보면 몇 가지 아쉬운 점이 드러납니다.

첫 번째는 알림 기준을 세밀하게 조절할 수 없다는 것입니다. 대부분의 앱은 ‘나쁨’ 이상일 때 알림을 보내는 정도의 간단한 설정만 제공합니다. 하지만 천식이나 알레르기가 있는 분이라면 ‘보통’ 수준에서도 알림이 필요할 수 있고, 반대로 실외 활동이 적은 재택근무자라면 ‘매우 나쁨’ 이상에서만 알림을 받고 싶을 수 있습니다.

두 번째는 시간대 맞춤이 어렵다는 점입니다. 출근 30분 전에 대기질을 확인하고 마스크를 챙길지 말지 판단하고 싶은데, 앱 알림은 대기질이 변하는 시점에 오기 때문에 새벽 3시에 울리기도 합니다. 정작 필요한 아침 7시에는 이미 확인할 타이밍을 놓치기 일쑤입니다.

세 번째는 여러 정보를 조합해서 판단할 수 없다는 것입니다. 미세먼지만 보는 게 아니라, 봄철이라면 꽃가루 지수와 자외선 지수까지 함께 확인해야 외출 준비를 제대로 할 수 있습니다. 하지만 이 정보들을 하나하나 다른 앱에서 확인하는 건 번거롭습니다.

네 번째는 알림 채널의 제약입니다. 가족 단체방에 매일 아침 대기질 요약을 보내고 싶다면? 팀 슬랙 채널에 사무실 근처 대기질을 공유하고 싶다면? 기본 앱으로는 이런 것이 불가능합니다.

이 모든 문제를 해결하려면 결국 나만의 시스템을 만들어야 합니다. 그리고 놀랍게도, 이 작업에 코딩 한 줄 필요 없습니다.

자동화 워크플로우의 기본 구조 이해하기

자동화 워크플로우 4단계 흐름도

직접 만드는 자동화 시스템의 가장 큰 장점은 내가 원하는 대로 동작을 설계할 수 있다는 것입니다. 본격적인 구축에 들어가기 전에, 모든 자동화 워크플로우의 기본 구조를 이해하면 훨씬 수월하게 진행할 수 있습니다.

자동화 워크플로우는 크게 네 단계로 이루어집니다.

  • 트리거(Trigger) — 워크플로우를 시작시키는 조건입니다. ‘매일 아침 7시’, ‘매시간 정각’, ‘특정 이벤트 발생 시’ 등이 해당합니다.
  • 데이터 수집(Fetch) — 필요한 정보를 외부에서 가져오는 단계입니다. 대기질 API를 호출해서 현재 미세먼지 수치를 받아오는 것이 여기에 해당합니다.
  • 조건 판단(Filter/Logic) — 수집한 데이터를 내 기준에 따라 판단하는 단계입니다. PM2.5가 50 이상이면 알림을 보내고, 그 이하면 보내지 않는 식의 로직을 설정합니다.
  • 액션(Action) — 조건이 충족됐을 때 실행하는 동작입니다. 텔레그램 메시지 전송, 이메일 발송, 슬랙 알림 등이 여기에 속합니다.

이 네 단계 패턴은 미세먼지 알림에만 해당되는 것이 아닙니다. 환율이 특정 수준 이하로 떨어지면 알림을 받는 시스템, 관심 상품의 가격이 내려가면 알려주는 시스템, 매주 월요일마다 회의록 템플릿을 자동 생성하는 시스템 등 거의 모든 자동화가 이 구조를 따릅니다. 한 번 익혀두면 응용 범위가 무궁무진하다는 뜻입니다.

실전: Make로 미세먼지 알림 시스템 구축하기

이제 실제로 만들어 보겠습니다. 여기서는 Make(메이크)라는 노코드 자동화 플랫폼을 사용합니다. Make를 선택한 이유는 무료 플랜에서 월 1,000회 실행이 가능하고(미세먼지 알림 용도로는 충분합니다), 시각적인 워크플로우 빌더가 직관적이며, HTTP 요청 모듈을 지원해서 공공 데이터 API와 연동이 자유롭기 때문입니다.

Step 1: Make 가입과 시나리오 생성

Make 공식 사이트에서 무료 계정을 만듭니다. 구글 계정이나 이메일로 간단하게 가입할 수 있습니다. 로그인 후 대시보드에서 Create a new scenario 버튼을 클릭하면 빈 캔버스가 나타납니다. 이 캔버스가 우리 워크플로우를 시각적으로 설계하는 공간입니다.

Make에서 자동화 흐름 하나를 시나리오(Scenario)라고 부릅니다. 시나리오 안에 여러 모듈(Module)을 이어 붙여서 워크플로우를 만드는 방식입니다. 레고 블록을 연결하듯이 모듈을 하나씩 추가하면 됩니다.

Step 2: 스케줄 트리거 설정

첫 번째 모듈로 시간 기반 트리거를 설정합니다. 캔버스 중앙의 빈 원형 모듈을 클릭하고, 검색창에서 Schedule을 선택합니다. 여기서 워크플로우가 실행될 주기를 정합니다.

출근 전 알림이 목적이라면 매일 아침 7시에 한 번 실행되도록 설정하면 됩니다. 좀 더 꼼꼼하게 관리하고 싶다면 매시간 정각으로 설정할 수도 있습니다. 무료 플랜에서 월 1,000회이므로, 매시간(하루 24회 × 30일 = 720회)으로 설정해도 여유가 있습니다.

Step 3: 대기질 데이터 가져오기

두 번째 모듈에서 실제 대기질 데이터를 수집합니다. 한국의 대기질 데이터는 공공데이터포털에서 에어코리아 측정소 정보와 실시간 대기질 수치를 무료로 제공하고 있습니다.

먼저 공공데이터포털 사이트에 가입한 뒤, ‘한국환경공단 에어코리아 대기오염정보’ 또는 ‘측정소별 실시간 측정정보 조회’ API에 활용 신청을 합니다. 신청은 즉시 승인되는 경우가 대부분이고, 승인되면 인증키(API Key)를 발급받게 됩니다.

Make 캔버스로 돌아와서 트리거 모듈 오른쪽의 + 버튼을 클릭하고, HTTP → Make a request 모듈을 선택합니다. 설정 내용은 다음과 같습니다.

  • URL: 공공데이터포털에서 제공하는 API 엔드포인트 주소를 붙여넣습니다. 측정소별 실시간 측정정보 조회 서비스의 URL을 사용합니다.
  • Method: GET을 선택합니다.
  • Query String: 파라미터를 추가합니다. serviceKey에 발급받은 인증키, stationName에 가까운 측정소 이름(예: 종로구, 강남구 등), dataTerm에 DAILY, returnType에 json을 넣습니다.

측정소 이름은 에어코리아 사이트에서 내 위치와 가장 가까운 곳을 찾아 입력하면 됩니다. 서울의 경우 구 단위로 측정소가 있어서 정확한 데이터를 받을 수 있습니다.

이 모듈을 실행하면 PM10(미세먼지), PM2.5(초미세먼지), 오존, 이산화질소 등 다양한 대기질 수치가 JSON 형태로 돌아옵니다.

Step 4: 응답 데이터 파싱

API에서 돌아온 데이터는 JSON 구조이므로, 우리가 필요한 값만 꺼내야 합니다. HTTP 모듈 뒤에 JSON → Parse JSON 모듈을 추가합니다. Data structure 설정에서 Generate 버튼을 누르고, 이전 단계에서 받아온 응답 샘플을 붙여넣으면 Make가 자동으로 데이터 구조를 파악합니다.

파싱이 완료되면 이제 워크플로우 안에서 pm10Value(미세먼지 수치), pm25Value(초미세먼지 수치) 같은 개별 필드를 변수처럼 사용할 수 있게 됩니다.

Make 시나리오 빌더 워크플로우 구성 예시

Step 5: 조건 필터 설정

이제 핵심인 조건 판단 단계입니다. Parse JSON 모듈과 다음 모듈 사이의 연결선을 클릭하면 필터(Filter)를 추가할 수 있습니다. 필터 조건으로 자신의 기준에 맞는 수치를 설정합니다.

예를 들어, 초미세먼지(PM2.5) 기준으로 설정한다면 다음과 같은 기준이 일반적입니다.

  • 일반인: PM2.5가 36 이상이면 알림 (환경부 ‘나쁨’ 기준)
  • 민감군: PM2.5가 16 이상이면 알림 (환경부 ‘보통’ 상단)
  • 운동하는 사람: PM2.5가 26 이상이면 알림 (야외 운동 자제 권장)

필터 설정 화면에서 Condition에 Parse JSON 모듈의 pm25Value 필드를 선택하고, 연산자를 Greater than or equal to로 설정한 뒤, 값에 자신의 기준 수치를 입력합니다. 이 필터를 통과한 경우에만 다음 단계(알림 발송)가 실행됩니다.

여기서 한 가지 팁을 드리자면, OR 조건을 활용해서 미세먼지(PM10)와 초미세먼지(PM2.5) 중 하나라도 기준을 초과하면 알림이 오도록 설정하는 것이 좋습니다. PM10은 81 이상, PM2.5는 36 이상 중 하나라도 해당하면 알림을 보내는 식입니다.

Step 6: 알림 발송 연결

필터를 통과했다는 것은 대기질이 내 기준에서 좋지 않다는 뜻이므로, 이제 알림을 보내야 합니다. 알림 채널은 자신의 상황에 맞게 선택하면 됩니다.

텔레그램을 사용하는 경우 가장 추천하는 방법입니다. 텔레그램 봇을 만들고 Make의 Telegram 모듈로 메시지를 보내면 됩니다. 텔레그램 봇 생성은 텔레그램에서 BotFather를 검색한 뒤, /newbot 명령어로 봇을 만들고 토큰을 받는 간단한 과정입니다. Make에서 Telegram 모듈을 추가하고 봇 토큰과 채팅 ID를 입력하면 연결 완료입니다.

메시지 내용은 Make의 변수 기능을 활용해서 이렇게 구성할 수 있습니다.

예시 메시지 템플릿을 살펴보면, 현재 시각, 측정소 이름, 미세먼지 PM10 수치와 등급, 초미세먼지 PM2.5 수치와 등급, 그리고 수치에 따른 행동 가이드까지 포함하면 매우 실용적인 알림이 됩니다. 수치 옆에 이모지를 넣어서 한눈에 상태를 파악할 수 있도록 구성하면 효과적입니다.

슬랙을 사용하는 경우 직장에서 팀 단위로 활용할 때 좋습니다. Make의 Slack 모듈에서 Incoming Webhook URL을 연결하면 특정 채널에 자동으로 메시지가 게시됩니다.

이메일을 선호하는 경우 Make의 Email 모듈이나 Gmail 모듈을 사용합니다. 다만, 이메일은 실시간성이 떨어지므로 하루 한 번 아침 요약 용도로 더 적합합니다.

Step 7: 시나리오 활성화와 테스트

모든 모듈이 연결되었으면 하단의 Run once 버튼으로 테스트 실행을 합니다. 각 모듈이 정상적으로 동작하는지, 데이터가 올바르게 전달되는지 확인합니다. 특히 API 응답에서 수치가 제대로 파싱되는지, 필터 조건이 의도대로 작동하는지 꼼꼼히 확인해야 합니다.

테스트가 성공하면 왼쪽 하단의 Scheduling 토글을 ON으로 바꿉니다. 이제부터 설정한 주기에 따라 자동으로 대기질을 확인하고, 기준 초과 시 알림을 보내줍니다.

알림 메시지를 더 똑똑하게 만드는 방법

기본적인 알림 시스템을 만들었다면, 이제 좀 더 유용하게 발전시켜 보겠습니다. 단순히 수치만 던져주는 것보다 행동 가이드까지 포함된 알림이 훨씬 가치 있습니다.

수치별 맞춤 메시지 분기

Make의 Router 모듈을 사용하면 수치 범위에 따라 다른 메시지를 보낼 수 있습니다. 필터 하나로 단순히 알림을 보낼지 말지만 결정하는 것이 아니라, 수치가 36에서 75 사이면 ‘마스크 착용 권장’ 메시지를, 76 이상이면 ‘외출 자제 권장’ 메시지를 보내는 식으로 세분화할 수 있습니다.

Router를 추가하는 방법은 간단합니다. Parse JSON 모듈 다음에 Router 모듈을 넣고, 각 경로(Route)마다 다른 필터 조건과 메시지 모듈을 연결합니다. 첫 번째 경로는 PM2.5가 36 이상 75 이하인 경우 주의 메시지를, 두 번째 경로는 76 이상인 경우 경고 메시지를 보내도록 설정합니다.

날씨 정보 함께 포함하기

미세먼지 수치만으로는 완벽한 외출 판단이 어렵습니다. 비가 오는 날이라면 미세먼지가 씻겨 내려갈 수 있고, 바람이 강한 날에는 수치가 빠르게 변할 수 있기 때문입니다. HTTP 모듈을 하나 더 추가해서 기상청 단기예보 API나 OpenWeatherMap API의 날씨 데이터를 함께 가져오면, 알림 메시지에 현재 기온, 강수 확률, 풍속 정보까지 포함시킬 수 있습니다.

비가 예보되어 있다면 ‘오후에 비가 예정되어 미세먼지가 개선될 수 있습니다’라는 추가 정보를, 맑고 바람이 없는 날이라면 ‘대기 정체로 수치가 높게 유지될 수 있으니 외출을 줄이세요’라는 맥락 있는 안내를 함께 보낼 수 있습니다.

봄철 꽃가루 지수 연동

봄에는 미세먼지 못지않게 꽃가루도 큰 고민입니다. 기상청에서 제공하는 생활기상지수 API에는 꽃가루 농도 위험지수와 자외선 지수가 포함되어 있습니다. 이 API를 추가로 호출해서 알림 메시지에 꽃가루와 자외선 정보까지 함께 담으면, 하나의 알림으로 봄철 외출에 필요한 모든 정보를 한 번에 확인할 수 있습니다.

알레르기 비염이 있는 분이라면 꽃가루 농도가 ‘높음’ 이상일 때 알레르기약 복용 리마인더까지 포함시키는 것도 좋은 아이디어입니다.

텔레그램 미세먼지 알림 메시지 예시 화면

Make 말고 더 간단한 방법은 없을까

Make로 만드는 방법이 가장 유연하고 강력하지만, 좀 더 간단한 대안도 있습니다. 자신의 기술 수준과 필요에 따라 선택하면 됩니다.

IFTTT — 가장 쉬운 방법

IFTTT(If This Then That)는 이름 그대로 ‘이것이면 저것’ 방식의 가장 단순한 자동화 도구입니다. IFTTT의 Weather Underground 서비스를 트리거로 사용하면, 대기질 지수(AQI)가 특정 수준을 넘을 때 스마트폰 푸시 알림이나 이메일을 자동 발송할 수 있습니다.

장점은 설정이 5분이면 끝날 정도로 간단하다는 것이고, 단점은 한국 측정소 기준이 아닌 글로벌 데이터를 사용하므로 정밀도가 떨어질 수 있고, 무료 플랜에서 만들 수 있는 자동화가 2개로 제한된다는 것입니다.

iOS 단축어 — 아이폰 사용자라면

아이폰의 단축어(Shortcuts) 앱을 사용하면 별도 서비스 가입 없이 자동화를 구현할 수 있습니다. 단축어의 자동화 탭에서 ‘매일 특정 시간’ 트리거를 설정하고, 날씨 데이터를 가져와서 조건에 따라 알림을 표시하는 흐름을 만듭니다.

iOS 단축어의 장점은 클라우드 서비스 의존 없이 기기 내에서 동작한다는 점과 위치 기반 트리거를 사용할 수 있다는 점입니다. 예를 들어, 집에서 나갈 때 자동으로 현재 대기질을 확인하고 알려주는 자동화가 가능합니다. 다만 복잡한 조건 분기나 외부 API 호출은 Make에 비해 설정이 까다롭습니다.

안드로이드 Tasker — 강력하지만 학습 필요

안드로이드 사용자라면 Tasker 앱이 가장 강력한 선택지입니다. HTTP Request 액션으로 공공 데이터 API를 직접 호출하고, 조건 분기를 설정하고, 알림을 표시하는 전체 과정을 기기 안에서 처리할 수 있습니다. 기능적으로는 Make와 비슷한 수준의 복잡한 워크플로우를 구현할 수 있지만, 인터페이스가 직관적이지 않아 처음 사용하면 학습 시간이 필요합니다.

n8n — 개발자 성향이라면 자체 호스팅

개인 서버나 NAS가 있는 분이라면 n8n을 자체 호스팅하는 방법도 고려해 볼 만합니다. n8n은 Make와 비슷한 비주얼 워크플로우 빌더이지만 오픈소스이고 자체 서버에서 운영할 수 있어서 실행 횟수 제한이 없습니다. Docker 한 줄로 설치할 수 있고, Make에서 만든 것과 동일한 구조의 워크플로우를 구현할 수 있습니다. 다만 서버 관리 부담이 있으므로, 기술적 배경이 있는 분에게 추천합니다.

자동화 시스템 안정적으로 운영하는 팁

알림 시스템을 만들었다면, 몇 가지 운영상의 팁을 알아두면 더욱 안정적으로 사용할 수 있습니다.

API 호출 실패 대비하기

공공 데이터 API는 가끔 서버 점검이나 일시적 장애로 응답을 주지 않을 때가 있습니다. Make에서 HTTP 모듈의 에러 핸들링을 설정해 두면, API 호출이 실패했을 때 자동으로 재시도하거나, 실패 알림을 별도로 받을 수 있습니다.

HTTP 모듈을 클릭하고 Error handling에서 Retry 디렉티브를 추가합니다. 재시도 간격을 5분, 최대 재시도 횟수를 3회로 설정하면 일시적인 장애에도 안정적으로 동작합니다.

중복 알림 방지

매시간 실행으로 설정했는데 대기질이 계속 나쁜 상태라면, 같은 내용의 알림이 반복해서 올 수 있습니다. 이를 방지하려면 Make의 Data Store 기능을 활용합니다. 마지막으로 알림을 보낸 시간과 수치를 저장해 두고, 이전 알림과 동일한 상태라면 알림을 건너뛰도록 조건을 추가합니다.

간단한 방법으로는, 하루 한 번 아침에만 알림을 보내도록 스케줄을 제한하는 것도 효과적입니다. 매시간 알림보다는 아침 출근 전 한 번, 점심 외출 전 한 번 정도가 실용적입니다.

주간 리포트 추가하기

일일 알림과 별도로 주간 대기질 리포트를 자동 생성하는 시나리오를 하나 더 만들어 보는 것도 좋습니다. 매주 일요일 저녁에 한 주간의 평균 미세먼지 수치, 가장 나빴던 날, ‘좋음’ 등급이었던 날수 등을 정리해서 보내면 대기질 패턴을 장기적으로 파악하는 데 도움이 됩니다.

이런 주간 리포트는 특히 기록을 남기고 싶은 분에게 유용합니다. Google Sheets에 매일 수치를 자동 기록하는 시나리오를 병행하면, 월별 추이까지 엑셀로 확인할 수 있습니다.

자동화 사고방식을 일상에 확장하기

이번에 미세먼지 알림을 만들면서 익힌 트리거-데이터-조건-액션 패턴은 생각보다 훨씬 넓은 범위에 적용할 수 있습니다. 한 번 자동화의 맛을 보면, 일상 곳곳에서 자동화할 수 있는 포인트가 보이기 시작합니다.

반복되는 작업을 찾아보세요. 매일 같은 시간에 하는 일, 매번 같은 순서로 처리하는 일, 특정 조건이 되면 항상 하는 일이 있다면 그것이 자동화 후보입니다. 예를 들어 매일 아침 뉴스 헤드라인을 확인하는 루틴은 RSS 피드와 Make를 연결해서 텔레그램으로 받을 수 있고, 매달 고정 지출을 가계부에 입력하는 작업은 Google Sheets 자동화로 대체할 수 있습니다.

수동 확인이 필요한 것을 알림으로 바꿔보세요. 택배 배송 상태를 수시로 확인하는 대신 상태 변경 시 알림을 받고, 즐겨 찾는 블로그의 새 글을 매번 방문해서 확인하는 대신 RSS 알림을 설정하는 식입니다. 사람이 기억하고 확인해야 하는 일을 시스템에 맡기면 그만큼 머릿속의 부담이 줄어듭니다.

작게 시작해서 점진적으로 넓혀가세요. 처음부터 복잡한 자동화를 만들려고 하면 설정 과정에서 지치기 쉽습니다. 오늘 만든 미세먼지 알림처럼 하나의 간단한 워크플로우로 시작하고, 동작을 확인한 뒤에 조금씩 기능을 추가하는 것이 훨씬 효과적입니다. 모듈 하나를 추가하고 테스트하고, 또 하나를 추가하고 테스트하는 방식으로 확장하면 실수도 줄이고 이해도도 높아집니다.

노코드 자동화 도구가 이렇게 발전한 지금, 더 이상 자동화는 개발자만의 영역이 아닙니다. 오늘 소개한 방법을 활용해서 봄철 미세먼지 걱정부터 줄여보시기 바랍니다. 한 번 설정해 두면 매일 아침 스스로 움직이는 나만의 알림 시스템이, 생각보다 큰 편리함을 가져다줄 것입니다.

이미지는 Leonardo AI 로 생성되었습니다.

이미지는 Claude AI 로 생성되었습니다.