아이티랩 - ‘초미세먼지 알림’ 어떻게 쉽게 만들까?

J-Jobs 소개 두 번째 시간입니다. 지난 시간에는 ‘Job Scheduling’과 ‘Workload Automation’의 개념에 대해 알아보고, J-Jobs의 기본 기능들을 간단히 소개해 드렸는데요. 이번 시간에는 다양한 템플릿을 소개하고 여러 템플릿을 조합하여 Job을 만들어보겠습니다.




 다양한 템플릿 플러그인

Job은 하나 이상의 Step으로 구성되고, Step은 최소한의 작업 단위를 의미합니다. 템플릿은 Step의 종류를 의미하며, Step과 템플릿의 관계는 마치 객체 지향 언어인 Java에서 객체와 클래스의 관계와 유사하다고 볼 수 있습니다. 즉, 템플릿은 반제품 상태로 미리 만들어 둔 Step이라고 볼 수 있는 것이죠.  

반제품 상태인 템플릿에 필요한 항목 몇 가지만 입력하면, 하나의 Step이 완성됩니다. 따라서 템플릿의 종류가 다양하고 많을수록 사용자가 직접 정의하고 입력해야 하는 과정들이 줄어드는 것은 물론, 같은 내용을 여러 번 수정하는 번거로움까지 줄여줄 수 있습니다. 

l 다양한 템플릿 플러그인


J-Jobs는 템플릿을 플러그인 형태로 사용할 수 있으며, 여러 가지 템플릿을 기본으로 제공하고 있는데요. 현재 제공하는 템플릿은 위의 표와 같으며, 앞으로도 더욱 다양한 템플릿들이 업데이트될 예정이니 기대해 주시기 바랍니다. 이번 시간에는 템플릿 중 Command•Shell, REST API, Email 세 가지 템플릿을 조합하여 초미세먼지를 예보하는 Job을 만들어 보겠습니다. 



 초미세먼지를 예보하는 Dust_Job 만들어보기

초미세먼지를 예보하는 Dust_Job은 Open API를 이용하여 초미세먼지에 대한 데이터를 외부에서 획득하고 간단히 가공하여 이메일로 전송하는 Job으로 크게 3단계로 구성됩니다.


1) REST API 템플릿으로 데이터 저장하기

REST는 'Representational State Transfer’라는 용어의 약자로서, 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식으로 현재 네트워킹 문화에 널리 퍼져있습니다. 

REST API 템플릿은 메서드(GET•POST•PUTDELETE), URL, 결과 처리(로그•파일) 3개의 필수 입력값을 가지며 REST API의 간단한 사용법만 알면 쉽게 사용할 수 있습니다. 또한 정부 기관이나 포털 기업들이 제공하는 다양한 Open API 들이 대부분 REST API를 바탕으로 만들어져, 템플릿에 활용할 수 있습니다. Dust_Job에서는 “서울시 초미세먼지 예•경보 현황” API의 샘플 데이터를 이용하여 초미세먼지 예보 데이터(샘플)를 획득하고 파일로 저장합니다. 


위의 예시대로 Step을 생성하여 정상 동작하면 초미세먼지 데이터가 지정한 위치에 ‘dust_api_result.xml’로 생성되며 이 XML 파일을 가공하는 것을 다음 Step이 담당하게 됩니다.




2) Command•Shell 템플릿으로 스크립트 호출하기

Command•Shell 템플릿은 Windows의 CMD, 리눅스의 Shell 등으로 실행시키며, 실행시킬 커맨드가 위치한 경로, 실행시킬 커맨드, 필요한 Argument 등 세 가지의 필수 입력값을 가집니다. Dust_Job에서는 1번 Step의 결과인 ‘dust_api_result.xml’ 파일 데이터 중 관심이 있는 부분만 추출하는 스크립트로 Windows의 배치파일 ‘dust_parser.bat’를 호출합니다. 

아래는 ‘dust_parser.bat’ 파일의 내용 중 일부이며 ‘dust_api_result.xml’ 파일에서 태그의 값을 파싱하여 값에 따라 이메일로 보내줄 메시지를 다시 ‘dust_command_result.txt’ 파일에 저장합니다.


3) 조건에 따라 Email 템플릿으로 메일 보내기

Email 템플릿은 단건의 이메일을 발송해주는 템플릿입니다. 수신주소, 제목, 본문 내용이 저장된 파일 경로, SMTP 서버 주소, SMTP 서버 포트, 사용자 메일 주소, 사용자 명을 필수 입력값으로 가집니다. 여러 개의 이메일을 동시에 보내려면 Mass Email 템플릿을 활용하여야 하며, 이때는 수신주소, 제목, 본문 내용을 CSV 파일로 별도로 저장하고, 이 CSV 파일의 경로를 필수 입력값으로 가집니다.

Dust_Job에서는 Email 템플릿을 이용하여 2번 Step에서 생성된 ‘dust_command_result.txt’ 파일의내용을 메일로 전송합니다. Email 템플릿의 필수값인 SMTP 서버 주소와 포트 값은 어떤 값도 무관합니다. 그러나, 회사나 기관 등에서는 보안정책상 송수신이 불가능 할 수도 있으므로 주의해야 합니다. 또한, 입력한 SMTP 서버의 정책 등도 메일의 송수신에 영향을 줄 수 있습니다.


위 화면은 Dust_Job의 최종 실행 결과로 ‘dust_command_result.txt’의 내용이 정상적으로 메일로 발송된 것입니다. Dust_Job에 스케줄을 등록한다면 주기적으로 초미세먼지 예보 데이터를 사용자의 이메일 계정으로 전송할 수 있습니다. Dust_Job에서 사용된 Open API는 하루에 4회(5시, 11시, 17시, 23시)에 업데이트 된다고 하니, 매일 (5시 30분, 11시 30분, 17시 30분, 23시 30분)에 실행되도록 스케줄을 등록하면 업데이트된 정보를 받아보실 수 있습니다.


이번 시간에는 J-Jobs의 다양한 기본 템플릿들에 대해서 간단히 소개하고, 그 중 세 가지 템플릿을 활용하여 ‘초미세먼지 예보 Job’을 만들어 보았습니다. 마지막 시간인 다음 시간에는 R 플러그인을 활용한 빅데이터 분석에 대한 소개를 끝으로 J-Jobs 소개를 마무리하도록 하겠습니다.


초미세먼지를 예보하는 Dust_Job은 DevOn 홈페이지에서 J-Jobs 체험판을 다운로드 받으시면 직접 실행해 보실 수 있으며 더욱 자세한 설명도 포함되어 있습니다.

DevOn 홈페이지: http://devon.lgcns.com


글 | LG CNS 아키텍처솔루션팀


* 해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 LG CNS 블로그에 저작권이 있습니다.

* 해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.


        
                             저작자 표시                                     비영리                                             변경 금지                                                               
        
    
             
    

의견 0 신규등록      목록