1P by GN⁺ | ★ favorite | 댓글 1개
  • Weathergov 2.0 저장소는 이전 Drupal 코드베이스 이후의 두 번째 구현이며, Wagtail/Django로 이전하기 위해 만들어진 프로젝트임
  • 개발자는 저장소를 클론한 뒤 just zap으로 컨테이너를 설정하고, 앱을, API 프록시 상태를 확인할 수 있음
  • 문서 디렉터리에는 제품 오너, 개발자, 디자이너, 연구자 등을 위한 가이드와 아키텍처 결정 기록이 포함됨
  • AI 보조 코드도 일반 코드·리뷰 기준을 따라 받을 수 있지만, 제출자는 코드 실행과 테스트를 직접 수행하고 모델명·버전·환경 등 출처 정보를 병합 요청에 공개해야 함
  • 코드베이스는 Wagtail CMS, Django 하위 앱, Node.js API 계층과 프록시, Terraform 인프라 코드, Playwright E2E 테스트 등으로 나뉘어 운영됨

Weathergov 2.0의 성격

  • 이 Git 저장소는 Weathergov 2.0의 두 번째 반복에 해당함
  • 이전 저장소는 Drupal 코드베이스를 담고 있었고, 이 저장소는 Wagtail/Django 이전을 위해 생성됨

로컬 실행 방식

  • 저장소를 클론한 뒤 just zap을 실행하면 컨테이너를 설정할 수 있음
  • 컨테이너가 실행되면 다음 주소에서 확인 가능함

문서와 의사결정 기록

  • docs/ 아래에는 여러 역할을 위한 가이드가 있음
    • 제품 오너용 문서
    • 개발자용 문서
    • 디자이너용 문서
    • 연구자용 문서
    • 기타 역할을 위한 문서
  • docs/architecture/decisions/에는 아키텍처 결정 기록이 있어 현재 구조와 결정의 이유를 설명함

AI 보조 코드 정책

  • 프로젝트는 NAO 216-218 Artificial Intelligence in NOAA Policy, Executive Order 14179 "Removing Barriers to American Leadership in Artificial Intelligence", America's AI Action Plan에 맞춰 AI 보조 코드를 받을 수 있음
  • AI 보조 코드는 일반 코드와 리뷰 기준을 따라야 하며, 더 높은 품질 기준이 적용됨
  • 제출자는 사람이 작성한 코드와 마찬가지로 다음을 충족해야 함
    • 코드와 테스트를 직접 실행했어야 함
    • 코드가 무엇을 하는지 팀에 설명할 수 있어야 함
    • 해결하려는 문제와 제안한 해결책을 이해해야 함
  • 제출된 코드의 동작, 버그, 부작용에 대한 책임은 항상 인간 기여자에게 있음
  • 모든 병합 요청은 AI 보조 코드 포함 여부를 공개해야 함
    • 사용한 모델 이름과 버전
    • IDE, Copilot 등 관련 환경
    • 코드 출처를 이해하는 데 도움이 되는 기타 정보
  • 체크리스트는 AI 생성 코드 변경을 표시하고, 직접 실행했으며, 전문가와 비전문가 모두에게 변경 사항·문제·개선을 설명할 수 있어야 한다고 요구함

코드 구성

  • api-interop-layer: 사이트와 API 사이에 위치하는 Node 앱
  • api-proxy: API 호출을 프록시하고 정적 데이터를 삽입하는 개발·디버그 도구
  • forecast/backend: 예보 페이지를 제공하는 Wagtail CMS
  • forecast/frontend: JavaScript와 기타 클라이언트 측 자산
  • forecast/locale: 번역 생성을 위한 메시지 파일
  • forecast/spatial: 공간 데이터베이스를 관리하는 Django 하위 애플리케이션
  • spatial-data: WFO 지도를 생성하는 Node.js 유틸리티 앱
  • terraform: 인프라 관리와 사이트 배포를 위한 코드
  • tests/playwright: 실행 중인 사이트에 대한 Playwright E2E 테스트
  • tests/translations: 번역 키 존재 여부를 확인하는 테스트 스크립트이며 deprecated 상태임
  • justfile: 개발자 명령을 실행하는 파일로, 최신 makefile에 가까운 역할을 함

댓글과 토론

Hacker News 의견들
  • 18F(GSA)와의 계약/파트너십으로 진행되는 것처럼 보임: https://18f.gsa.gov/
    “weather.gov가 사용자 필요보다 조직의 사일로를 더 많이 반영한다(Conway의 법칙)”고 공개 README에 적어 둔 건 놀라움. 우리 조직이라면 공개 문서에 저렇게 쓸 배짱이 없을 듯함

    • US Digital Service와 18F는 기관들이 “맞아, 이건 별로지만 더 좋게 만들겠다”고 말할 수 있는 분위기를 정상화했다는 점에서 큰 역할을 했음
      이해관계자들이 방어 태세를 내려놓고 일관된 해법을 위해 협업할 수 있는 안전감이 절반의 승부이고, 이런 “관료제 해킹”에서는 신뢰와 관계 구축이 과소평가됨
    • 더 많은 조직이 이렇게 투명했으면 좋겠음
      사일로는 생기기 마련이고, 누구 탓으로 돌리고 싶지는 않음. 문제가 인정되고 해결 의지가 있다는 걸 알면 답답함을 어느 정도 내려놓을 수 있음
    • “피드백/모니터링”이라는 표현 때문에, 짜증 나는 쿠키 팝업을 달고 오는 분석 추적 스크립트를 넣는 건 아닌지 걱정됨
    • 여전히 사일로가 꽤 있어 보임. 예를 들어 Office of Water Prediction은 별도 GitHub 조직을 운영하고, water.weather.gov와 별개의 preview.water.noaa.gov 및 water.noaa.gov/map 사이트도 있음
      그런데 현장 관측 데이터는 실제로 USGS에서 오고, 데이터와 웹 서비스도 waterdata.usgs.gov에서 제공함
  • 멍청한 질문일 수 있지만, 이 2.0은 어딘가에서 실제로 써볼 수 있는 상태인지, 아니면 개발 중인 소스 코드일 뿐인지 궁금함
    8년쯤 전 미국 정부 항공 기상 제품 중 하나에 “실험적” 사이트가 있었는데, 정말 좋았음. 현대적이고 쓰기 쉽고 깔끔해서 흔한 어색한 정부 웹사이트 같지 않았고, 팀도 좋아 보였지만 몇 년짜리 정부 예산 체계에 묶여 있었음. 결국 닫혔고, 기억상으로는 그 작업물이 본 사이트로 올라가지 않았음
    미국은 훌륭한 기상 서비스와 무료·공공재로 제공해야 한다는 의무가 있어서 운이 좋음. 다만 너무 좋아지지 못하게 하는 정치적 압력도 많아서, 상업 회사가 이익을 낼 수 있게 됨. 적어도 2005년의 AccuWeather가 그런 회사 중 하나였음: https://www.onthecommons.org/privatizing-weather/index.html

    • Barry Myers / AccuWeather는 모든 기상 예보 서비스의 민영화를 누구보다 원할 것이고, 그렇게 되면 나와 SPC 동료들은 일자리를 잃게 됨
    • 스테이징 환경은 갖춰 둔 것 같지만, 아마 공개 라이브는 아닌 듯함: https://github.com/weather-gov/weather.gov/tree/main/.github...
    • beta.weather.gov에 베타 웹사이트가 있긴 한데, 글에 링크된 소스와 같은 것인지는 모르겠음
    • README에는 프로토타이핑을 끝내고 지금은 MVP를 만드는 중이라고 되어 있음
    • 로드맵에는 5월이라고 되어 있음
      https://github.com/weather-gov/weather.gov/blob/smh--researc...
  • 잘하고 있음. radar.weather.gov는 훌륭한 사이트이고, 모든 기기에서 작동하며, 광고 없이 아주 잘 동작하니 계속 유지해 줬으면 함

    • 내 경험은 정반대임. 모바일에서는 전혀 잘 작동하지 않고, 예전처럼 단순하고 유용한 것을 찾는 사람에게는 지나치게 복잡함
      속도도 엄청 느리고, 이전 버전에 비해 유용한 정보도 더 제한적임
  • 이게 api.weather.gov에도 영향을 줄지 궁금함. 예전에 Weather Underground에서 영감을 받은 작은 대시보드(https://weather.nikolaj.dev)를 만들어서 아직도 대부분의 날에 쓰고 있음
    다만 서핑 리포트용 해양 예보를 직접 만들려던 작업은 좀 멈춰 있음. 그 필드들을 결국 채워 주면 좋겠음. 그러면 GRIB 파일을 직접 파악하는 수고를 덜 수 있음

    • 이거 마음에 듦. Weather Underground의 10일 예보 UI/레이아웃이 제일 좋았는데, 광고가 너무 심해졌음
    • 참고로 아키텍처 다이어그램 중 하나를 보면 api.weather.gov는 이 프로젝트 범위 밖인 것 같음
    • 인터페이스가 좋음
      사소한 문제로, 다른 위치를 이미 입력했는데 몇 초 뒤 San Diego 날씨로 리다이렉트됐음. 위치 요청을 차단해서 그런 걸 수도 있음
  • 모든 정부 관련 오픈소스 프로젝트가 한곳에 정리되어 있으면 좋겠음. 예를 들어 GitHub에 usa-gov 조직이 있어서 모든 저장소에 쉽게 접근할 수 있으면 좋겠음

    • 정확히 한곳은 아니지만, 이 페이지 [0]가 여러 연방 기관의 GitHub 조직을 나열함. 다만 포괄적이지는 않고, 특히 NSA 조직 [1]이 빠져 있음
      [0] https://code.gov/agencies
      [1] https://github.com/nationalsecurityagency
    • https://government.github.com/community/에는 국제 기관도 있음
    • GitHub는 중첩 조직이나 관련 조직 구조를 제대로 허용하지 않아서, 모든 저장소를 단일 조직에 넣으면 악몽이 될 것임
      정부용 GitHub [0]가 있긴 하지만 기여에 의존하고 완성도가 높지 않음
      GSA는 Obama 행정부 때 모든 정부 프로젝트의 단일 색인을 만들 목표로 code.gov를 시작했음. Trump 행정부에서 시들해졌고 Biden 행정부에서는 사실상 예산이 끊겨서, 지금은 주요 기관으로 링크하는 정도만 하고 적시 색인 요구도 더 이상 없음
      우리 조직만 해도 저장소가 약 1000개이고, 그런 기관이 수백 개라서 조금의 노력 없이는 전부 모으는 일이 상상되지 않음. 원래 code.gov는 각자 웹사이트에 code.json 파일을 올리면 GSA가 그것들을 수집해 하나로 합치는 방식이라 꽤 잘 작동했음. 그래서 그걸 멈추고 code.json 게시 요청도 중단한 건 정말 아쉬움. 좋은 아이디어였음
      [0] https://government.github.com/community/
    • 프랑스에는 https://code.gouv.fr/가 있고, 소스는 GitHub와 SourceHut에 공개되어 있음: https://github.com/codegouvfr
      https://git.sr.ht/~codegouvfr/
  • 모든 연방 기관이 나아갈 수 있는 미래의 모습 같음. National Weather Service가 앞장서는 데 박수를 보냄

  • weather.gov의 예보 그래프는 내가 아는 것 중 가장 유용하고, 날씨가 궁금할 때 가장 먼저 찾는 것임
    예: https://forecast.weather.gov/MapClick.php?lat=37.7771&lon=-1...

    • 맞음. 내 위치의 시간별 날씨 이미지를 mpv로 띄우는 창 관리자 단축키를 만들어 뒀고, 오늘이나 내일 날씨를 빠르게 확인하는 좋은 방법으로 추천함
      터미널에서 kitten icat으로 표시하는 셸 별칭도 있지만, mpv 단축키를 더 자주 씀. 텍스트 날씨 별칭도 있어서, 아래 경로에서 내 위치에 맞는 파일을 curl로 가져옴:
      https://tgftp.nws.noaa.gov/data/forecasts/zone/
      내 주의 파일을 훑어 적절한 파일을 찾았지만, 7일 예보 페이지의 “More Local Wx” 링크에 올바른 파일명도 있는 것 같음. 내 경우는 ORZ006임
      레이더를 보여 주는 icat 별칭도 몇 개 만들어 뒀음. 현재, 순차, 반복 표시용이고, 레이더 이름은 radar.weather.gov와 동일하게 아래 페이지에서 가져옴:
      https://radar.weather.gov/ridge/standard/
      다만 1시간 누적 강수 보기(One hour accumulation view)가 가장 좋다고 보는데, 그 뷰의 이미지를 가져오는 방법을 찾지 못해서 보통 radar.weather.gov를 봄. 요즘은 좀 나아졌지만 가끔 나에게는 전혀 작동하지 않음
      자주 보지는 않지만, 6~10일 및 월간 기온·강수 전망을 보여 주는 icat 별칭도 만들어 둠:
      https://www.cpc.ncep.noaa.gov/products/predictions/610day/
      https://www.cpc.ncep.noaa.gov/products/predictions/30day/
  • contributing.MD 파일이 보이지만, 실제로 어떻게 기여할 수 있는지 판단하기가 어려움. 잠재 기여자로서는 어떤 방식으로 기여하는 게 가장 좋은지 알 수 있으면 좋겠음

    • perspective는 “관점”이고, 여기서는 prospective, 즉 “잠재적인”이 맞음
      꼬투리 잡으려는 건 아니고 도움이 되길 바라며 공유함
  • 직접 특화된 경험을 만드는 사람들을 위한 API 이야기가 더 있기를 기대했음. NOAA는 원시 데이터 제공은 잘하고 있지만, 정부 서비스 소비와 활용은 더 구체적인 경우가 많음
    여기서 긴급 대응 도구를 만들고 있음. 생성형 AI 우선으로, 지속적 모니터링 → 알림, 챗봇, 맞춤 상황보고서 같은 것들임. 관심 있으면 연락해도 됨
    여러 기관, 유틸리티 등이 특화된 변형을 필요로 하다 보니, weather.gov가 내부적으로 풀고 있을 마지막 구간의 데이터·UI 어려움이 다른 기관에도 도움이 될 것이라는 점을 더 실감하게 됨
    내가 알기로 Weather.gov는 NOAA 산하 NWS가 운영하니, 이번 미션 개편에 그 내용이 없는 건 흥미로움

  • 약간 관련된 내용인데, 개인적으로 weather.gov에서 가장 유용한 단일 URL은 이것임. 위도/경도만 바꾸면 됨
    https://forecast.weather.gov/MapClick.php?FcstType=graphical...
    같은 레이아웃으로 과거 데이터도 볼 수 있으면 좋겠음