# (튜토리얼) NASA 태양 플레어 데이터 자동화 워크플로우 🛰️(⭐⭐)

[https://docs.n8n.io/try-it-out/longer-introduction/](https://docs.n8n.io/try-it-out/longer-introduction/) 내용을 토대로 제작되었습니다.

![Image](https://upload.cafenono.com/image/slashpageHome/20250422/094330_vZGG72zrcs1aiSUzBA?q=80&s=1280x180&t=outside&f=webp)

## 워크플로우 다운로드

## 

## 1. 워크플로우 개요

이 n8n 워크플로우는 NASA의 DONKI(Dataset Of Notifications, Knowledge, Information) 시스템에서 태양 플레어(Solar Flare) 데이터를 주기적으로 가져와 특정 조건에 따라 필터링하고, 결과를 PostBin을 통해 저장하는 자동화 프로세스입니다.

### **주요 기능:**

- NASA DONKI API를 활용하여 지난 7일간의 태양 플레어 데이터를 가져옵니다.

- 특정 조건(ClassType이 "C" 포함 여부)에 따라 데이터를 필터링합니다.

- 필터링된 데이터를 PostBin 서비스에 저장합니다.

### **해결하는 문제:**

태양 활동을 모니터링하는 과정에서 매번 데이터를 수동으로 가져오는 번거로움을 줄이고, 특정 조건을 만족하는 데이터만 자동으로 필터링하여 저장합니다.

### **사용자 혜택:**

- NASA 데이터를 손쉽게 수집하고 관리 가능

- 특정 조건을 충족하는 데이터만 필터링하여 정리

- 자동화된 프로세스를 통해 실시간 모니터링 가능

---

## 2. 사전 작업 ✅

이 워크플로우를 실행하기 위해서는 다음 준비가 필요합니다.

- **NASA API Key 발급:**

    - [NASA API 포털](https://api.nasa.gov/)에서 API 키를 생성하고, n8n에서 자격 증명 추가

- **PostBin 계정 및 Bin 생성:**

    - PostBin을 활용하여 데이터를 저장하므로 계정 생성 및 Bin ID 확인 필요

## 3. 주요 기능 및 역할 ⚙️

이 워크플로우는 여러 개의 노드로 구성되며, 각 노드의 역할은 다음과 같습니다.

### **1️⃣ Schedule Trigger**

- 매주 월요일 오전 9시에 워크플로우를 자동 실행합니다.

![Image](https://upload.cafenono.com/image/slashpageHome/20250422/094331_vKSCgk82vUTWDfWltR?q=80&s=1280x180&t=outside&f=webp)

### **2️⃣ NASA 데이터 수집 (NASA 노드)**

- DONKI API에서 지난 7일간의 태양 플레어 데이터를 가져옵니다.

- 요청 매개변수: `startDate` (오늘 날짜 기준 7일 전)

- API 자격 증명: NASA API Key 필요

- 우측 상단에 설정(`…`) 옵션을 누르고 Timezone을 Asia/Seoul로 변경합니다.

![Image](https://upload.cafenono.com/image/slashpageHome/20250422/094331_nKv0Xc1dZTpNCAEHxC?q=80&s=1280x180&t=outside&f=webp)

### **NASA 노드 추가 및 자격 증명 설정**

1. 트리거 노드 이후 `+`  버튼을 눌러 노드 추가 후** NASA**를 검색 & 선택. **DONKI 태양광 플레어 받기**를 선택합니다. 이 작업은 최근의 태양 플레어에 대한 보고서를 반환합니다. 연산을 선택하면 n8n이 노드를 캔버스에 추가하고 엽니다.

2. NASA API에 액세스하려면 자격 증명을 설정해야 합니다:

    1. **NASA API**에 대한 **자격** 증명 드롭다운을 선택합니다.

    2. **[새로 만들기**]를 선택합니다**.** n8n 자격 증명 보기가 열립니다.

    3. [NASA API](https://api.nasa.gov/)로 이동하여 **API** 키 **생성**에 양식을 작성합니다. NASA는 키를 생성하여 표시합니다. (이런 형식입니다. `VG7azJnxdf6sPXgdKuPGplbGjZD3RSY9nAoWfNPf`  )

    4. 키를 복사하여 n8n의 **API 키**에 붙여 넣습니다.

    5. **저장**을 선택합니다.

    6. 자격 증명 화면을 닫습니다. n8n이 노드로 돌아갑니다. 새 자격 증명은 **NASA API용 자격** 증명에서 자동으로 선택해야 합니다.

![Image](https://upload.cafenono.com/image/slashpageHome/20250422/094332_yUYOGihdgXiD61Yw1P?q=80&s=1280x180&t=outside&f=webp)

3. 기본적으로 DONKI Solar Flare는 지난 30일 동안의 데이터를 제공합니다. 마지막 주로만 제한하려면 **추가 필드**를 사용합니다:

    1. **추가** 필드를 선택합니다.

    2. **시작 날짜**를 선택합니다.

    3. 일주일 전부터 보고서를 받으려면 식을 사용할 수 있습니다: **시작 날짜** 옆에서 **식** 탭을 선택한 다음 확장 버튼을 선택하여 전체 식 편집기를 엽니다.

    4. **식** 필드에 다음 식을 입력합니다:

```
{{$today.minus({days: 7}).toFormat('yyyy-MM-dd')}}
```

> 

- n8n은 럭슨을 사용하여 날짜와 시간을 처리하며 편의상 두 가지 변수를 제공합니다: `$now` 그리고. `$today`. 자세한 내용은 [식 ](https://docs.n8n.io/code/cookbook/luxon/)> [럭슨](https://docs.n8n.io/code/cookbook/luxon/)을 참조하세요.

4. **식 편집** 모드를 닫으면 NASA 노드로 돌아갑니다.

5. 이제 노드가 작동 중인지 확인하고 예상 날짜를 반환할 수 있습니다: **테스트 단계**를 선택하여 노드를 수동으로 실행합니다. n8n은 NASA API를 호출하고 지난 7일 동안의 태양 플레어에 대한 세부 정보를 **OUPTURE** 섹션에 표시합니다.

6. NASA 노드를 닫아 워크플로 캔버스로 돌아갑니다.

![Image](https://upload.cafenono.com/image/slashpageHome/20250422/094332_MtK0D1NpTW2b52ig3R?q=80&s=1280x180&t=outside&f=webp)

### **If 노드로 로직 추가**

### **3️⃣ 데이터 필터링 (If 노드)**

- 가져온 태양 플레어 데이터 중 `classType` 값이 "C"를 포함하는 경우를 필터링합니다.

- 필터링된 데이터만 후속 처리로 전달합니다.

- n8n은 워크플로우에서 복잡한 로직을 지원합니다. 이 튜토리얼에서는 [If 노드](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if)를 사용하여 NASA 데이터에서 각각 보고서를 생성하는 두 개의 분기를 생성합니다. 

- 태양 플레어에는 다섯 가지 분류가 있습니다. 하위 분류가 있는 보고서를 한 출력으로 보내고 상위 분류가 있는 보고서를 다른 출력으로 보내는 논리를 만들 수 있습니다.

If 노드 추가:

1. NASA 노드에서 **노드 추가** 커넥터를 선택합니다.

2. **If**. n8n 검색은 검색과 일치하는 노드 목록을 보여줍니다.

3. 캔버스에 노드를 추가하려면 **If**를 선택합니다.

n8n이 노드를 엽니다.

4. 의 값을 확인해야 합니다. `classType` NASA 데이터의 속성. 이렇게 하려면:

    1. 드래그 **클래스값 1**을 **입력**합니다.

**이전 섹션에서 NASA 노드를 실행했는지 확인합니다.**

이전 섹션의 단계에 따라 NASA 노드를 실행하지 않았다면 이 단계에서 작업할 데이터가 표시되지 않습니다.

    2. 비교 작업을 **포함**으로 변경합니다.

    3. **값 2**에 **X**를 입력합니다.

이는 태양 플레어의 가장 높은 분류입니다.

다음 단계에서는 X 등급 태양광 플레어에 대한 보고서와 모든 소형 태양광 플레어에 대한 보고서 두 개를 작성합니다.

    4. 이제 노드가 작동 중인지 확인하고 예상 날짜를 반환할 수 있습니다: **테스트 단계**를 선택하여 노드를 수동으로 실행합니다. n8n은 조건에 대해 데이터를 테스트하고 **출력** 패널에서 참 또는 거짓과 일치하는 결과를 표시합니다.

> 이 튜토리얼에서는 실시간 날짜로 작업하고 있습니다. 워크플로를 실행할 때 X 클래스 태양 플레어가 없는 것을 발견하면 **값** **2**의 **X**를 A, B, **C** **또는** **M**으로 교체해 보세요.

![Image](https://upload.cafenono.com/image/slashpageHome/20250422/094333_cRJIM4tsSgpaT59LoH?q=80&s=1280x180&t=outside&f=webp)

### **3️⃣ 데이터 필터링 (If 노드)**

- 가져온 태양 플레어 데이터 중 `classType` 값이 "C"를 포함하는 경우를 필터링합니다.

- 필터링된 데이터만 후속 처리로 전달합니다.

### **워크플로에서 데이터 출력**

- 워크플로의 마지막 단계는 태양 플레어에 대한 두 보고서를 보내는 것입니다. 이 예에서는 [포스트빈](https://www.toptal.com/developers/postbin/)으로 데이터를 전송합니다. 포스트빈은 데이터를 받아 임시 웹 페이지에 표시하는 서비스입니다.

1. If 노드에서 **true**로 표시된 **노드** 연결기 **추가**를 선택합니다.

2. **PostBin**을 검색합니다. n8n은 검색과 일치하는 노드 목록을 보여줍니다.

3. **PostBin**을 선택합니다.

4. **요청 보내기**를 선택합니다. n8n은 노드를 캔버스에 추가하고 엽니다.

5. [포스트빈](https://www.toptal.com/developers/postbin/)으로 이동하여 **빈 만들기**를 선택합니다.

워크플로를 테스트할 때 탭으로 돌아갈 수 있도록 탭을 열어 둡니다.

6. 쓰레기통 ID를 복사합니다. 다음과 비슷해 보입니다. `1651063625300-2016451240051`

![Image](https://upload.cafenono.com/image/slashpageHome/20250422/094333_ynvAxQDd8M4xWGe7Tx?q=80&s=1280x180&t=outside&f=webp)

7. n8n에서 포스트빈 ID를 빈** ID**에 붙여 넣습니다.

8. 이제 Postbin으로 보낼 데이터를 구성합니다.

**빈 콘텐츠** 옆에서 식 **탭**을 선택한 다음 확장 버튼을 선택하여 전체 식 편집기를 엽니다.

9. **현재 노드** > **입력 데이터** > **JSON** > **classType**을 선택합니다. n8n은 **식을** 식 편집기에 추가하고 샘플 출력을 표시합니다.

10. 표현식은 다음과 같습니다: `{{$json["classType"]}}`.

전체 표현식이 되도록 메시지를 추가합니다:

```
There was a solar flare of class {{$json["classType"]}}
```

11. 식을 편집기를 닫아 노드로 돌아갑니다.

12. 포스트빈 노드를 닫아 캔버스로 돌아갑니다.

13. 다른 포스트빈 노드를 추가하여 If 노드의 **잘못된** 출력 경로를 처리합니다:

    1. 포스트빈 노드 위로 마우스를 올린 다음 **노드 컨텍스트 메뉴** > **중복 노드**를 선택하여 첫 번째 포스트빈 노드를 복제합니다.

    2. **거짓** 커넥터를 If 노드에서 새 포스트빈 노드의 왼쪽으로 드래그합니다.

![Image](https://upload.cafenono.com/image/slashpageHome/20250422/094334_aJyEtmZ4pePA85HJw1?q=80&s=1280x180&t=outside&f=webp)

### **5️⃣ 추가적인 데이터 요청 처리 (PostBin2, PostBin3 노드)**

- 저장된 데이터의 `requestId`를 기반으로 추가적인 처리 가능

### **워크플로 테스트**

1. 이제 전체 워크플로를 테스트할 수 있습니다. **테스트 워크플로**를 선택합니다. n8n은 진행 중인 각 단계를 표시하는 워크플로를 실행합니다.

2. 포스티빈으로 돌아갑니다. 페이지를 새로 고쳐 출력을 확인합니다.

3. 이 워크플로를 사용하려면(즉, 일주일에 한 번 자동으로 실행하려면) **활성화** 토글을 선택하여 활성화해야 합니다.

> (**제한 시간) **포스트빈의 쓰레기통은 생성 후 30분 동안 존재합니다. 이 제한 시간을 초과하는 경우 새 빈을 만들고 포스트빈 노드의 ID를 업데이트해야 할 수도 있습니다.

![Image](https://upload.cafenono.com/image/slashpageHome/20250422/094335_7iFfP7CzGr0wyxI3oa?q=80&s=1280x180&t=outside&f=webp)

![Image](https://upload.cafenono.com/image/slashpageHome/20250422/094336_u4nkWcXO302wBzOApd?q=80&s=1280x180&t=outside&f=webp)

## 4. 동작 방식 (단계별 설명) 🔄

1️⃣ **Schedule Trigger** → 매주 월요일 오전 9시에 워크플로우 실행
2️⃣ **NASA 노드** → DONKI API에서 태양 플레어 데이터를 가져옴
3️⃣ **If 노드** → classType이 "C"를 포함하는 경우만 필터링
4️⃣ **PostBin/PostBin1 노드** → 필터링된 데이터를 PostBin에 저장
5️⃣ **PostBin2/PostBin3 노드** → 저장된 데이터 요청 ID를 기반으로 추가적인 처리 수행 가능

---

## 5. 예상 결과물 및 출력 📊

### **출력 예시:**

PostBin에 저장된 데이터:

```
There was a solar flare of class C3.2
```

- 특정 조건을 충족하는 태양 플레어 데이터만 저장됩니다.

- 사용자는 PostBin을 통해 저장된 데이터를 확인할 수 있습니다.

---

이 워크플로우를 실행하면 NASA DONKI API에서 실시간 태양 플레어 데이터를 가져와 자동으로 필터링하고 저장할 수 있습니다. 🚀

For the site tree, see the [root Markdown](https://slashpage.com/n8n-guide.md).
