라벨이 [nodejs]인 게시물 표시

[AWS] Elastic Beanstalk 데이터베이스 연동 for Node js

이미지
안녕하세요. 남산돈가스 입니다.

지난 번에 이어서 Elastic Beanstalk에 대한 포스팅을 조금 더 이어가보려고 합니다.

저번 포스팅에서는 eb cli를 이용하여 로컬 작업환경에서 유연하게 eb를 컨트롤하는 법을 알아 보았습니다.

이번 포스팅에서는 Elastic Beanstalk 환경에서 데이터베이스(RDS)를 생성하고, 직접 연동하는 법을 소개 해드리려고 합니다.


연동 예제는 Node js기반으로 설명하고, Node js 에서의 DB 접속은 sequelize 라는 npm 모듈을 이용하여 설명드리겠습니다.

먼저, 지난 포스팅에서 이용했던 eb create 라는 명령어를 이용해 새로운 환경을 만들겠습니다.


eb create 명령어를 이용하여 "eb-express-staging"이라는 환경을 새로 생성하였습니다.
콘솔로 이동해보니, 환경이 정상적으로 생성 된 것을 아래와 같이 확인하실 수 있습니다.
새로 생성한 환경을 선택하고 왼쪽 탭에 구성으로 가보면, "eb-express-staging" 환경의 구성정보를 확인하실 수 있습니다. 
그 중에서 하단에 데이터베이스 항목을 보시면 설정 없이 비어있는 것을 확인하실 수 있습니다. 데이터베이스를 생성하고 연동하기 위하여 데이터베이스 영역 밑 '수정'을 클릭합니다.


데이터베이스 수정페이지에선, 현재 생성되거나, 설정되어있는 DB가 없는 경우 새로 생성할 수 있습니다. DB 엔진, 버전, 인스턴스 종류, 용량, username, password 등 기본적인 정보를 입력한 뒤 적용을 선택합니다.
적용을 누르고, 대략 10~15분이 지나면 새로운 DB가 생성 된 것을 확인하실 수 있습니다.

 이렇게 생성 된 DB는 실제 RDS 콘솔에서도 확인하실 수 있습니다. Elastic Beanstalk 콘솔에서 기본적으로 생성한 정보들 이외에도 상세 설정 정보들은 RDS 콘솔에서 변경이 가능합니다.

이제 실제 EB 환경에서 설치 된 DB 접속을 해보겠습니다.
예제로 생성한 eb…

nodejs에서 XML to JSON 파싱하기

안녕하세요. 남산돈가스입니다.

오늘은 node js 에서 xml 데이터 파싱하여 json형태로 변환시켜주는 모듈을 소개해보려고 합니다.

node js를 이용하여 API 서버를 구성한다고 하면 기본적으로 핸들링하는 데이터 형태는 거의 대부분 JSON을 사용하고 있습니다.

하지만, 예를 들어 국내 공공데이터포털에서 OPEN API를 제공받으려고 하면 제공하는 데이터타입이 아직 XML 형식이 남아있는 것을 가끔 보실 수 있을 것입니다. 최근 들어, type으로 구분지어, xml 형식, json 형식을 제공하는 API도 생겼지만, 아직도 xml형식만 지원하는 API들이 남아있습니다.

이런 데이터들을 제공받아 가공하기 위해 xml to json 모듈이 필요하기 마련입니다.

제가 오늘 소개해드리는 모듈은 xml 데이터를 손 쉽게 json 으로 파싱할 수 있는 'xml-js' 모듈입니다.

예제로, 실제 공공데이터포털에서 제공하는 유실동물 검색 OPEN API 서비스를 이용하여 xml데이터를 요청한 뒤, 결과값으로 받은 xml데이터를 json으로 변환해보겠습니다.

가장 먼저 예제를 진행하기 위해서 필요한 모듈인 xml-js와 API를 request하기 위한 request 모듈 두가지를 설치해보겠습니다.

npm install xml-js request
xml-js과 request 모듈을 다운받았으면, 예제 소스를 확인해보면서 설명드리겠습니다.

예제 소스는 다음과 같습니다.

const convert = require('xml-js'); const request = require('request'); const HOST ='http://openapi.animal.go.kr/openapi/service/rest'const SERVICE_KEY ='mySecretKey'var requestUrl = `${HOST}/abandonmentPublicSrvc/sigungu?upr_cd=6500000&Ser…