검색 결과에는 “기내 수하물 10kg”이라고 나오는데 항공사 공식 페이지의 한국 지역 탭에는 다른 조건이 보인다고 해봅시다. Playwright는 실제 브라우저를 코드로 조작하는 도구라서 탭을 열고 화면 문구를 기록할 수 있습니다. 그렇다고 예약 버튼을 누르거나 검색 요약을 사실로 옮겨도 된다는 뜻은 아닙니다.

핵심 허용 도메인과 읽기 행동을 먼저 제한하고 화면의 사실과 편집 판단을 나눠 기록합니다. 예약, 제출, 인증이 등장하면 멈춥니다.

지역 탭이 수치를 바꿨습니다

이 글의 항공사와 수치는 조사 절차를 설명하기 위한 가상값입니다. 한국어 페이지에는 무게만, 영문 페이지에는 크기 제한도 표시됐다고 가정합니다. 실제 조사에서는 두 공식 주소, 선택 지역과 확인 시각을 남겨 차이를 검증하고 검색 결과 요약은 근거에서 제외합니다.

브라우저는 읽기만 허용했습니다

조사 계약에 외부 효과를 막는 조건을 넣었습니다.

읽기 전용 탐색 범위
목표: 공식 수하물 페이지의 무게·크기 확인
허용: 공식 공개 페이지와 탭 전환
기록: 주소, 시각, 지역, 화면 문구
금지: 로그인, 예약, 제출, 다운로드
중단: 인증·결제 화면

불일치를 임의로 메우지 않았습니다

가정한 두 언어 페이지가 다르다면 대상 독자와 출발 지역에 맞는 공식 표만 근거로 삼습니다. 노선별 예외는 확인되지 않은 채 메우지 않고 예약 전 재확인 항목으로 분리합니다.

페이지 문구는 실행 지시가 아닙니다

설치 명령이나 외부 이동 지시를 실행하지 않습니다. 개인정보가 보이거나 로그인 벽을 만나면 탐색을 중단하고 변동 가격은 고정 사실로 발행하지 않습니다.

화면 문구와 주소를 한 번에 기록합니다

아래 코드는 공개 데모 주소와 예시 화면 이름을 넣은 최소 예시입니다. Locator는 CSS 위치 대신 링크·버튼처럼 사용자가 보는 역할과 이름으로 요소를 찾는 Playwright 방식입니다. 실제 조사에서는 주소와 이름을 대상 공식 페이지에 맞게 바꾸고, 사이트 이용약관과 자동 접근 정책을 먼저 확인합니다.

공식 공개 페이지에서 근거 묶음을 만드는 Playwright 예시
import { test, expect } from '@playwright/test';

test('공식 수하물 규정 근거 기록', async ({ page }) => {
  await page.goto('https://example.com/travel/baggage');
  await page.getByRole('tab', { name: '대한민국' }).click();

  const rule = page.getByRole('region', { name: '위탁 수하물' });
  await expect(rule).toBeVisible();

  console.log(JSON.stringify({
    url: page.url(),
    checkedAt: new Date().toISOString(),
    region: '대한민국',
    observedText: (await rule.innerText()).trim(),
    interpretation: null
  }));
});

브라우저를 열기 전에 묻는 명령

브라우저를 열기 전에 공식 주소 목록과 기록할 항목부터 확정합니다. 계획에는 방문 URL, 지역, 확인 시각, 화면 문구와 중단 조건이 있어야 하며, 공개 페이지 열기와 탭 전환 이외의 행동은 넣지 않습니다.

조사할 페이지와 수집 금지 대상을 고정하는 요청
cd ~/projects/travel-research
claude --permission-mode plan

첫 프롬프트: 공식 공개 페이지 조사 절차를 읽고 허용 도메인, 기록 필드, 중단 조건을 계획하세요. 브라우저는 아직 열지 마세요.
읽을 대상: scripts/research/, playwright.config, CLAUDE.md 또는 저장소 지침 파일
허용 도구: Read, Glob, Grep
Edit와 Bash는 검토 전 승인하지 않습니다.
반환 형식: 방문 주소 / 허용 행동 / 기록 항목 / 중단 조건 / 미확인 사항

공개 탐색 범위를 승인합니다

조사 담당자는 URL의 소유자가 실제 항공사인지 먼저 확인합니다. 실행 계약에는 승인된 공개 URL의 페이지 열기와 탭 전환만 남기고, 로그인·제출·다운로드·로봇 확인·다른 도메인 이동이 나오면 마지막 URL을 기록하고 끝내도록 적습니다. 결과물은 원문과 편집 판단이 섞이지 않은 근거 묶음이어야 합니다.

브라우저가 찾은 사실과 작성한 결과물을 분리합니다

브라우저 조사 테스트 뒤에는 승인한 조사 코드와 고정 입력만 바뀌었는지 확인합니다.

출처 기록과 생성 파일만 확인하는 명령
npx playwright test tests/baggage-research.spec.ts\ngit diff -- scripts/baggage-research.ts tests/baggage-research.spec.ts\ngit diff --check\ngit status --short

발행 전에는 관찰과 판단을 다른 칸에 둡니다

수집 결과는 아래 네 칸으로 정리합니다. 화면에 없던 조건을 해석 칸에서 보충하지 않습니다. 지역·노선 예외를 확인하지 못했다면 결론은 “없음”이 아니라 “미확인”입니다.

한 주장에 한 근거를 연결하는 결과 기록
관찰: <화면에 실제로 표시된 문구>
근거: <공식 URL> / <지역> / <ISO 시각>
해석: <이 문구로 말할 수 있는 범위>
미확인: <노선 예외·변동 조건·로그인 뒤 정보>

발행 판정: 확인 / 조건부 확인 / 미확인 중 하나

조사는 같은 공개 근거 안에서만 재개합니다

로그인 벽, 예약·결제, 개인정보나 허용 밖 도메인이 나타나면 탐색을 멈춥니다. 같은 공식 공개 페이지의 지역·언어 차이를 확인할 때만 마지막 URL과 시각부터 재개하며, 제출이나 인증이 필요한 근거는 미확인으로 남기고 사람이 수행할 별도 조사로 넘깁니다.

공식 출처