티스토리 뷰

기상청에서 제공하는 오픈 API를 이용해 현재 시점의 날씨를 알아보는 기능을 만들어보자!

 

https://www.data.go.kr/data/15084084/openapi.do

 

기상청_단기예보 ((구)_동네예보) 조회서비스

초단기실황, 초단기예보, 단기((구)동네)예보, 예보버전 정보를 조회하는 서비스입니다. 초단기실황정보는 예보 구역에 대한 대표 AWS 관측값을, 초단기예보는 예보시점부터 6시간까지의 예보를,

www.data.go.kr

 

들어가서 활용 신청을 미리 해놔야한다

반영 시간이 조금 걸리기 때문에 미리미리 해두고 나서 진행하는 것이 좋다. 

 

API 중 우리가 중점적으로 사용할 것은 "초단기 실황 조회" 기능이다

 

 

API 요청을 위해 넣어줘야할 파라미터는 위와 같은데, 가장 중요한 것은 예보지점의 X, Y좌표를 미리 알고있어야 한다는 것이다!!

 

그렇기에 어떤 지역이 어떤 좌표값을 갖고 있는지를 별도의 테이블로 만들어놓고 필요할 때 꺼내쓰는 방식으로 사용해보기로 한다.

 

1편. 요청 파라미터에 넣을 csv 데이터 가공하기

 

#1. 지역 정보를 DB에 저장하기

각 지역의 X, Y좌표는 별도 첨부파일에 포함되어 있고, 아래와 같다.

 

 

보면 지역을 3단계(시/도 -> 군/구 -> 동)로 상세하게 구분해 놓은 것을 확인할 수 있다.

근데 각 동네의 지역 정보를 저장하려고 하면 데이터가 3천개를 훌쩍 넘는데, 나는 굳이 그렇게 자세한 동네 날씨까지는 필요가 없을 것 같아 2단계 분류 데이터까지만 사용해 보려고 한다.

그리고 2단계에 지명이 비어있는 필드가 있는데 저것도 그냥 같이 삭제해서 사용하려고 한다.

행정구역 코드는 남겨둬야하나 말아야하나 싶었는데 사실 별 쓸데가 없을 것 같아 그냥 같이 삭제하기로 한다.

 

우선 컬럼의 헤더라고 하나? 컬럼명을 각각

1단계 -> region_parent,

2단계 -> region_child,

좌표 x -> NX,

좌표 y -> ny로 바꿔주고.

 

엑셀에서 필터 기능을 사용해서 필요없는 필드를 삭제해주면 된다.

어떻게 삭제하는지 예를 들어보면.. (예시 -- 2단계 값이 비어있는 데이터를 삭제하는 과정)

 

 

 

 

맨 첫행을 클릭한 다음 ctrl + shift + ↓ 키를 누르면 맨 아래 데이터가 있는 행까지 드래그가 된다

 

 

그 다음에 행 삭제를 해주고, 데이터 필터를 해제해주면??

 

 

내가 원하는 데이터만 -깔끔- 하게 들어가있다!!

 

+ 아 그리고 맨 앞 열에 순번을 표시해줄 ID 컬럼을 하나 더 붙여주자!!

ID 컬럼이 없어도 나중에 DB에 넣을때 auto_increment를 이용하면 ID 컬럼을 알아서 채울 수 있지만. 그럼 데이터 삭제한 다음에 다시 데이터를 추가하면 빈 ID값이 생겨서 그냥 ID값을 미리 박아놓는게 마음이 편안해서 개인적으로 좋은 것 같다.

 

데이터가 250개라 적다면 적은데 막상 또 그렇게 적은 양은 아니라서 드래그로 자동 채우기 하려 하면 상당히 인고의 시간이 걸린다. 그래서 구글링 해본 결과 역시나 드래그 없이 자동채우기를 할 수 있는 방법이 있다. 엑셀은 못하는 것이 없다.

 

 

종료값: 값이 있는 마지막 행번호 까지 (= 열 방향)

 


짠!!

 

이렇게 2단계까지의 데이터만 사용한다면 총 데이터 수가 250개정도밖에 안되서 토이 프로젝트에 가볍게 사용하기에 딱인것 같다!

 

이제 이 xlsx 파일을 csv 파일로 변환한 다음, 자바에서 csv 파일을 읽어 별도의 테이블로 저장하는 과정을 거쳐보자.

 

 

# 1-2. xlsx 파일을 csv 파일로 변환하기

 

xlsx 파일과 csv의 파일의 차이가 뭘까?

csv 파일은 열을 콤마(,)로 구분하고, 엑셀 수식들을 사용할 수 없다. 그냥 순수하게 데이터들만 들어가있다고 생각하면 된다.

 

xlsx에서 csv 변환은 그냥 엑셀에서 저장할때 다른이름으로 저장 - csv 파일로 저장하기만 하면 알아서 변환이 된다.

여기서 파일 형식에 보면 그냥 CSV가 있고, CSV UTF-8이 있는데 당근빠따 국룰 UTF-8로 가자!!

 

 

이제 csv 파일을 "메모장"으로 열어보면??

 

 

아주 잘 되었다!

어째 자바보다 엑셀을 더 많이 만진 것 같은 느낌이 든다

 

이제 본격적으로 csv 파일을 자바에서 읽고, DB에 저장하는 일을 해보자

 

다음편에 계속..

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함