자동화 흐름
주말 여행지 자동 추천 시스템
매주 금요일 저녁, 한국관광공사 TourAPI와 기상청 날씨 API를 결합하여 주말에 방문하기 좋은 여행지 Top 5를 자동으로 선정하고 이메일로 추천 리스트를 발송하는 레시피입니다.
---
사전 준비
| 항목 | 설명 | |------|------| | TourAPI 인증키 | 한국관광공사 TourAPI에서 활용 신청 | | 기상청 단기예보 API | 공공데이터포털에서 "기상청 단기예보" 신청 | | Make 계정 | 시나리오 구성 및 스케줄링 | | 이메일 서비스 | Gmail 또는 SMTP 연동 완료 |
---
Step 1: TourAPI 지역 기반 관광지 검색
HTTP 모듈로 관광지 목록을 조회합니다.
GET http://apis.data.go.kr/B551011/KorService1/areaBasedList1
주요 파라미터:
| 파라미터 | 값 | 설명 |
|----------|----|------|
| serviceKey | {{API_KEY}} | TourAPI 인증키 |
| numOfRows | 50 | 결과 개수 |
| pageNo | 1 | 페이지 번호 |
| MobileOS | ETC | OS 구분 |
| MobileApp | MyApp | 앱 이름 |
| _type | json | 응답 형식 |
| contentTypeId | 12 | 관광지 타입 (12=관광지) |
| areaCode | 1 | 지역코드 (1=서울, 6=부산 등) |
| arrange | P | 인기순 정렬 |
주요 지역코드 참조:
| 코드 | 지역 | 코드 | 지역 | |------|------|------|------| | 1 | 서울 | 2 | 인천 | | 3 | 대전 | 4 | 대구 | | 5 | 광주 | 6 | 부산 | | 31 | 경기 | 32 | 강원 | | 33 | 충북 | 34 | 충남 | | 35 | 경북 | 36 | 경남 | | 37 | 전북 | 38 | 전남 | | 39 | 제주 | | |
Tip: 여러 지역을 조회하려면 Router 모듈로 분기하거나 Iterator로 지역코드 배열을 순회합니다. [6, 32, 39] 처럼 인기 여행 지역만 선별하면 효율적입니다.
---
Step 2: 기상청 날씨 API로 주말 날씨 확인
GET http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst
| 파라미터 | 값 | 설명 |
|----------|----|------|
| serviceKey | {{WEATHER_API_KEY}} | 기상청 API 인증키 |
| numOfRows | 1000 | 충분한 예보 데이터 |
| base_date | 20260410 | 발표일자 (금요일) |
| base_time | 1700 | 발표시각 |
| nx | 60 | 예보지점 X좌표 |
| ny | 127 | 예보지점 Y좌표 |
기상 카테고리별 필터링:
| 카테고리 | 코드 | 기준 |
|----------|------|------|
| 강수확률 | POP | 40% 미만이면 적합 |
| 하늘상태 | SKY | 1(맑음), 3(구름많음) 허용 |
| 기온 | TMP | 10-28도C 범위 선호 |
---
Step 3: 여행지 스코어링 알고리즘
날씨 + 인기도를 결합하여 종합 점수를 산출합니다.
종합점수 = (날씨점수 x 0.4) + (인기점수 x 0.3) + (접근성점수 x 0.3)
날씨 점수 기준:
- 맑음 + 강수확률 10% 미만: 100점
- 구름많음 + 강수확률 20% 미만: 70점
- 흐림 + 강수확률 40% 미만: 40점
- 비/눈 예보: 0점
{{if(pop < 10 and sky == 1; 100; if(pop < 20 and sky == 3; 70; if(pop < 40; 40; 0)))}}
---
Step 4: Top 5 선정 및 정렬
Array Aggregator로 모든 여행지를 수집한 후, 종합점수 내림차순으로 정렬하여 상위 5곳을 선정합니다.
{{slice(sort(destinations; "desc"; "totalScore"); 0; 5)}}
Tip: 최근 4주 내 추천된 여행지는 제외하면 매번 새로운 추천을 받을 수 있습니다. Google Sheets에 추천 이력을 기록해두고 필터 조건에 활용하세요.
---
Step 5: 이메일 추천 리포트 발송
발송 스케줄: 매주 금요일 오후 6시 (KST)
이메일 제목: [주말 여행 추천] 이번 주말 가볼 만한 곳 Top 5
<h2>이번 주말 추천 여행지 Top 5</h2>
<p>날씨와 인기도를 분석하여 선정했습니다.</p>{{#each top5}}
<div style="border:1px solid #ddd; padding:16px; margin:8px 0; border-radius:8px;">
<h3>{{rank}}. {{title}} ({{areaName}})</h3>
<p>토요일: {{satWeather}} / 일요일: {{sunWeather}}</p>
<p>{{addr1}}</p>
<p>종합점수: {{totalScore}}점</p>
<img src="{{firstimage}}" width="300" alt="{{title}}">
</div>
{{/each}}
---
Step 6: Make 스케줄 설정
| 설정 항목 | 값 | |----------|-----| | 실행 주기 | 매주 금요일 | | 실행 시각 | 오후 06:00 KST | | 타임존 | Asia/Seoul |
---
예상 결과
- 매주 금요일 저녁 주말 여행 추천 이메일 수신
- 날씨가 좋은 지역 우선 추천으로 실용적인 결과
- 이미지 포함 시각적 리포트
- 매주 다른 여행지 추천으로 반복 방지
트러블슈팅
| 증상 | 원인 | 해결 방법 |
|------|------|-----------|
| TourAPI 응답 비어있음 | 인증키 미승인 또는 트래픽 초과 | 공공데이터포털에서 승인 상태 확인, 일일 트래픽 한도 점검 |
| 날씨 좌표 불일치 | 관광지 좌표와 기상 격자 불일치 | 위경도 -> 격자 변환 로직 추가 필요 (기상청 좌표 변환 문서 참조) |
| 이미지 깨짐 | TourAPI firstimage 필드 null | 기본 이미지 URL을 fallback으로 설정 |
| 추천 결과 편향 | 특정 지역만 반복 추천 | 최근 추천 이력 제외 필터 및 지역 다양성 가중치 추가 |
| JSON 파싱 에러 | _type=json 누락 | 반드시 파라미터에 _type=json 포함 확인 |
Make 블루프린트 다운로드
JSON 파일을 Make.com에 임포트하면 시나리오가 자동 생성됩니다
댓글 · 질문 (0)
로그인 후 댓글을 작성할 수 있습니다.