본문으로 이동
모든 코스
Yale시장과 정책180분4 모듈
최신 자료공식 Tracker 2026-07-20 · 코드 2026-05-01

관세 그래프의 기준일과 데이터 파이프라인 추적하기

최신 공식 Tracker에서 현행 수치를 읽고, R 파이프라인과 캐시 CSV를 따라 그래프가 만들어진 선택을 해부합니다.

4월에 맞았던 관세 수치를 8월에도 ‘현재’라고 부를 수 있을까요?

프로젝트와 최신성

유료 Haver 데이터 없이 `website/csv` 캐시를 읽습니다. 저장소에 명시적 라이선스가 없으므로 코드를 재배포하지 않고 원본 커밋을 링크합니다.

2026년 7월 공식 인터랙티브 Tracker가 이전 정적 보고서를 대체했습니다. GitHub는 4월 분석을 만든 공개 파이프라인 구조 학습용이며, 현재 수치는 반드시 최신 공식 도구에서 다시 확인합니다.

먼저 볼 장면

GitHub의 4월 CSV를 8월 현재 정책처럼 발표하기

코드는 재현 가능해도 정책은 바뀝니다. 현행 수치는 7월 공식 도구에서 확인하고, 공개 코드는 수치가 만들어지는 구조와 가정을 배우는 데 씁니다.

데이터 흐름

관세 정책이 최신 그래프가 되는 과정

1정책·법령날짜별 관세 조치
2외부 데이터Haver·USITC 등 원자료
3R 파이프라인정리·변환·시나리오 계산
4공식 Tracker현행 수치와 기준일 공개
0/4

‘다음 단계’를 눌러 입력이 결과가 되는 길을 따라가세요.

구성요소 대화

‘최신 수치’라는 말을 둘러싼 대화

‘다음 단계’를 눌러 구성요소의 첫 메시지를 열어 보세요.

코드 워크스루

관심 분야의 문제를 정하고, 코드와 데이터를 읽고, AI 실험을 검증한 뒤 결과를 발표합니다.

40분

개발 실행과 공식 출판을 분리하기

`PUBLICATION_RUN` 설정이 결과를 웹사이트와 출판 폴더에 복사할지 결정하는 경계를 읽습니다.

먼저 떠올릴 비유

연습 인쇄와 최종 신문 발행을 다른 버튼으로 두는 것과 같습니다.

핵심 판단

기본값은 로컬 개발 모드입니다. 출판 플래그를 켠 실행만 공식 산출물 경로로 복사되므로, 모든 실행 결과를 현행 공식값으로 볼 수 없습니다.

직접 해보기

현재 Tracker의 기준일과 GitHub 커밋일을 나란히 쓰고 둘의 역할을 한 문장씩 구분합니다.

남길 증거

정책 수치 출처·기준일 카드

코드 용어
저장소의 실제 코드이 파일에서 확인
run_all.Re269ae4
# Publication flag: controls whether final outputs are copied to output/publication/
# (which is tracked by git) and whether website assets are exported to website/.
# Default: FALSE (local/development run). Set to TRUE for publication, or override
# via environment variable: PUBLICATION_RUN=TRUE Rscript run_all.R
PUBLICATION_RUN <- as.logical(Sys.getenv("PUBLICATION_RUN", unset = "FALSE"))
if (is.na(PUBLICATION_RUN)) PUBLICATION_RUN <- FALSE
cat("Run mode:", if (PUBLICATION_RUN) "PUBLICATION (outputs copied to publication/ and website/)" else "LOCAL (development only)", "\n\n")
코드가 하는 일
  1. 1

    주석이 출판 플래그의 두 효과와 기본값을 설명합니다.

  2. 2

    환경변수가 없으면 개발 모드인 `FALSE`가 됩니다.

  3. 3

    실행 로그에 공식 출판인지 로컬 실험인지 분명히 출력합니다.

새 상황에 적용하기

로컬 실행에서 새 CSV가 만들어졌습니다.

바로 ‘Yale의 최신 공식 수치’라고 발표해도 될까요?

45분

유료 원자료와 수업용 캐시 경계 알기

Haver 패키지·연결 여부를 점검하는 코드를 읽고 재현할 수 있는 범위를 정직하게 정합니다.

먼저 떠올릴 비유

도서관 구독 논문을 읽는 것과 그 논문 전체를 복사해 배포하는 것이 다른 것과 같습니다.

핵심 판단

코드는 Haver 패키지 존재와 연결 초기화를 확인합니다. 계정이 없는 수업은 포함된 웹 CSV를 분석할 수 있지만 전체 최신 원자료 수집을 재현했다고 말하면 안 됩니다.

직접 해보기

과정에서 재현한 단계와 접근권한 때문에 관찰만 한 단계를 두 열로 나눕니다.

남길 증거

재현 가능 범위와 데이터 접근 표

코드 용어
저장소의 실제 코드이 파일에서 확인
R/utils.Re269ae4
check_haver_available <- function() {
  tryCatch({
    if (!requireNamespace("Haver", quietly = TRUE)) {
      return(FALSE)
    }
    # Must use library() not just requireNamespace() -- Haver's .onAttach
    # initializes the DLL state that haver.direct() depends on.
    # suppressWarnings handles the "database path failed" message (expected
    # in server-only / direct mode with no local .dat files).
    suppressWarnings(library(Haver, quietly = TRUE))
코드가 하는 일
  1. 1

    함수가 Haver 연결을 시도하되 오류가 전체 실행을 무너뜨리지 않게 감쌉니다.

  2. 2

    패키지가 없으면 즉시 `FALSE`를 돌려 접근 불가를 표시합니다.

  3. 3

    연결에 필요한 내부 초기화를 위해 실제 라이브러리를 불러옵니다.

새 상황에 적용하기

학생에게 Haver 계정이 없지만 저장소의 `website/csv`는 읽을 수 있습니다.

가장 정확한 결과 설명은 무엇인가요?

45분

그래프 앞의 열 선택과 이름 바꾸기

외부 시계열을 받아 날짜 범위와 열 이름을 맞추고 저장하는 재사용 함수를 읽습니다.

먼저 떠올릴 비유

방송 자막팀이 여러 기관의 표기법을 같은 화면 이름으로 맞추는 것과 같습니다.

핵심 판단

함수는 코드 목록·새 열 이름·출력 이름·시작일·변환 함수를 입력으로 받습니다. 그래프의 의미는 이 선택에서 이미 크게 정해집니다.

직접 해보기

최종 CSV 열마다 원자료 코드, 변환, 단위, 시작일을 추적하는 계보표를 만듭니다.

남길 증거

관세 그래프 데이터 계보표

코드 용어
저장소의 실제 코드이 파일에서 확인
R/tariff_impacts_work.Re269ae4
pull_rename_save <- function(codes, col_names = NULL, output_name,
                              start_date = START_LONG, transform_fn = NULL) {
  log_msg("INFO", paste0("Pulling ", output_name, " data..."))
  data <- pull_haver_local(codes, "monthly", start_date)
  if (is.null(data)) return(invisible(NULL))
  if (!is.null(col_names)) {
    for (old_name in names(col_names)) {
      idx <- which(names(data) == old_name)
      if (length(idx) == 1) names(data)[idx] <- col_names[[old_name]]
    }
코드가 하는 일
  1. 1

    재사용 함수가 원자료 코드와 출력 설정을 입력으로 받습니다.

  2. 2

    월별 자료를 지정 시작일부터 불러오고 없으면 조용히 종료합니다.

  3. 3

    열 이름 연결표가 있으면 정확히 한 번 일치한 열만 새 이름으로 바꿉니다.

새 상황에 적용하기

그래프의 기준선 평균을 2018-19에서 2022-24로 바꿨습니다.

독자 해석을 위해 반드시 해야 할 일은 무엇인가요?

50분

최신 도구와 코드 결과를 교차검증하기

웹사이트용 CSV 내보내기 코드를 읽고 최신 공식 Tracker와 날짜를 맞춘 1쪽 정책 브리핑을 만듭니다.

먼저 떠올릴 비유

기상예보에서 어제 모델 실행과 오늘 공식 특보의 시각을 따로 표시하는 것과 같습니다.

핵심 판단

내보내기 코드는 날짜, 유효 관세율, 과거 평균을 골라 웹 CSV로 씁니다. 어떤 열을 내보내는지가 독자가 비교할 기준을 정합니다.

직접 해보기

최신 Tracker 수치와 캐시 CSV 마지막 날짜를 비교하고 차이가 있으면 브리핑에 이유와 우선 출처를 씁니다.

남길 증거

기준일이 제목에 들어간 1쪽 관세 정책 브리핑

코드 용어
저장소의 실제 코드이 파일에서 확인
R/export_website_data.Re269ae4
# F1: Daily ETR
if (daily_etr_available && exists("fig1_data_etr")) {
  fig1_csv <- fig1_data_etr %>% dplyr::select(Date, `Weighted ETR`)
  write_website_csv(fig1_csv, "F1_daily_etr.csv", "F1")
}

# F2: Effective Tariff Rate
fig2_csv <- fig2_data %>% dplyr::select(Date, `Effective tariff rate (%)`, `2022-2024 average (%)`)
write_website_csv(fig2_csv, "F2_effective_tariff_rate.csv", "F2")
코드가 하는 일
  1. 1

    일별 가중 유효 관세율 데이터가 있을 때만 F1 CSV를 씁니다.

  2. 2

    F2는 날짜, 유효 관세율, 2022-24 평균 세 열을 고릅니다.

  3. 3

    각 표를 웹사이트용 파일 이름과 그림 식별자로 저장합니다.

새 상황에 적용하기

GitHub CSV의 마지막 날짜는 4월이고 공식 Tracker는 7월까지 반영합니다.

8월 브리핑의 현재 수치는 어디에서 인용해야 하나요?

이번 코스의 결과물

기준일·출처·시나리오가 표시된 한국 수출품 관세 브리핑

제출 전 확인

  • 공식 Tracker 기준일과 GitHub 커밋일이 모두 표시됐다.
  • 유료 원자료와 공개 캐시의 재현 범위를 구분했다.
  • 기준선·시나리오·단위를 그래프 옆에 적었다.
  • 관세와 결과의 관계를 단일 원인으로 단정하지 않았다.

7분 세미나 질문

정책이 빠르게 바뀌는 분야에서 재현 가능한 구형 코드와 최신 비공개 계산 중 무엇을 더 신뢰해야 하나요?

다음 코스

AI 가상 시민을 만들고, 믿지 않는 법 배우기

과정 보기