n8n 한국어 교재 · Ch.3

첫 워크플로 — 3노드 30분 실습

Manual Trigger → HTTP Request → Set. 외부 API에서 현재 시간을 받아 가공해 출력하는 가장 기본 워크플로. 노드 추가·연결·실행·디버깅의 기본기를 한 번에 익힙니다.

Manual Trigger → HTTP Request → Set 3노드가 좌→우로 연결된 워크플로 일러스트

Ch.2 에서 n8n 을 띄웠다면 이제 진짜 한 번 만들어봅니다. 거창한 자동화는 아니고 "버튼 누르면 외부 API 에서 데이터 받아와 우리가 원하는 모양으로 다듬는" — n8n 의 핵심 패턴을 30분에 익힙니다. 이 패턴을 한 번 잡으면 Ch.6 (Schedule)·Ch.7 (Webhook) 부터는 같은 흐름의 변주일 뿐이에요.

오늘 만들 워크플로 — 한 줄 요약

버튼을 누르면 worldtimeapi.org 에 "지금 서울 시간 줘" 라고 요청해서, 받은 데이터에서 날짜·시간·요일만 깔끔히 뽑아 출력. 3개 노드로 구성됩니다.

구조
Manual Trigger (수동 실행 버튼) → HTTP Request (외부 API GET 호출) → Set (받은 JSON 에서 필요한 필드만 가공) → 결과 확인

worldtimeapi.org 인가? 인증 없이 무료로 쓸 수 있는 GET 엔드포인트라 첫 실습에 부담이 없어요. API 키 같은 게 필요하면 Ch.7·Ch.17 에서 따로 다룹니다. 지금은 워크플로 짜는 흐름 자체에 집중.

노드 1 — Manual Trigger 추가하기

n8n 의 모든 워크플로는 트리거(시작 신호)로 시작합니다. 가장 기본은 "내가 직접 누름" = Manual Trigger.

실제 캔버스에 Manual Trigger + HTTP Request 두 노드가 좌→우로 연결된 모습
실제 캔버스. "When clicking 'Execute workflow'" 노드 다음에 HTTP Request 가 붙은 모습 (Set 은 우측 + 에서 이어 붙임).
1
새 워크플로 만들기

왼쪽 사이드바에서 Workflows 클릭 → 우측 상단 + Create Workflow. 이름은 일단 자동 "My workflow" 그대로 둡니다.

2
"Add first step" 클릭 → 트리거 패널 열기
HTTP Request 노드 설정 패널 — Method GET, URL 입력란, Authentication None, Send Query Parameters·Headers·Body 토글
실제 HTTP Request 노드 패널. Method · URL · Authentication 이 핵심 3개. URL 입력란에 worldtimeapi 주소를 그대로 붙여넣으면 됩니다.
3
"Trigger manually" 선택

맨 위 Trigger manually 항목 클릭. 설명: "Runs the flow on clicking a button in n8n. Good for getting started quickly." — 정확히 우리 목적.

그러면 캔버스에 첫 노드("When clicking 'Test workflow'") 가 박힙니다. 박스 우측 끝의 + 표시가 다음 노드 추가 지점.

노드 2 — HTTP Request 로 외부 API 호출

n8n 의 가장 강력한 노드. 거의 모든 외부 API 호출이 여기서 시작됩니다.

1
Manual Trigger 의 + 표시 클릭

다음 노드 검색창이 열립니다. "http" 입력 → 첫 번째 결과 HTTP Request 클릭.

2
URL 입력

우측 패널에서 URL 필드에 그대로 붙여넣기:

https://worldtimeapi.org/api/timezone/Asia/Seoul

Method 는 기본 GET 그대로. 다른 옵션 건드릴 필요 없음. 인증 없는 공개 API 라 Authentication 도 None.

3
"Execute step" 으로 한 번 호출 테스트

패널 하단 Execute step 버튼. 우측에 응답 데이터가 보이면 OK:

{ "datetime": "2026-05-18T05:47:12.345678+09:00", "day_of_week": 1, "timezone": "Asia/Seoul", "week_number": 21, ... }

이게 다음 노드(Set)의 입력 데이터가 됩니다.

에러 났다면 — 네트워크 차단(회사 방화벽)일 가능성. 또는 worldtimeapi 가 잠시 다운. https://api.thecatapi.com/v1/images/search 같은 다른 GET API 로 대체해 흐름만 익혀도 OK.

노드 3 — Set 노드로 데이터 가공

JSON 응답이 너무 길어서 우리에게 필요한 건 3개 필드뿐. Set 노드는 "받은 데이터에서 새 형태로 다시 짠다" 는 역할.

1
HTTP Request 노드의 + 표시 → "Set" 검색 → "Edit Fields (Set)" 선택
2
필드 3개 추가

패널의 Fields to Set 에서 + Add Field 버튼을 3번 눌러 세 필드를 만듭니다. 각각:

# 필드 1 Name: 날짜 Type: String Value: ={{ $json.datetime.split('T')[0] }} # 필드 2 Name: 시간 Type: String Value: ={{ $json.datetime.split('T')[1].slice(0,8) }} # 필드 3 Name: 요일 Type: String Value: ={{ ['일','월','화','수','목','금','토'][$json.day_of_week] }}

Value 앞의 = 는 "여기는 표현식(JavaScript)이다" 라는 표시. 일반 텍스트가 아니라 동적 계산.

3
"Include Other Fields" 끄기

패널 하단 옵션. 기본은 켜져 있는데(이전 데이터 모두 그대로 통과), 우리는 3개 필드만 깔끔히 남기려고 끕니다.

워크플로 실행 + 디버깅

1
"Test workflow" 누르기

캔버스 하단 또는 Manual Trigger 노드의 Test workflow 버튼. 그러면 세 노드가 순서대로 실행되면서 각 노드 박스 옆에 ✓ 표시가 떠요.

2
Set 노드 결과 확인

Set 노드 클릭 → 우측 OUTPUT 탭에서 결과:

[ { "날짜": "2026-05-18", "시간": "05:47:12", "요일": "월" } ]

이 데이터가 다음 노드(있다면)의 입력이 됩니다. 우리는 더 안 붙이고 여기서 끝.

3
에러 났을 때 — 빨간 X 표시 + 디버깅

어떤 노드가 실패하면 그 노드만 빨간 X 표시. 클릭하면 우측 패널에 ERROR 메시지. 흔한 두 가지:

  • "Cannot read property 'datetime' of undefined" → 이전 노드 출력이 비었음. HTTP Request 패널의 응답 확인.
  • Expression 안의 JavaScript 오타{{ 안의 코드 다시 점검. 빨간 줄 표시됨.

고친 후 그 노드만 Execute step 다시 누르면 부분 재실행. 전체 워크플로 다시 돌릴 필요 없음.

여기까지가 n8n 의 80% 입니다. 트리거가 무엇이든(Schedule·Webhook·앱 이벤트), 중간에 어떤 노드가 들어가든(데이터베이스·AI·Slack·메일), "신호 → 호출 → 가공 → 출력" 의 골격은 동일. 이 30분 실습이 그 골격을 잡아준 거예요.

다음 Ch.4 에서는 한 단계 더 깊이 — 노드 사이를 흐르는 데이터의 모양(JSON 배열·객체·중첩 구조) 과 표현식 {{ $json.xxx }} 이 그 안을 어떻게 들여다보는지 정리합니다. 이걸 알면 Set 노드뿐 아니라 모든 노드에서 자유롭게 값을 꺼내 쓸 수 있어요.

n8n 한국어 교재 · Ch.3 완료

다음 편 → Ch.4 노드 구조 + 데이터 흐름 (JSON 이해)

전체 시리즈 보기

© 2026 주나이테크(주) @JUNAITECH