', { cookie_domain: 'auto', cookie_flags: 'max-age=0;domain=.tistory.com', cookie_expires: 7 * 24 * 60 * 60 // 7 days, in seconds }); ESP32 날씨 표시기 - 재정리 :: MakerLee's Workspace
728x90

기존 데이터를 모두 갈아엎고 - 조금 작성했다 다시 갈아엎고 를 반복하다가 

다시 원점에서부터 시작했습니다. 

 

1. 과도한 chatGPT 의존. 

제가 코드와 구성을 잘 모르는 채로 대충 맡기니 문제가 있어도 원인을 찾기 어렵고 결과가 제가 원하는 형식대로 나오질 않네요. 구성은 제가 짜고 세부 항목만 따로 물어보면서 코드를 구성해야 할 것 같네요

 

2. 너무 긴 휴식과 너무 짧은 작업시간

 제가 이 프로젝트만 하는게 아닌데다 다른 작업도 하고 가끔 이 프로젝트를 하다 보니 연속성이 없어 자꾸 같은자리에서 맴돌게 됩니다. 코드를 문서화시키고 버전관리를 확실히 해야 할 필요가 있더군요.

 

3. 문서화 부족. 

 위에도 썼지만 어느정도 진행된 코드를 나중에 보면 뭔소린지 모르겠습니다. 문서화의 중요성을 다시 한번 느낍니다.

 

 

다시 문서를 보고 찬찬히 정리해 봅니다. 

 

 

 

 

 

단기예보 API

API이름 API 설명  입력 데이터 출력 데이
getUltraSrtNcst 초단기실황조회 serviceKey, numOfRows, pageNo, dataType, base_date, base_time, nx, ny baseDate, baseTime, category, obsrValue, nx, ny
getUltraSrtFcst 초단기예보조회 serviceKey, numOfRows, pageNo, dataType, base_date, base_time, nx, ny baseDate, baseTime, category, fcstDate, fcstTime, fcstValue, nx, ny
getVilageFcst 단기예보조회 serviceKey, numOfRows, pageNo, dataType, base_date, base_time, nx, ny baseDate, baseTime, category, fcstDate, fcstTime, fcstValue, nx, ny
getFcstVersion 예보버전조회 serviceKey, numOfRows, pageNo, dataType, ftype, basedatetime version, filetype, numOfRows, pageNo, totalCount, resultCode, resultMsg

 

 

 

 

 

 

입력 데이터와 출력 데이터 설명

 

단기예보 입출력 데이터

입력 데이터 설명 출력 데이터  설명
serviceKey 공공데이터포털에서 발급받은 인증키 (URL 인코딩 필요). baseDate 발표일자.
numOfRows 한 페이지 결과 수 (기본값: 10). baseTime 발표시각.
pageNo 페이지 번호 (기본값: 1). category 자료 구분 코드 (TMP, PTY, SKY 등).
dataType 응답 자료 형식 (XML 또는 JSON). obsrValue 실황 값 (초단기 실황조회에서 사용).
base_date 발표일자 (YYYYMMDD). fcstDate 예보일자.
base_time 발표시각 (HHMM, 초단기 실황: 40분 이후, 초단기/단기 예보: 정각 기준). fcstTime 예보시간.
nx, ny 예보지점 좌표 (격자 X/Y 좌표). fcstValue 예보 값 (해당 코드에 따른 값).
ftype 파일 구분 (ODAM, VSRT, SHRT, 예보버전조회에 사용). version 예보 버전 (예보버전조회에서 사용).
basedatetime 발표 일시 (예보버전조회에 사용, YYYYMMDDHHMM). filetype 파일 구분 (ODAM, VSRT, SHRT).

 

 

 

 

 

 

중기예보 API

API 이름 API 설명 입력 데이터 출력 데이터
getMidFcst 중기전망조회 serviceKey, numOfRows, pageNo, dataType, stnId, tmFc wfSv (기상전망), numOfRows, pageNo, totalCount, resultCode, resultMsg
getMidLandFcst 중기육상예보조회 serviceKey, numOfRows, pageNo, dataType, regId, tmFc regId, rnSt3Am, rnSt3Pm, wf3Am, wf3Pm (날씨/강수 확률 3~10일치 데이터)
getMidTa 중기기온조회 serviceKey, numOfRows, pageNo, dataType, regId, tmFc regId, taMax3, taMin3, ... (최고/최저 기온 데이터, 3~10일치 데이터)
getMidSeaFcst 중기해상예보조회 serviceKey, numOfRows, pageNo, dataType, regId, tmFc regId, wf3Am, wf3Pm (3~10일치 해상 날씨 및 파고 데이터)

 

 

중기예보 입출력 데이터

 

입력 데이터 설명 출력 데이터 설명
serviceKey 공공데이터포털에서 발급받은 인증키 (URL 인코딩 필요). wfSv 중기전망 기상 정보.
numOfRows 한 페이지 결과 수 (기본값: 10). regId 예보구역코드.
pageNo 페이지 번호 (기본값: 1). rnSt3Am, rnSt3Pm 3일 후 오전/오후 강수 확률.
dataType 응답 자료 형식 (XML 또는 JSON). wf3Am, wf3Pm 3일 후 오전/오후 날씨 예보.
regId 예보 구역 코드 (중기 육상, 기온, 해상 예보에 사용). taMax3, taMin3 3일 후 최고/최저 기온.
tmFc 발표 시각 (YYYYMMDDHHMM, 중기 예보 데이터 기준). wf6Am, wf6Pm 6일 후 오전/오후 해상 날씨 예보.
stnId 지점 번호 (중기전망조회에 사용). taMax10, taMin10 10일 후 최고/최저 기온.

 

 

 

보다시피 데이터가 상당히 많은데, 저는 다양한 크기의 전자잉크를 갖고 있기에 나중에 데이터를 정리하더라도 일단은 모든 데이터를 긁어오도록 할 계획입니다. 

 

단기예보 조회
getUltraSrtNcst 초단기실황조회
getUltraSrtFcst 초단기예보조회
getVilageFcst 단기예보조회
getFcstVersion 예보버전조회

중기예보 조회
getMidFcst 중기전망조회
getMidLandFcst 중기육상예보조회
getMidTa 중기기온조회
getMidSeaFcst 중기해상예보조회

 

모두 호출 형태가 다르고, 호출된 데이터도 다릅니다. 

단기예보 발표시간 - baseDate, baseTime

중기예보 발표시간 - tmFc 

 

 

 

초단기 실황조회
http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getUltraSrtNcst
http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getUltraSrtNcst?serviceKey=3BXdtOYTQgwY%2FncPf6kCtZiX8FDuzXs8Pd66HbbAcSpsYrF%2BRz3gmttlkhF3oCOyESziNpJ5kCeBNk%2Bg1%2BC1pA%3D%3D&numOfRows=10&pageNo=1&dataType=JSON&base_date=20241201&base_time=0500&nx=61&ny=127
http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getUltraSrtNcst?serviceKey=3BXdtOYTQgwY%2FncPf6kCtZiX8FDuzXs8Pd66HbbAcSpsYrF%2BRz3gmttlkhF3oCOyESziNpJ5kCeBNk%2Bg1%2BC1pA%3D%3D&numOfRows=10&pageNo=1&dataType=JSON&base_date=20241201&base_time=1600&nx=61&ny=127

http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst?serviceKey=3BXdtOYTQgwY%2FncPf6kCtZiX8FDuzXs8Pd66HbbAcSpsYrF%2BRz3gmttlkhF3oCOyESziNpJ5kCeBNk%2Bg1%2BC1pA%3D%3D&numOfRows=10&pageNo=1&dataType=JSON&base_date=20241201&base_time=0800&nx=61&ny=127



http routing error 04
https://redfox.tistory.com/154
https://www.data.go.kr/bbs/dnb/selectDeveloperNetworkView.do?reqestSn=QUES_000000000002570


01 - APPLICATION ERROR
요청 파라미터 오류.

02 - DB ERROR
데이터베이스 문제.

03 - NO DATA
데이터 없음.

04 - HTTP ROUTING ERROR
잘못된 URL/라우팅 문제.

05 - SERVICE KEY IS NOT REGISTERED
잘못된/등록되지 않은 서비스 키.

10 - INVALID REQUEST PARAMETER
잘못된 파라미터 형식.

20 - NO MANDATORY PARAMETERS
필수 파라미터 누락.

22 - DEPRECATED OPENAPI
지원 종료된 API 사용.

30 - SERVICE ACCESS DENIED
접근 권한 없음.

728x90

+ Recent posts