관리 메뉴

애독자's 공부방

[n8n이 다 해줌] 2주 차 미션 _ 나만의 날씨 알리미 본문

자동화/n8n 완독 챌린지

[n8n이 다 해줌] 2주 차 미션 _ 나만의 날씨 알리미

애독자 2026. 5. 18. 01:26
728x90

CHAPTER 03. 나만의 날씨 알리미 만들기_미션


주차별 진도에 따라 주어진 미션과 한 주간 공부한 내용을 정리하여 블로그에 정리

 

🚶기본 미션: 필수 사항
🏃심화 미션: 선택 사항(※ 심화 미션을 수행하면 기본 미션은 생략 가능)


[기본 미션]

CHAPTER 03 나만의 날씨 알리미 만들기(OpenWeatherMap API → Discord 알림)를 따라 워크플로우를 직접 만들고, 실행 결과와 워크플로우 화면을 블로그에 정리해 보세요.


 

 

 

□ 공부한 내용

  - OpenWeatherMap: 다양한 기상 데이터를 제공하는 전문 API 서비스

  - API: 외부 서비스와 데이터를 주고받기 위해 사용

    . API 키: 요청 권한을 확인하기 위한 디지털 비밀번호 역할

  - Merge 노드: 서로 다른 데이터를 하나의 흐름으로 병합 (Combine 모드 활용)

    . Combine By Position: 각각 하나씩 반환된 데이터를 같은 위치의 아이템끼리 병합 가능

  - Edit Fields 노드: 메시지에 필요한 데이터만 선별하여, 이후 단계에서 구성하기 쉬운 형태로 정리 가능

  - 디스코드 웹훅: 자동화 결과를 별도의 복잡한 설정 없이 메시지 형태로 전달 가능

 

 

 워크플로우

 

 

□ 노드의 연결 흐름

  - Schedule Trigger: 매일 오전 6시 실행

  - OpenWeatherMap(현재날씨): 서울(Seoul)의 현재 기온, 기상상태, 일출/일몰 시간 제공, 언어는 한국어(kr)

  - OpenWeatherMap(5일예보): 3시간 단위로 제공되는 데이터를 가져와서 8번째(24시간) 데이터를 활용

  - Merge(Combine): 연재날씨와 5일예보 데이터를 한데 묶어 다음 노드로 전달

  - Edit Fields(비활성화): 데이터를 정제하려다 디스코드 노드에서 표현식(expressions)을 사용해 제어 가능하여 비활성화 처리

  - Discord: 웹후크를 연동해 잘 정리한 포멧으로 날씨 메시지를 전송

 

 

□ 실제 Discord 수신 화면

 

 

□ 생각

각각의 OpenWatherMap API 응답 데이터를 Merge 노드를 통해 쉽게 하나로 병합하는 부분이 편리했으며, n8n의 직관성을 느낄 수 있었습니다. 또한 디스코드 노드에서 표현식 사용이 가능해서 필요없는 Edit Fields 노드를 비활성화 처리 했는데, 이렇게 임시로 노드를 끄고 켤 수 있는 점도 매우 유용합니다. 추가적으로 내일날씨인 {{ $json.list[8].weather[0].main }}의 값이 Rain이나 Snow 인 경우에 "내일 비/눈 소식이 있으니 우산을 챙기세요!" 라는 메시지를 디스코드에 추가하면 더 좋을 것 같습니다.

 


 

728x90