일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Writing
- 미드시청
- 뭐든
- 월간
- FIT XR
- 영어공부
- 읽기
- 스탭퍼
- 파비최
- English
- 30분
- 10분
- 만화도
- 프로젝트
- 운동
- 사이드
- 개발자
- 쓰릴오브파이트
- 링피트
- 잡생각
- 화상영어
- Problem Solving
- 3줄정리
- 영어원서읽기
- Daily Challenge
- 리얼 클래스
- 괜찮음
- 매일
- leetcode
- realclass
- Today
- Total
파비의 매일매일 공부기록
#1-9 카카오톡 날씨 챗봇 - Heroku API 서버 구축 2 본문
지난 포스팅까지 진행된 사항
- Heroku에 API Server 구성
이번 포스팅에서 할 사항
- MariaDB 붙여서 Data.go.kr에서 데이터 받아와서 저장
일단 Heroku에서 MariaDB를 구동하는 게 우선이다.
MariaDB 사용을 위해서는 Add-on을 통해서 해야 되는데
아 근데 결제를 카드 등록을 안 하면 Add-on을 사용할 수 없어서
Account Setting > Billing에 아래와 같이 등록해야 한다.
설정 후에는 아래와 같이 JawsDB Maria를 눌러서
현재 구성한 Web App에 붙이면 된다.
Web App에 붙인 후에 아래의 링크를 들어가면
dashboard.jawsdb.com/maria/dashboard
Host, Username, Password, Port 등의 정보를 볼 수 있고
HeidiSQL 등의 SQL Tool로 접속할 수 있다.
그럼 이제 Data.go.kr에서 받아온 중기 예보 내용을
MariaDB에 넣어야 되는데
그러려면 Table을 하나 만들어야 된다.
생성될 Table 정보
Table 이름 : midterm_forecast
Columns :
- id ; 식별 id (PK)
- weather_desc ; 중기 예보 내용
- update_date ; 업데이트된 날짜 (PK)
CREATE TABLE `midterm_forecast` (
`id` INT NOT NULL AUTO_INCREMENT,
`weather_desc` VARCHAR(50) NULL DEFAULT NULL,
`update_date` DATE NOT NULL DEFAULT NOW(),
PRIMARY KEY (`id`, `update_date`)
)
COMMENT='midterm_forecast'
COLLATE='utf8mb4_unicode_ci'
;
지난 소스에서 추가된 소스는 아래와 같다.
request({
url: url + queryParams,
method: 'GET'
}, function (error, response, body) {
var $ = cheerio.load(body);
const wfSv = $("wfSv").text();
res.send(wfSv);
const pool = mariadb.createPool({
host: process.env.MARIA_HOST,
user: process.env.MARIA_USER,
password: process.env.MARIA_PASSWORD,
database: process.env.MARIA_DATABASE
});
pool.getConnection()
.then(conn => {
conn.query(
'INSERT INTO `midterm_forecast` (weather_desc, update_date) VALUES(?, ?)',
[wfSv, update_date]
).then(() => {
conn.end();
}).catch(err => {
console.log(err);
conn.end();
});
});
});
XML 형태의 Response 데이터를
Cheerio라는 Library를 이용해서 중기 정보 TEXT만 가지고 있는 wfSV tag만 뽑아낸 뒤,
maridadb Library를 이용해서 Database에 저장하는 내용이다.
매우 간단쓰하게 보이는 내용인데
생각보다 막상 구현하려면 중간중간 막히는 게 있었다.
weather로 redirect를 하면
당일 날짜의 06시 기준의 중기정보를 가져와서
Database에 저장하도록 하는 기능은 완료되었다.
다음 포스팅에서는
Database에 저장된 중기예보를
REST API가 요청될 때
보내주는 부분의 기능을 작성할 예정이다.
'Side Project (완료) > 카카오 채널 챗봇 (2020)' 카테고리의 다른 글
지난 프로젝트 소생기 #1 (0) | 2021.02.09 |
---|---|
#1-10 카카오톡 날씨 챗봇 - Heroku API 서버 구축 3 [suspended] (0) | 2021.01.12 |
#1-8 카카오톡 날씨 챗봇 - Heroku API 서버 구축 (0) | 2020.12.25 |
#1-7 카카오톡 날씨 챗봇 - Data.go.kr에서 데이터 받아오기 (2) | 2020.12.22 |
#1-6 카카오톡 날씨 챗봇 - Rest API Server 개발 (2) | 2020.12.17 |