AI 보이는 추론 실험실 · 중복 키와 파서 정책

JSON에 같은 이름의 항목이 두 번 나오면 AI는 어느 값을 읽을까?

같은 키가 두 번 나오면 첫 값·마지막 값·오류·전체 보존처럼 구현마다 결과가 달라질 수 있습니다. 값과 처리 정책을 바꿔 비교합니다.

탐구게시 2026-10-05읽기·실험 약 14분확인 문제 2개규칙 기반 실행한국논리학협회 자체 제작제작·검수 LTCT 편집부

공공 기록 작업실에서 성인 자료 담당자 세 명이 같은 표식의 두 폴더를 비교하고 작은 공식 갈색 안경 올빼미가 충돌 카드를 들어 보이는 장면
주제 이해를 돕기 위한 AI 생성 이미지 · LTCT 자체 제작
오늘의 질문

같은 객체 안에 status가 ‘공개’와 ‘비공개’로 두 번 적히면 어느 것이 진짜일까요?

status 키가 두 번 있는 JSON 객체가 첫 값 유지·마지막 값 유지·오류 거부·두 값 보존의 네 처리 경로로 갈라지는 관계 그림입니다.
status 키가 두 번 있는 JSON 객체가 첫 값 유지·마지막 값 유지·오류 거부·두 값 보존의 네 처리 경로로 갈라지는 관계 그림입니다. · 한국논리학협회 자체 제작
그림 크게 보기 ↗
01

문법으로 읽힌다는 것과 같은 의미로 읽힌다는 것은 다릅니다

RFC 8259는 객체 안의 이름이 고유해야 한다고 권고합니다. 중복이면 많은 구현은 마지막 값만 보고하지만, 어떤 구현은 오류를 내거나 모든 값을 보존합니다.

참고 · Tim Bray 편집 · IETF — JSON 데이터 교환 형식 ↗

02

생성기와 실행기가 다르면 검증을 비껴갈 수 있습니다

앞단 검증기는 첫 값을 보고 ‘공개’를 허용했는데 뒤 실행기는 마지막 ‘비공개’를 쓰거나 그 반대가 되면 정책 판단이 어긋납니다.

AI가 만든 JSON도 신뢰 경계를 통과할 때 스키마 검증기로 중복 이름을 거부하고, 정규화된 한 표현만 다음 단계로 넘겨야 합니다.

03

값이 같아도 중복 구조는 제거해야 합니다

두 status가 모두 ‘공개’라면 당장 결론은 같아 보이지만, 다음 수정에서 하나만 바뀌면 잠복 충돌이 드러납니다.

따라서 결과값 일치보다 객체 이름의 유일성이라는 구조 조건을 검사하는 편이 안전합니다.

직접 확인하기 · 규칙 기반 실행

두 값과 중복 키 처리 정책을 바꾸며 수신 결과 비교하기

RFC 8259가 설명하는 구현 차이를 네 가지 명시적 정책으로 단순화했습니다. 실제 라이브러리의 보안성이나 특정 AI 모델의 출력을 측정하지 않습니다.

입력{ status: 공개, status: 비공개 }
처리 결과읽기 중단
수신 여부거부
적용 규칙중복 이름을 오류로 거부
정책이 달라지면 같은 텍스트의 의미가 달라질 수 있습니다.

RFC 8259는 객체 이름이 고유해야 한다고 권고하며, 중복일 때 구현 행동이 달라질 수 있다고 설명합니다. 생성 단계에서 중복 키를 만들지 않고 수신 단계에서 명시적으로 검증해야 합니다.

관계를 읽고, 다른 상황에 적용하기

두 문제로 생각 확인

1RFC 8259가 객체 이름에 권고하는 조건은?
2중복 키가 있는 AI 구조화 출력을 가장 안전하게 다루는 방법은?

두 문제의 답을 모두 선택하면 해설을 볼 수 있습니다.

나의 설명으로 마무리

오늘 발견한 관계

0 / 4,000자

메모는 현재 기기의 브라우저에만 보관됩니다. 계정이나 다른 기기에는 동기화되지 않습니다.

출처와 제작 안내

원문을 참고해 설명·도표·문항·실험을 새로 작성했습니다. 별도 표시가 없는 사례와 수치는 학습을 위한 가상 예시입니다. 원문 번역이나 실제 모델의 성능 평가 자료가 아닙니다.

  1. JSON 데이터 교환 형식 ↗Tim Bray 편집 · IETFRFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format

    2017년 12월 표준 원문 전체를 확인했습니다. 정수는 [−(2^53)+1, (2^53)−1] 범위에서 널리 정확히 상호운용되고, 객체 이름은 고유해야 하며 중복 이름의 수신 동작은 구현마다 다를 수 있다고 설명합니다.