Bluemix 및 여러 API를 활용한 비행기 위치 추적하기 1편

728x90



이 글은 IBM의 어플리케이션 아키텍트인 Hemant Kanago가 작성한 글을 번역하고 따라가며 비행기 현황을 추적하는 WebApp을 만들어보는 이야기입니다. 원문을 보시려면 '바로가기'를 눌러서 확인 부탁드립니다.


이 앱의 작성에는 Bluemix API 계정과, 비행기 정보를 파악하게 해주는 Flight Stats Flex API 정보, 그리고 Google Maps Javascript API 정보가 필요합니다. 이중 구글 빼고는 전부 유료이거나 Trial이 걸려 있습니다.



그래서 최종적으로는 아래와 같은 계정이나 정보 등이 필요합니다.1. IBM 계정에 연결된 DevOps 서비스2. Bluemix 계정3. 구글 지도 API4. FlightStats account5. JQuery Javascript library
STEP 1. 어플리케이션 포크하기 1. 상단 'Bluemix에서 코드 얻기'를 클릭하여 들어간 창에서 우측 상단쯤에 보이는 fork the project 버튼을 누릅니다. fork는 무엇을 찝어온다 라는 뜻입니다.2. 설정창이 뜨면 본인의 취향에 맞게 이름을 재지정해주고, Create를 눌러주면 동일한 프로젝트가 생성이 됩니다.3. Eclipse를 Git Repository에 연결하고 Source Code를 Local drive에 다운 받습니다.

STEP 1-1. FORK PROJECT를 클릭하자

STEP 1-2.적절한 네이밍 센스를 발휘해서 프로젝트를 생성한다.
STEP 2. DevOps 서비스를 Eclipse와 연결하기 1. 일단 Fork된 프로젝트 화면에서 Git URL을 클릭해서 Git 주소를 복사합니다.2. Eclipse를 실행해서 Import를 클릭하고 Git>Projects from Git를 띄워 주소를 집어넣습니다.3. Process에 따라서 필요 정보를 입력한 후 Next를 기입하여 진행합니다.

STEP 2-1. Git URL을 눌러서 Git 주소를 복사한다.

STEP 2-2. Eclipse를 실행하여, Files >> Import를 누른다.

STEP 2-3. Git 폴더 내의 Projects from Git을 누르고 Next를 누른다

STEP 2-4. Clone URI를 누르고 Next를 누른다.

STEP 2-5. 앞서 복사한 Git URL을 붙여넣기 하고, Bluemix ID 및 PW를 입력하고 Next한다.

STEP 2-6. Branch를 선택후 Next

STEP 2-7. 저장 장소를 지정해주고 Next를 누른다

STEP 2-8. 최종 Finish를 누르면 Import가 진행된다.

STEP 2-9. Eclipse에 파일이 로딩된다.


STEP 3. Cloud Foundry(cf) CLI를 사용하여 Push하기1. 아래 다운로드를 통해 Cloud Foundry Command-line Tool를 다운로드 및 설치합니다.


2. CMD를 실행하고 아래와 같이 입력하여 cf Version이 떴는지 확인하기

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\IBM_ADMIN>cf -v
cf version 6.23.0+c7866be-2016-12-22

C:\Users\IBM_ADMIN>


3. Bluemix 서버에 접속 후 로그인하기.해당 명령어를 입력해서 Bluemix에 접속하고, Bluemix ID와 PW를 입력합니다. PW는 보안상 프롬프트 창에서 보여지지 않습니다. 그러니까 화면에 타이핑이 안되어도 그냥 입력하고 엔터를 치면 넘어가 집니다.

C:\Users\IBM_ADMIN>cf api https://api.ng.bluemix.net
Setting api endpoint to https://api.ng.bluemix.net...
OK

API endpoint:   https://api.ng.bluemix.net
API version:    2.54.0

C:\Users\IBM_ADMIN>cf login
API endpoint: https://api.ng.bluemix.net

Email> esprit@espriter.net

Password>
Authenticating...
OK


4. cf를 사용하여 bluemix에 업로드 하기

이클립스에서 프로젝트를 War 파일로 만든뒤 CF 창에서 아래와 같이 입력하고 엔터를 누르게 된다면 별 문제가 없다면 업로드가 진행되고 자동으로 서비스 시작까지 진행되게 됩니다. 저기서 블루믹스에서 쓸 이름이 '이름.mybluemix.net'의 주소가 됩니다.

cf  push  <블루믹스에서 쓸 이름>  -p  c:\<경로>\<파일명>.war


4-1. Eclipse에서 War 파일 export가 안될 경우

이클립스를 첫 설치하고 이거 왜 안되지 하시는 분들을 위해서 써놓습니다. 저부터 그랬기 때문에 ㅜ_ㅜ. 프로젝트를 우클릭해서

Properties를 클릭한 후 Project Facets에서 Dynamic Web Module이 체크되어 있는지 확인합니다. 만약 되어 있지 않으면 체크하고, 체크가 안된다면 JRE를 설치 한 뒤 Java와 JavaScript를 체크하면 됩니다. 그 뒤로 export하면 됩니다. 2편에서 다시 한번 설명하겠습니다.

 

 

5. 상태 확인

CF창에서 업로드 후 상태 현황을 확인할 수 있습니다

Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\IBM_ADMIN>cf login API endpoint: https://api.ng.bluemix.net Email> esprit@espriter.net Password> Authenticating... OK API endpoint: https://api.ng.bluemix.net (API version: 2.54.0) User: esprit@espriter.net Org: Dankook University Space: dev student C:\Users\IBM_ADMIN>cf push denver5 -p c:\flight\denver5.war Updating app denver5 in org Dankook University / space dev student as esprit@esp riter.net... OK Uploading denver5... Uploading app files from: C:\Users\IBM_AD~1\AppData\Local\Temp\unzipped-app80034 2099 Uploading 102.7K, 18 files Done uploading OK Stopping app denver5 in org Dankook University / space dev student as esprit@esp riter.net... OK Starting app denver5 in org Dankook University / space dev student as esprit@esp riter.net... Downloading swift_buildpack_v2_0_2-20161118-1326... Downloading nodejs_buildpack... Downloading noop-buildpack... Downloading java_buildpack... Downloaded swift_buildpack_v2_0_2-20161118-1326 Downloading ruby_buildpack... Downloaded nodejs_buildpack Downloading python_buildpack... Downloaded php_buildpack Downloading go_buildpack... Downloaded noop-buildpack Downloaded java_buildpack Downloading sdk-for-nodejs_v3_8-20161006-1211... Downloaded python_buildpack Downloading staticfile_buildpack... Downloaded ruby_buildpack Downloading binary_buildpack... Downloaded xpages_buildpack Downloading liberty-for-java_v3_4_1-20161030-2241... Downloaded go_buildpack Downloading sdk-for-nodejs... Downloaded sdk-for-nodejs_v3_8-20161006-1211 Downloading liberty-for-java... Downloaded staticfile_buildpack Downloading dotnet-core... Downloaded liberty-for-java_v3_4_1-20161030-2241 Downloaded sdk-for-nodejs Downloading liberty-for-java_v3_5-20161114-1152... Downloading dotnet-core_v1_0_1-20161005-1225... Downloaded binary_buildpack Downloading xpages_buildpack_v1_2_1-20160913-103... Downloading swift_buildpack... Downloaded dotnet-core Downloaded liberty-for-java_v3_5-20161114-1152 Downloaded dotnet-core_v1_0_1-20161005-1225 Downloaded xpages_buildpack_v1_2_1-20160913-103 Downloaded swift_buildpack Creating container Successfully created container Downloading app package... Downloaded app package (302.6K) Downloading build artifacts cache... Staging... -----> Liberty Buildpack Version: v3.6-20161209-1351 -----> Retrieving IBM 1.8.0_20161117 JRE (ibm-java-jre-8.0-3.21-pxa6480sr3fp21-2 0161117_02-cloud.tgz) ... (0.0s) Expanding JRE to .java ... (0.9s) -----> Retrieving App Management 1.22.0_20161113-2134 (app-mgmt_v1.22-20161113-2 134.zip) ... (0.0s) Expanding App Management to .app-management (0.1s) -----> Retrieving com.ibm.ws.liberty-16.0.0.4-201612091351.tar.gz ... (0.0s) Installing archive ... (0.8s) -----> Warning: Liberty feature set is not specified. Using the default feature set: ["beanValidation-1.1", "cdi-1.2", "ejbLite-3.2", "el-3.0", "jaxrs-2.0", "jd bc-4.1", "jndi-1.0", "jpa-2.1", "jsf-2.2", "jsonp-1.0", "jsp-2.3", "managedBeans -1.0", "servlet-3.1", "websocket-1.1"]. For the best results, explicitly set the features via the JBP_CONFIG_LIBERTY environment variable or deploy the applicat ion as a server directory or packaged server with a custom server.xml file. -----> Liberty buildpack is done creating the droplet Exit status 0 Staging complete Uploading droplet, build artifacts cache... Uploading build artifacts cache... Uploading droplet... Uploaded build artifacts cache (108B) Uploaded droplet (131.3M) Uploading complete Destroying container Successfully destroyed container 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 0 of 1 instances running, 1 starting 1 of 1 instances running App started OK App denver5 was started using this command `.liberty/initial_startup.rb` Showing health and status for app denver5 in org Dankook University / space dev student as esprit@espriter.net... OK requested state: started instances: 1/1 usage: 1G x 1 instances urls: denver5.mybluemix.net last uploaded: Mon Jan 9 02:03:18 UTC 2017 stack: cflinuxfs2 buildpack: Liberty for Java(TM) (WAR, liberty-16.0.0_4, buildpack-v3.6-20161209- 1351, ibmjdk-1.8.0_20161117, env) state since cpu memory disk det ails #0 running 2017-01-09 11:04:39 AM 207.2% 194.8M of 1G 188M of 1G C:\Users\IBM_ADMIN>

 이제 서비스를 올릴 준비는 끝났습니다. 다음편에는 구체적인 코드 편집에 대해서 알아보도록 하겠습니다. 비행기 정보 API와 구글맵의 API의 KEY를 얻는 방법에 대해 알아보겠습니다.

Bluemix 및 여러 API를 활용한 비행기 위치 추적하기 ]

1편 바로가기

2편 바로가기

3편 바로가기

728x90