get weatherinfo

22
GetWeatherInfo Advanced technology of system 국민대학교 컴퓨터공학부 20123381 신혜수 무작정 따라하

Upload: hyesushin

Post on 18-Jul-2015

161 views

Category:

Software


2 download

TRANSCRIPT

GetWeatherInfo

Advanced technology of system

국민대학교 컴퓨터공학부20123381 신혜수

무작정 따라하기

Outline

본 프로젝트는 node.js와 MySQL을 연동하는 프로젝트이다. 본

프로젝트의 요구사항은 다음과 같다.

1. node.js를 이용하여 기상청으로부터 날씨 정보 얻기

2. 얻어낸 날씨 정보(XML)를 JSON 형식으로 저장하기

3. JSON 형식의 정보를 MySQL 데이타베이스에 손쉽게 저장하

Index

1. 기상청 사이트로부터 날씨 정보 얻기

2. 날씨 정보를 데이타베이스에 저장하기

3. 소스 코드(getWeatherInfo.js)

4. 소스 코드(insertWeatherInfo.js)

5. 프로젝트 실행 코드(project.sh)

1. 기상청사이트로부터날씨정보얻기

기상청에정보요청 Query

기상청 사이트에 http 프로토콜을 통해 request를 통해 쿼리하면 된다.

Node의 http 모듈을 얻고, 쿼리의 옵션을 설정한다. 날씨 정보를 요청하고자 하는 지역에 따라 zone에 대한 값(정수)이 달라질 수 있다. 옵션 설정 후, http 모듈을 통해 request를 한다. Request에 대한 response가 전달되면 callback 함수가 호출된다. 따라서 http.request~ 문장 이전에 callback 함수가 정의 되어 있어야 한다. (소스 전체는 “4. 소스코드(getWeatherInfo.js)”를 참고)

기상청에정보요청 Query

파라미터 response에는 http request에 대한 응답 내용이 들어있으며, response의 data부분으로부터 날씨 정보를 XML 형식으로 추출할 수 있다. JSON.stringify(str)을 통해 날씨 정보에 대한 XML을 json으로 손쉽게바꿀 수 있다. 하지만 본 프로젝트에서 쓸 필드는 몇 개 없으므로, 직접 json 형식의 string을 만들었다.

2. 날씨정보를데이타베이스에저장하기

데이타베이스 스키마 정의

본 슬라이드는 node.js가 설치되어 있는 컴퓨터에 MySQL 또한 설치 되어 있다고 가정한다. 또한 설치 후 날씨 정보를 저장하기 위한 스키마 또한 정의 되어있음을 가정한다. 현재 프로젝트에서 사용한 스키마는 다음과 같다.

연동할 데이타베이스 정보 설정

MySQL의 모듈을 얻어내어 연결을 한다. 연결할 때 정보를 설정할 수 있는데user는 데이타베이스에 접근할 수 있는 사용자의 계정이고, password는 해당user의 비밀번호이다. Database는 접근할 데이타베이스 이름을 의미한다.정보를 설정한 후 연결을 시도한다. 연결 에러(ex: 데이타베이스 서버가 켜지지않은 상황)가 발생하면 connect 함수의 파라미터 함수가 호출된다.

데이타베이스에 저장할 값(JSON) 획득

파일 시스템 모듈을 획득하고, JSON 형식으로 작성한 정보를 써둔 파일로부터정보를 읽어 JSON 객체를 만든다. JSON 객체는 JSON.parse(string)을 호출함으로써 간단하게 만들 수 있다.

JSON객체를 데이타베이스에 저장하기

연결된 데이타베이스에 JSON 객체를 저장하기 위해 INSERT 쿼리를 한다. 쿼리에 ‘?’문자를 포함하여 쿼리에 대한 파라미터를 설정할 수 있으며, 파라미터는바로 다음에 ‘,’로 구분하여 써준다. JSON 객체를 그대로 써주면 된다.에러가 없는 경우 SELECT 쿼리를 통해 현재 값이 잘 저장되어 있나 확인한다.

3. 소스코드(getWeatherInfo.js)

getWeatherInfo.js(1)

getWeatherInfo.js(2)

getWeatherInfo.js(3)

getWeatherInfo.js(4)

4. 소스코드(insertWeatherInfo.js)

insertWeatherInfo.js(1)

insertWeatherInfo.js(2)

4. 프로그램실행코드(project.sh)

project.sh

아래 내용을 shell에 직접 입력해도 되지만, 한 번에 실행하기 좋게 shell script파일을 만들어서 실행하는 방법도 있다.

$vi project.sh # 아래 내용을 파일에 작성$chmod 755 project.sh$./project.sh # 이 라인을 실행하면 순서대로 파일 내용의 명령어를 실행함

감사합니다