일일 환율 변동 알림

매일 주요 통화 환율 변동을 체크하고 큰 변동 시 알림을 보냅니다

난이도
쉬움
예상 시간 10~15분
조회 3
다운로드 0

자동화 흐름

🏭 환율 정보
Make.com 필터 + 가공
🗨 Slack
+
Make.com

일일 환율 변동 알림 자동화

매일 오전, 한국수출입은행 환율 API에서 주요 통화(USD, EUR, JPY) 환율을 조회하고 전일 대비 변동폭을 계산하여 Slack 채널에 포맷팅된 알림 메시지를 발송하는 레시피입니다.

---

사전 준비

| 항목 | 설명 | |------|------| | 한국수출입은행 API 인증키 | 수출입은행 Open API에서 인증키 발급 | | Slack Webhook URL | Slack 워크스페이스에서 Incoming Webhook 앱 추가 후 URL 발급 | | Google Sheets (선택) | 환율 히스토리 저장용 스프레드시트 | | Make 계정 | 시나리오 구성 및 스케줄링 |

---

Step 1: 한국수출입은행 환율 API 호출

HTTP 모듈로 당일 환율 데이터를 요청합니다.

GET https://www.koreaexim.go.kr/site/program/financial/exchangeJSON

주요 파라미터:

| 파라미터 | 값 | 설명 | |----------|----|------| | authkey | {{EXIM_API_KEY}} | 수출입은행 인증키 | | searchdate | 20260416 | 조회일자 (YYYYMMDD) | | data | AP01 | 환율 데이터 구분 (AP01=환율) |

Tip: searchdate는 Make 날짜 함수로 자동 설정합니다: {{formatDate(now; "YYYYMMDD")}}. 주말/공휴일에는 데이터가 없으므로, 응답이 빈 배열이면 직전 영업일 데이터를 사용하는 fallback 로직을 추가하세요.

---

Step 2: 응답 데이터 파싱

API 응답은 JSON 배열입니다.

[
  {
    "result": 1,
    "cur_unit": "USD",
    "ttb": "1,430.52",
    "tts": "1,459.47",
    "deal_bas_r": "1,445.00",
    "bkpr": "1,445",
    "cur_nm": "미 달러"
  },
  {
    "cur_unit": "EUR",
    "deal_bas_r": "1,574.32",
    "cur_nm": "유로"
  },
  {
    "cur_unit": "JPY(100)",
    "deal_bas_r": "968.45",
    "cur_nm": "일본 엔"
  }
]

주요 필드 설명:

| 필드 | 설명 | |------|------| | cur_unit | 통화코드 (USD, EUR, JPY(100) 등) | | deal_bas_r | 매매기준율 | | ttb | 전신환(송금) 받을 때 | | tts | 전신환(송금) 보낼 때 | | cur_nm | 통화명 |

Iterator 모듈로 배열을 순회하며 관심 통화만 필터링합니다:

{{if(contains(["USD", "EUR", "JPY(100)"]; item.cur_unit); "keep"; "skip")}}

---

Step 3: 전일 대비 변동 계산

전일 환율과 비교하여 변동폭과 변동률을 계산합니다.

방법 A: Google Sheets 히스토리 활용 1. 전일 환율을 Google Sheets에서 조회 2. 당일 환율과 비교 계산

방법 B: 전일 API 재호출 1. searchdate를 전일 날짜로 설정하여 한 번 더 호출 2. 메모리 내에서 비교

변동폭 = 당일 매매기준율 - 전일 매매기준율
변동률(%) = (변동폭 / 전일 매매기준율) x 100

Make 수식:

변동폭: {{parseNumber(replace(today.deal_bas_r; ","; "")) - parseNumber(replace(yesterday.deal_bas_r; ","; ""))}}
변동률: {{round((diff / parseNumber(replace(yesterday.deal_bas_r; ","; ""))) * 100; 2)}}

변동 방향 지시자:

| 조건 | 표시 | |------|------| | 상승 (변동폭 > 0) | ▲ (빨강) | | 하락 (변동폭 < 0) | ▼ (파랑) | | 보합 (변동폭 = 0) | - (회색) |

---

Step 4: Slack 포맷팅 메시지 구성

Slack Incoming Webhook으로 보기 좋은 메시지를 발송합니다.

POST {{SLACK_WEBHOOK_URL}}
Content-Type: application/json

Payload:

{
  "blocks": [
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": "일일 환율 리포트 (2026-04-16)"
      }
    },
    {
      "type": "section",
      "fields": [
        {
          "type": "mrkdwn",
          "text": "USD (미 달러)\n매매기준: 1,445.00\n전일대비: +5.20 ▲ (+0.36%)"
        },
        {
          "type": "mrkdwn",
          "text": "EUR (유로)\n매매기준: 1,574.32\n전일대비: -3.15 ▼ (-0.20%)"
        }
      ]
    },
    {
      "type": "section",
      "fields": [
        {
          "type": "mrkdwn",
          "text": "JPY (100엔)\n매매기준: 968.45\n전일대비: +1.80 ▲ (+0.19%)"
        },
        {
          "type": "mrkdwn",
          "text": "요약\n최대변동: USD (+0.36%)\n원달러 추세: 3일 연속 상승"
        }
      ]
    },
    {
      "type": "context",
      "elements": [
        {
          "type": "mrkdwn",
          "text": "기준일: 2026-04-16 | 출처: 한국수출입은행"
        }
      ]
    }
  ]
}

Tip: Slack Block Kit Builder(https://app.slack.com/block-kit-builder)에서 메시지 레이아웃을 미리 테스트해 볼 수 있습니다.

---

Step 5: Google Sheets 히스토리 저장 (선택)

일별 환율을 Google Sheets에 누적 저장하면 장기 추세 분석이 가능합니다.

| 날짜 | USD | EUR | JPY(100) | USD변동 | EUR변동 | JPY변동 | |------|-----|-----|----------|---------|---------|---------| | 2026-04-15 | 1,439.80 | 1,577.47 | 966.65 | -2.10 | +1.23 | -0.55 | | 2026-04-16 | 1,445.00 | 1,574.32 | 968.45 | +5.20 | -3.15 | +1.80 |

---

Step 6: Make 스케줄 설정

| 설정 항목 | 값 | |----------|-----| | 실행 주기 | 매일 (월-금) | | 실행 시각 | 오전 11:00 KST | | 타임존 | Asia/Seoul |

Tip: 수출입은행 환율 데이터는 보통 오전 11시 이후에 업데이트됩니다. 오전 9시에 호출하면 전일 데이터가 반환될 수 있으니, 11시 이후로 설정하는 것을 권장합니다.

---

예상 결과

  • 매일 오전 Slack 채널에 주요 3개 통화 환율 리포트 수신
  • 전일 대비 변동폭과 방향 지시자로 즉각적 트렌드 파악
  • Block Kit 포맷으로 가독성 높은 메시지 확인
  • Google Sheets 히스토리로 장기 추세 분석 가능
---

트러블슈팅

| 증상 | 원인 | 해결 방법 | |------|------|-----------| | 빈 배열 응답 [] | 주말/공휴일 데이터 없음 | 응답 길이 체크 후 직전 영업일로 재조회하는 fallback 로직 추가 | | result: 4 반환 | 인증키 오류 | 수출입은행에서 인증키 재발급 또는 활성화 확인 | | 쉼표 포함 숫자 오류 | deal_bas_r에 쉼표 포함 | replace(value; ","; "")parseNumber() 적용 | | Slack 발송 실패 (404) | Webhook URL 비활성화 | Slack 앱 설정에서 Webhook URL 재생성 | | 변동률 계산 NaN | 전일 데이터 미존재 | 전일 데이터 null 체크 후 조건부 분기 처리 |

📥

Make 블루프린트 다운로드

JSON 파일을 Make.com에 임포트하면 시나리오가 자동 생성됩니다

댓글 · 질문 (0)