앞 편 동시에 여러 개 굴린다까지 오면 만들고 공개하는 바퀴는 돌아갑니다. 그런데 공개한 뒤 "잘 됐는지"를 무엇으로 알 수 있을까요. 아웃풋을 정한다에서 정한 추적할 숫자 하나를 실제로 줍는 장치가 이번 편의 주제입니다. 이 장치는 공개 전에 심어야 합니다. 다음 편 개선 루프를 돌린다는 이 숫자를 연료로 돕니다.
핵심 요약
- GA4는 숫자를 모으고 보여 주는 곳, GTM은 어떤 행동을 어떤 조건에서 보낼지 정하는 곳입니다.
- 계측은 공개 전에 심습니다. 공개 후에 넣으면 그 사이의 데이터는 영영 없습니다.
- 심는 작업은 Issue 1건으로 AI에게 넘깁니다. 관리 화면을 사람이 헤맬 필요가 없습니다.
- 사람이 정할 것은 무엇을 셀지, 그리고 내 접속을 제외할지 두 가지뿐입니다.
GA4와 GTM의 역할 분담
Google Analytics 4(GA4)는 방문과 행동 데이터를 받아서 저장하고 보고서로 보여 주는 서비스입니다. Google Tag Manager(GTM)는 사이트 코드를 고치지 않고 태그를 관리하는 도구로, 페이지에 컨테이너 코드를 한 번 넣어 두면 이후 어떤 태그를 언제 보낼지는 GTM 화면에서 정합니다. GTM의 세 가지 개념만 알면 됩니다. 태그는 보낼 것, 트리거는 보낼 조건, 변수는 그 둘을 채우는 값입니다.
바이브 코딩에서 둘을 나누는 이유는 단순합니다. "링크를 눌렀다"는 사실을 GA4에 보내는 것이 태그이고, "메일에서 온 방문자가 원문 링크를 눌렀을 때"가 트리거입니다. 추적할 숫자가 바뀌면 코드를 다시 배포하지 않고 GTM에서 트리거만 바꾸면 됩니다. 물론 화면이 단순한 도구라면 GTM 없이 GA4 태그만 직접 넣어도 됩니다. 어느 쪽이든 결정은 AI에게 맡기고 조건만 주면 됩니다.
"공개하고 나서 넣는다"가 반드시 늦는 이유
공개 직후가 가장 많은 것을 배울 수 있는 시간입니다. 처음 써 보는 사람이 어디서 멈추는지, 링크를 누르는지 안 누르는지가 첫 주에 다 드러납니다. 계측을 공개 후에 넣으면 이 첫 주가 통째로 비고, 그 데이터는 다시 얻을 수 없습니다. GA4의 데이터 필터도 적용 이후의 데이터에만 영향을 주며 과거로 소급되지 않습니다.
우리 7주차 교재의 무인 잡 완료 기준을 떠올려 보세요. "만들었을 때가 아니라 로그를 확인할 때 믿을 수 있다"고 했습니다. 계측은 화면이 있는 도구의 로그입니다. 로그 없이 공개하는 것은 실행 결과를 안 보고 무인 잡을 돌리는 것과 같습니다.
화면이 없는 도구라면 계측은 로그 표입니다. 이것도 공개 전에 심습니다.
날짜 실행 성공 새 공고 메일 발송 링크 클릭
2026-09-01 08:00 O 3 1 (GA4 또는 메일 서비스 통계)
2026-09-02 08:00 X 실패: 원본 사이트 응답 없음
실패한 날을 실패로 남기는 것이 핵심입니다. 성공만 기록하는 로그는 숫자를 부풀립니다.
심는 작업도 AI에게 통째로 넘길 수 있다
GA4 속성 만들기, 측정 ID 발급, GTM 컨테이너 생성, 페이지에 코드 삽입, 이벤트 태그와 트리거 설정. 이 전부가 Issue 1건입니다. 사람은 완료 조건만 적습니다.
Issue: 추적할 숫자 계측 심기
완료 조건
- GA4 속성과 GTM 컨테이너가 생성되어 있고 컨테이너 코드가 모든 페이지에 들어간다
- "원문 링크 클릭" 이벤트가 GA4 실시간 보고서에 보인다
- 내 접속(사무실, 집)은 내부 트래픽으로 제외된다
- 설정 화면 경로와 확인 방법을 docs/measure.md에 적는다
- 측정 ID 같은 값은 코드에 직접 쓰지 않고 환경 변수로 둔다
GTM에는 미리보기 기능과 버전 게시 기능이 있습니다. 태그와 트리거를 만든 뒤 미리보기로 실제 페이지에서 이벤트가 잡히는지 확인하고, 확인된 상태를 버전으로 게시합니다. 이 순서도 완료 조건에 넣어 두면 AI가 "미리보기에서 확인한 뒤 게시했다"까지 보고합니다.
Claude Code는 관리 화면을 대신 클릭해 주지는 못하지만, 어느 메뉴에서 무엇을 설정해야 하는지 단계별로 안내하고 코드 쪽은 직접 넣습니다. 화면 설정이 막히면 캡처를 붙여 넣고 물으면 됩니다. 공식 문서대로 이미지는 Claude Code 창에 끌어다 놓거나 붙여 넣기로 전달할 수 있습니다.
사람이 정하는 건 "무엇을 계측할 것인가"뿐
정확히는 두 가지입니다. 첫째, 무엇을 셀 것인가. 앞 편에서 정한 추적할 숫자 하나가 그 답입니다. 둘째, 나를 제외할 것인가. 답은 항상 "제외한다"입니다. 만든 사람이 매일 열어 보는 접속이 섞이면 숫자가 부풀고, 부푼 숫자로는 접을지 고칠지 판단할 수 없습니다.
GA4에서 내부 트래픽 제외는 두 단계입니다. 관리 > 데이터 스트림 > 웹 스트림 선택 > 태그 설정 구성 > 내부 트래픽 정의에서 내 IP를 규칙으로 등록하고(기본 traffic_type 값은 internal), 관리 > 데이터 필터에서 내부 트래픽 필터를 만듭니다. 필터 상태는 테스트, 활성, 비활성 셋이며 적용까지 24~36시간이 걸릴 수 있습니다. 한 번 적용된 필터의 효과는 되돌릴 수 없으므로 테스트 상태로 먼저 확인하는 것이 안전합니다. 이 경로는 AI가 안내하고, IP 값만 사람이 확인해 줍니다.
해 보기
docs/output.md의 추적할 숫자를 읽고, 그것이 어떤 행동(클릭, 제출, 다운로드)인지 한 줄로 적습니다.- 위 Issue를 만들어 Claude Code에 넘깁니다.
- 돌아오면 GA4 실시간 보고서를 열고 직접 그 행동을 해서 이벤트가 찍히는지 확인합니다.
- 내부 트래픽 필터를 테스트 상태로 두고 하루 뒤 내 접속이 표시되는지 봅니다.
docs/measure.md를 읽고, 설명할 수 없는 항목이 있으면 AI에게 한 줄씩 풀어 달라고 합니다.
정리
- GA4는 모으고 보여 주는 곳, GTM은 무엇을 언제 보낼지 정하는 곳입니다.
- 계측은 공개 전에 심습니다. 놓친 첫 주는 돌아오지 않습니다.
- 심는 일은 Issue 1건으로 AI에게 넘기고, 확인은 실시간 보고서로 합니다.
- 사람은 무엇을 셀지와 내 접속 제외만 정합니다.
자주 묻는 질문
GA4와 GTM은 무엇이 다른가요?
GA4는 데이터가 쌓이고 보고서가 나오는 곳이고, GTM은 어떤 행동을 어떤 조건에서 GA4로 보낼지를 코드 수정 없이 관리하는 도구입니다. GTM 없이 GA4만 써도 되지만, 추적할 숫자가 바뀔 때마다 배포를 다시 하고 싶지 않다면 GTM을 사이에 둡니다.
계측은 왜 공개 전에 심어야 하나요?
공개 첫 주의 데이터가 가장 값지고, 그 데이터는 나중에 얻을 수 없기 때문입니다. GA4 필터와 설정은 적용 이후에만 작동하고 과거로 소급되지 않습니다. 공개 후에 심으면 첫 바퀴의 판단을 감으로 해야 합니다.
관리 화면이 복잡한데 직접 설정해야 하나요?
코드 쪽은 AI가 넣고, 관리 화면은 AI가 메뉴 경로를 단계별로 안내합니다. 막히는 화면은 캡처해서 붙여 넣고 물으면 됩니다. 사람이 손으로 하는 것은 로그인과 IP 값 입력 정도입니다.
내 접속은 왜 제외해야 하나요?
만든 사람이 가장 자주 들어가기 때문입니다. 제외하지 않으면 숫자가 부풀어 "쓸 만한가"를 판단할 수 없고, 접을지 고칠지의 기준이 무너집니다. GA4의 내부 트래픽 정의와 데이터 필터로 제외하며, 적용까지 시간이 걸리니 공개 전에 마칩니다.
화면이 없는 프로젝트도 GA4가 필요한가요?
아니요. 메일 알림이나 서버 무인 잡처럼 화면이 없으면 GA4 대신 실행 로그와 카운터가 계측입니다. 매일 성공과 실패, 처리 건수를 로그 파일이나 표에 남기게 하고, 그 표를 매주 읽는 것이 같은 역할을 합니다. 원칙은 같습니다. 공개 전에 심고, 내 테스트 실행은 제외합니다.