Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

주간 날씨 업데이트 batch #16

Open
jun108059 opened this issue Nov 9, 2024 · 0 comments
Open

주간 날씨 업데이트 batch #16

jun108059 opened this issue Nov 9, 2024 · 0 comments
Assignees
Labels
Milestone

Comments

@jun108059
Copy link
Member

주간 날씨 업데이트 batch 로직

  1. 스키 리조트 목록 조회: ski_resorts 테이블에서 모든 스키 리조트를 조회
  2. 기상청 중기 기온/육상 예보 API 호출:
    • 첫 번째 API: 중기 기온 예보 API (getMidTa)를 호출하여 최고 기온최저 기온 데이터를 조회
    • 두 번째 API: 중기 육상 예보 API (getMidLandFcst)를 호출하여 강수확률하늘상태 데이터 조회
  3. 데이터 처리:
    • API 응답에서 필요한 데이터를 추출

    • 하늘상태와 강수확률은 오전과 오후 중 더 나쁜 상태(높은 강수확률, 더 나쁜 하늘상태)를 선택

    • 하늘상태의 우선순위

      맑음 < 구름많음 < 흐림 < 구름많고 소나기 < 구름많고 비 < 구름많고 비/눈 < 흐리고 비 < 흐리고 소나기 < 소나기 < 비 < 비/눈 < 흐리고 눈 < 흐리고 비/눈 < 눈

    • 날짜별로 d_day 값을 계산

      • 오늘로부터 3일 후부터 최대 10일 후까지의 데이터 조회
  4. 데이터베이스 업데이트:
    • daily_weather 테이블 업데이트

중기 기온 예보

https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15059468

요청변수(Request Parameter)

항목명(국문) 항목명(영문) 항목크기 항목구분 샘플데이터 항목설명
서비스키 ServiceKey 4 필수 - 공공데이터포털에서 받은 인증키
페이지 번호 pageNo 4 필수 1 페이지번호
한 페이지 결과 수 numOfRows 4 필수 10 한 페이지 결과 수
응답자료형식 dataType 4 옵션 XML 요청자료형식(XML/JSON)Default: XML
예보구역코드 regId 8 필수 11B10101 11B10101 서울, 11B20201 인천 등 ( 별첨엑셀자료 참고)
발표시각 tmFc 12 필수 201309030600 -일 2회(06:00,18:00)회 생성 되며 발표시각을 입력- YYYYMMDD0600(1800) 최근 24시간 자료만 제공

예제 호출 - 응답

https://apis.data.go.kr/1360000/MidFcstInfoService/getMidTa?serviceKey=p6zNXOJrrBY4cuX7OYtdDMtmR8hiGeUaBLf0z6BXnm%2FqniV8wB0SuPwBgqKDTKV%2F24EW7xiRY3DCS21Ess%2F42Q%3D%3D&pageNo=1&numOfRows=10&dataType=JSON&regId=11B10101&tmFc=202411090600

{
  "response": {
    "header": {
      "resultCode": "00",
      "resultMsg": "NORMAL_SERVICE"
    },
    "body": {
      "dataType": "JSON",
      "items": {
        "item": [
          {
            "regId": "11B10101",
            "taMin3": 11,
            "taMin3Low": 1,
            "taMin3High": 1,
            "taMax3": 18,
            "taMax3Low": 1,
            "taMax3High": 1,
            "taMin4": 9,
            "taMin4Low": 2,
            "taMin4High": 1,
            "taMax4": 19,
            "taMax4Low": 1,
            "taMax4High": 1,
            "taMin5": 11,
            "taMin5Low": 1,
            "taMin5High": 1,
            "taMax5": 17,
            "taMax5Low": 2,
            "taMax5High": 1,
            "taMin6": 12,
            "taMin6Low": 1,
            "taMin6High": 1,
            "taMax6": 19,
            "taMax6Low": 1,
            "taMax6High": 1,
            "taMin7": 11,
            "taMin7Low": 2,
            "taMin7High": 1,
            "taMax7": 18,
            "taMax7Low": 1,
            "taMax7High": 1,
            "taMin8": 11,
            "taMin8Low": 0,
            "taMin8High": 2,
            "taMax8": 16,
            "taMax8Low": 0,
            "taMax8High": 1,
            "taMin9": 8,
            "taMin9Low": 0,
            "taMin9High": 2,
            "taMax9": 13,
            "taMax9Low": 0,
            "taMax9High": 2,
            "taMin10": 6,
            "taMin10Low": 0,
            "taMin10High": 2,
            "taMax10": 12,
            "taMax10Low": 0,
            "taMax10High": 3
          }
        ]
      },
      "pageNo": 1,
      "numOfRows": 10,
      "totalCount": 1
    }
  }
}

중기 육상 예보

https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15059468

요청변수(Request Parameter)

항목명(국문) 항목명(영문) 항목크기 항목구분 샘플데이터 항목설명
서비스키 ServiceKey 4 필수 - 공공데이터포털에서 받은 인증키
페이지 번호 pageNo 4 필수 1 페이지번호
한 페이지 결과 수 numOfRows 4 필수 10 한 페이지 결과 수
응답자료형식 dataType 4 옵션 XML 요청자료형식(XML/JSON)Default: XML
예보구역코드 regId 8 필수 11B10101 11B10101 서울, 11B20201 인천 등 ( 별첨엑셀자료 참고)
발표시각 tmFc 12 필수 201309030600 -일 2회(06:00,18:00)회 생성 되며 발표시각을 입력- YYYYMMDD0600(1800) 최근 24시간 자료만 제공

https://apis.data.go.kr/1360000/MidFcstInfoService/getMidLandFcst?serviceKey=p6zNXOJrrBY4cuX7OYtdDMtmR8hiGeUaBLf0z6BXnm%2FqniV8wB0SuPwBgqKDTKV%2F24EW7xiRY3DCS21Ess%2F42Q%3D%3D&pageNo=1&numOfRows=10&dataType=JSON&regId=11D10000&tmFc=202411091800

{
  "response": {
    "header": {
      "resultCode": "00",
      "resultMsg": "NORMAL_SERVICE"
    },
    "body": {
      "dataType": "JSON",
      "items": {
        "item": [
          {
            "regId": "11D10000",
            "rnSt3Am": 20,
            "rnSt3Pm": 10,
            "rnSt4Am": 30,
            "rnSt4Pm": 30,
            "rnSt5Am": 30,
            "rnSt5Pm": 70,
            "rnSt6Am": 40,
            "rnSt6Pm": 40,
            "rnSt7Am": 40,
            "rnSt7Pm": 40,
            "rnSt8": 30,
            "rnSt9": 30,
            "rnSt10": 30,
            "wf3Am": "구름많음",
            "wf3Pm": "맑음",
            "wf4Am": "구름많음",
            "wf4Pm": "흐림",
            "wf5Am": "구름많음",
            "wf5Pm": "흐리고 비",
            "wf6Am": "흐림",
            "wf6Pm": "흐림",
            "wf7Am": "흐림",
            "wf7Pm": "흐림",
            "wf8": "구름많음",
            "wf9": "구름많음",
            "wf10": "구름많음"
          }
        ]
      },
      "pageNo": 1,
      "numOfRows": 10,
      "totalCount": 1
    }
  }
}
  • 강수확률 (rnSt)
    • 오전과 오후 중 더 높은 강수확률을 선택
  • 하늘상태 (wf)
    • 오전과 오후 중 더 나쁜 하늘상태를 선택
      • 예를 들어, "흐림"이 "맑음"보다 나쁜 상태
      • 맑음 > 구름많음 > 흐림 > 구름많고 소나기 > 구름많고 비 > 구름많고 비/눈 > 흐리고 비 > 흐리고 소나기 > 소나기 > 비 > 비/눈 > 흐리고 눈 > 흐리고 비/눈 > 눈
@jun108059 jun108059 added the batch label Nov 9, 2024
@jun108059 jun108059 added this to the Phase1-mvp milestone Nov 9, 2024
@jun108059 jun108059 self-assigned this Nov 9, 2024
jun108059 added a commit that referenced this issue Nov 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant