Devin.KR

공개 데이터와 질문 정의

교통량과 강수량을 비교할 질문과 데이터 계약을 작성합니다.

진도 0%

레슨

  1. 질문을 관측 단위로 바꾸기

    지역·날짜별 교통량과 강수 여부의 차이를 질문으로 쓰고 관측 단위를 정합니다.

  2. 출처와 사용 조건 기록

    제공된 교통·날씨 표본의 출처 URL·사용 조건·추출일·수집 기간을 source.json에 기록합니다.

  3. 스프레드시트로 원본 점검

    스프레드시트에서 행·열·단위·빈칸·중복을 확인하고 필터 전후 행 수를 audit.csv로 내보냅니다.

  4. 필요한 열과 개인정보 구분

    위치·시간의 재식별 가능성을 검토하고 개인 이동 경로 대신 지역별 집계만 사용하는 데이터 사전을 작성합니다.

공개 데이터와 질문 정의 결과물 통합

작성팀이 만든 교통·날씨 합성 교육 표본으로 프로젝트의 데이터 계약 v1을 만듭니다. 실제 공개기관 관측값이 아니며 포털 URL은 실제 자료 교체 때 탐색할 참고로 구분합니다. 이 첫 미션의 검증된 raw·source·dictionary·question·audit가 다음 SQL 모듈의 출발점입니다.

요구사항

  • 원본 raw/traffic.csv(7행)와 raw/weather.csv(6행)를 바이트 그대로 보존합니다.
  • source.json에 두 자료 각각의 합성 표본 표시·제작자·직접 표본 URL·참고 URL·사용 조건·추출일·관측 기간·SHA-256이 있습니다.
  • dictionary.json에 표별 관측 단위·시간대·날짜 경계·후보 키와 열별 타입·단위·빈값 허용, 결측 정책·개인 경로 제외 근거가 있습니다.
  • question.json에 대상·기간·측정값·강수 규칙·제외 조건·해석 한계를 작성합니다.
  • 스프레드시트에서 audit.csv를 작성합니다. raw→nonmissing→unique 순서로 traffic 7→6→5, weather 6→5→5를 기록하고 0은 유지합니다.

완료 기준

  • python3 -m unittest discover -s tests -v: solution 테스트 10개와 하위 fixture 통과, starter는 산출물 검사 일부 실패. 검증기와 테스트를 바꾸지 않습니다.
  • 필수 출처 필드 누락·뒤집힌 기간·금지 열(name/phone/email/device_id/latitude/longitude/timestamp)의 사전 fixture를 거부합니다.
  • 원본 SHA-256과 관측 기간·사전 열 정의·audit.csv의 행 수/순서/규칙을 대조합니다.
  • python3 contract.py에서 계약 통과 문구를 확인합니다. 질문의 적합성·개인정보 위험·실제 자료 사용 조건은 사람이 별도 검토합니다.
python3 -m unittest discover -s tests -v
미션 시작 코드
모범 답안모범 답안 내려받기

검토 기준

  • 판단 근거와 제외 조건을 데이터와 연결해 설명합니다.
  • 앞 단계 산출물을 재사용하고 원본을 보존합니다.