본문 바로가기

보안라이프/IT트렌드

프로세싱으로 알아보는 우리 동네 미세먼지 지수



높은 미세먼지 농도로 고생하는 요즘, 저는 항상 외출 전 미세먼지 수치를 확인하곤 합니다.

일일이 검색하는 것이 번거로워 관련 어플리케이션을 이용해 편리하게 정보를 얻는데요.


오늘은 다양한 미세먼지 알림 어플리케이션이 어떻게 정보를 가져오는지에 대해 알아보고,

프로세싱을 통해 직접 미세먼지 수치 정보를 가져와보도록 하겠습니다.



| 공공데이터포털 api 발급받기


공공데이터포털은 국가가 보유한 다양한 데이터를 국민들이 쉽게 활용할 수 있도록 행정안전부에서 제공하는 공공데이터 제공 시스템입니다. 미세먼지, 기온 등 다양한 정보를 다운로드하거나 오픈 api를 이용해 이용할 수 있습니다.


미세먼지 api는 다음의 과정을 통해 발급받을 수 있습니다.



1. 공공데이터포털(https://www.data.go.kr)에 접속, 로그인하기

2. 검색화면에 '미세먼지' 검색하기

3. '한국환경공단_대기오염정보' api 선택 후, 활용신청하기

4. 개발 계정 신청하기

5. 마이페이지 - 오픈API - 개발계정에서 승인된 API키 확인하기


api로 받아온 xml의 데이터는 지역에 따라 분류되어 있는 것을 확인할 수 있습니다. 프로세싱에서 사용할 미세먼지 수치 정보인 pm10은 <items> 태그 안의 <item> 태그 안의 <pm10Value> 태그 속에 있습니다.



그렇다면 발급받은 xml 데이터는 프로세싱에서 어떻게 사용되는 걸까요?

그 전에, 프로세싱에 대해 알아봅시다!



| 프로세싱(Processing)


프로세싱은 2001년 벤 프라이(Ben Fry)와 케이시 리아스(Ceasy Reas)가 개발한 오픈소스 프로그래밍 언어이자 통합 개발 환경(IDE)입니다. 프로그래머가 아닌 사람들이 쉽게 접근할 수 있는 프로세싱은 다음과 같은 특징을 가지고 있습니다.


1. JAVA 기반으로 다양한 플랫폼(OS)과 호환이 가능하다.

프로세싱은 무료로 사용할 수 있습니다. Windows 이외에도 MAC OS, Linux 등 여러 운영체제를 지원하므로 자신의 운영체제에 맞는 프로그램을 편리하게 사용할 수 있습니다.


2. 짧은 소스코드로 다양한 프로그램 구현이 가능하다.

간결한 문법만으로도 결과를 확인할 수 있어 누구나 쉽고 재미있게 작업할 수 있습니다. 


3. 다양한 라이브러리를 이용해 무한한 확장이 가능하다.

라이브러리는 미리 짜놓은 코드를 쉽게 재사용할 수 있도록 코드를 모아 저장한 것입니다. 라이브러리를 이용하면 더욱 높은 수준의 프로그램을 쉽게 만들 수 있습니다.


이 외에도, 많은 사람들이 프로세 커뮤니티(https://www.openprocessing.org)에 공유한 작품들을 이용해 응용할 수 있습니다.



| 프로세싱에 실시간 미세먼지 수치 불러오기


프로세싱으로 미세먼지 수치 정보만을 불러오기 위해서는 다음의 과정을 거쳐야 합니다.




1. 먼저, loadXML()을 이용해 데이터를 프로세싱으로 불러옵니다.

loadXML()에 들어갈 xml 주소는 참고문서의 URL과 승인된 API키를 결합해 작성합니다.


2. 그 다음 xml.getChildren()을 이용해 전체 정보가 들어 있는 <body> 태그에 접근합니다.


3. <body>태그에 접근한 이후에는 pm10은 <items> 태그 안의 <item> 그 안의 <pm10Value> 값을 불러옵니다.

<body> 태그가 들어있는 children[]에서 <pm10Value> 값만 Element 안에 담아줍니다.


4. 마지막으로 형변환을 통해 데이터 값만을 출력하게 해줍니다.



프로세싱에서는 draw()를 이용해 쉽게 실행화면에 결과를 출력할 수 있습니다. 조건문으로 미세먼지 등급에 따라 화면에 출력되는 문구를 변경해 편리하게 대기오염정도를 확인합니다.



저는 서울여자대학교가 위치한 노원구의 미세먼지 수치 정보를 프로세싱으로 가져왔습니다. xml을 이용해 불러온 데이터의 결과와 미세먼지 수치를 조회해 얻은 값이 같은 것을 알 수 있습니다.


(검색 이미지 출처 : 네이버 검색 "노원구 미세먼지")



날씨가 풀리는 날에는 미세먼지 수치가 높다고 합니다.

밖에 나가기 전, 프로세싱으로 미세먼지 지수를 확인해보는 것은 어떤가요?