- 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을 실행하면 컨테이너를 설정할 수 있음 - 컨테이너가 실행되면 다음 주소에서 확인 가능함
http://localhost:8080: 애플리케이션 실행 화면http://localhost:8081: API 프록시 상태
문서와 의사결정 기록
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 CMSforecast/frontend: JavaScript와 기타 클라이언트 측 자산forecast/locale: 번역 생성을 위한 메시지 파일forecast/spatial: 공간 데이터베이스를 관리하는 Django 하위 애플리케이션spatial-data: WFO 지도를 생성하는 Node.js 유틸리티 앱terraform: 인프라 관리와 사이트 배포를 위한 코드tests/playwright: 실행 중인 사이트에 대한 Playwright E2E 테스트tests/translations: 번역 키 존재 여부를 확인하는 테스트 스크립트이며 deprecated 상태임justfile: 개발자 명령을 실행하는 파일로, 최신makefile에 가까운 역할을 함