기본 결과도 유효한 JSON이었지만, 자동화용 값은 정돈되지 않았습니다.

첫 요청은 객체 8개와 한국어 키 다섯 개를 만들었고 JSON 문법도 유효했습니다. 하지만 마감일에 점, 슬래시, 한글 날짜가 섞였고 상태값도 진행중·완료·대기 그대로였습니다. A-07의 빈 담당은 문자열 ‘담당 기록 없음’으로 남았습니다.

두 번째 요청에 키 이름과 순서, 날짜 형식, 상태 매핑과 null 규칙을 적자 8개 객체가 같은 스키마를 사용했습니다. 모든 날짜와 상태값이 지정 집합을 따랐고 담당 누락 한 건은 null이 됐습니다.

판단

JSON 자동화에서는 ‘JSON으로’만 요청하지 말고 키 이름·순서·타입·허용값·null 규칙을 적은 뒤 실제 JSON.parse와 스키마 검사를 모두 통과시켜야 합니다.

개인정보 없는 가상 작업 8줄에 날짜와 누락값을 섞었습니다.

작업 ID A-01부터 A-08까지를 고정하고 마감일은 ISO 1종과 비표준 6종, 총 일곱 표기로 섞었습니다. A-07의 담당만 ‘기록 없음’으로 두었고 상태는 진행중, 완료, 대기 세 표현을 사용했습니다.

두 결과는 화면 원문을 별도 데이터 파일에 옮겨 객체 수, 키 배열, 날짜 정규식, 상태 허용값과 null을 코드로 검사했습니다. 실제 직원 이름, 고객 데이터와 회사 프로젝트는 사용하지 않았습니다.

가상 작업 메모 8줄

A-01 | 제목 검수 | 편집 | 2026.08.07 | 진행중 A-02 | 이미지 대체텍스트 | 디자인 | 8월 7일 | 완료 A-03 | 링크 확인 | 편집 | 2026/08/08 | 대기 A-04 | 모바일 점검 | 개발 | 08-08 | 진행중 A-05 | 출처 확인 | 편집 | 2026년 8월 9일 | 완료 A-06 | 구조화 데이터 | 개발 | 8/9 | 대기 A-07 | 광고 위치 검토 | 담당 기록 없음 | 2026-08-10 | 진행중 A-08 | 최종 교정 | 편집 | 8월 10일 | 대기
입력
가상 작업 8줄
A 요청
한국어 키 5개
B 요청
영어 스키마 + 규칙 8개
판정
16객체·80필드
누락값
A-07 담당 1건
개인정보
실제 정보 없음

A. 기본 JSON 요청

아래 가상 작업 메모 8줄을 JSON 배열로 바꿔줘. 각 객체에 작업ID, 작업명, 담당, 마감일, 상태를 넣고 설명 없이 JSON만 보여줘.

B. 스키마 조건 8개

같은 가상 작업 메모를 다시 JSON 배열로 바꿔줘. 아래 8개 조건을 모두 지켜줘. 1) 정확히 8개 객체, 2) 키는 id·title·owner·due·status 다섯 개만 이 순서로 사용, 3) due는 모두 2026-08-DD, 4) 담당 기록 없음은 owner:null, 5) 진행중=in_progress·완료=done·대기=pending으로 변환, 6) 원문 순서 유지, 7) 원문에 없는 값을 추측하지 않기, 8) 마크다운 설명 없이 유효한 JSON 배열만 보여줘.

파싱은 됐지만 날짜와 상태값은 원문 형식 그대로였습니다.

첫 출력은 대괄호 안에 객체 8개가 들어간 유효한 JSON이었습니다. 작업 ID와 작업명, 원문 순서도 모두 보존했습니다. 단순히 데이터를 잃지 않고 JSON으로 옮기는 목적에는 맞았습니다.

자동화 입력으로는 재가공이 필요했습니다. ISO 날짜는 A-07 한 건뿐이었고 키는 한국어였습니다. 상태값도 세 한국어 표현을 그대로 사용했고 담당이 없는 A-07은 null이 아니라 문장형 문자열이었습니다.

기본 요청 JSON의 A-01부터 A-04 일부가 보이는 실제 Gemini 화면원본 크기로 보기
A 결과 앞부분. 유효한 JSON이지만 날짜와 상태가 원문 형식입니다.
기본 요청 JSON의 마지막 A-08 객체까지 보이는 실제 화면원본 크기로 보기
A 결과 끝부분. A-06부터 A-08과 배열이 닫힌 위치를 확인할 수 있습니다.

스키마를 적자 키와 날짜, 상태와 null이 모두 규칙을 따랐습니다.

두 번째 출력의 모든 객체는 id, title, owner, due, status 다섯 키를 같은 순서로 사용했습니다. due는 2026-08-07부터 2026-08-10까지 ISO 형식이었습니다.

상태는 in_progress, done, pending 세 값만 사용했고 A-07의 owner는 null이었습니다. 원문에 없는 담당자를 추측하지 않았습니다. 결과 문자열을 JSON으로 파싱하는 검사도 통과했습니다.

고정 스키마 JSON의 A-01부터 A-03 일부가 보이는 실제 Gemini 화면원본 크기로 보기
B 결과 앞부분. 다섯 키와 ISO 날짜, 영문 상태값이 보입니다.
고정 스키마 JSON의 A-08 객체까지 보이는 실제 Gemini 화면원본 크기로 보기
B 결과 끝부분. A-07의 null 처리와 마지막 A-08, 배열이 닫힌 위치를 확인할 수 있습니다.

JSON 객체 16개와 80개 필드를 코드로 다시 검사한 결과

검사항목기본 요청스키마 조건판정
JSON 파싱통과통과둘 다 통과
객체 수8 / 88 / 8둘 다 통과
고정 키 5개0 / 88 / 8조건형 통과
날짜 2026-08-DD1 / 88 / 8조건형 통과
상태 허용값0 / 88 / 8조건형 통과
누락 담당 null0 / 11 / 1조건형 통과

두 결과 모두 JSON 문법은 유효했습니다. 고정 스키마는 키 이름과 순서가 id·title·owner·due·status와 완전히 같을 때만 통과했고 날짜·상태·null은 사전 규칙으로 따로 검사했습니다.

스키마

0 → 8다섯 키 통과 객체

정규화

1 → 8ISO 날짜 객체
A. 기본 요청 JSON 객체 8개
  1. 01

    {"작업ID":"A-01","작업명":"제목 검수","담당":"편집","마감일":"2026.08.07","상태":"진행중"}

    날짜
    원문 형식
    작업ID · 작업명 · 담당 · 마감일 · 상태
  2. 02

    {"작업ID":"A-02","작업명":"이미지 대체텍스트","담당":"디자인","마감일":"8월 7일","상태":"완료"}

    날짜
    원문 형식
    작업ID · 작업명 · 담당 · 마감일 · 상태
  3. 03

    {"작업ID":"A-03","작업명":"링크 확인","담당":"편집","마감일":"2026/08/08","상태":"대기"}

    날짜
    원문 형식
    작업ID · 작업명 · 담당 · 마감일 · 상태
  4. 04

    {"작업ID":"A-04","작업명":"모바일 점검","담당":"개발","마감일":"08-08","상태":"진행중"}

    날짜
    원문 형식
    작업ID · 작업명 · 담당 · 마감일 · 상태
  5. 05

    {"작업ID":"A-05","작업명":"출처 확인","담당":"편집","마감일":"2026년 8월 9일","상태":"완료"}

    날짜
    원문 형식
    작업ID · 작업명 · 담당 · 마감일 · 상태
  6. 06

    {"작업ID":"A-06","작업명":"구조화 데이터","담당":"개발","마감일":"8/9","상태":"대기"}

    날짜
    원문 형식
    작업ID · 작업명 · 담당 · 마감일 · 상태
  7. 07

    {"작업ID":"A-07","작업명":"광고 위치 검토","담당":"담당 기록 없음","마감일":"2026-08-10","상태":"진행중"}

    날짜
    통일
    작업ID · 작업명 · 담당 · 마감일 · 상태
  8. 08

    {"작업ID":"A-08","작업명":"최종 교정","담당":"편집","마감일":"8월 10일","상태":"대기"}

    날짜
    원문 형식
    작업ID · 작업명 · 담당 · 마감일 · 상태
B. 스키마 요청 JSON 객체 8개
  1. 01

    {"id":"A-01","title":"제목 검수","owner":"편집","due":"2026-08-07","status":"in_progress"}

    날짜
    통일
    id · title · owner · due · status
  2. 02

    {"id":"A-02","title":"이미지 대체텍스트","owner":"디자인","due":"2026-08-07","status":"done"}

    날짜
    통일
    id · title · owner · due · status
  3. 03

    {"id":"A-03","title":"링크 확인","owner":"편집","due":"2026-08-08","status":"pending"}

    날짜
    통일
    id · title · owner · due · status
  4. 04

    {"id":"A-04","title":"모바일 점검","owner":"개발","due":"2026-08-08","status":"in_progress"}

    날짜
    통일
    id · title · owner · due · status
  5. 05

    {"id":"A-05","title":"출처 확인","owner":"편집","due":"2026-08-09","status":"done"}

    날짜
    통일
    id · title · owner · due · status
  6. 06

    {"id":"A-06","title":"구조화 데이터","owner":"개발","due":"2026-08-09","status":"pending"}

    날짜
    통일
    id · title · owner · due · status
  7. 07

    {"id":"A-07","title":"광고 위치 검토","owner":null,"due":"2026-08-10","status":"in_progress"}

    날짜
    통일
    id · title · owner · due · status
  8. 08

    {"id":"A-08","title":"최종 교정","owner":"편집","due":"2026-08-10","status":"pending"}

    날짜
    통일
    id · title · owner · due · status

JSON을 자동화 입력으로 넘기기 전 5단계

  1. 01
    입력 행에 고유 키를 둡니다.

    누락과 중복 객체를 원문과 대조할 기준을 만듭니다.

  2. 02
    키 이름과 타입을 명시합니다.

    문자열, 숫자, 불리언과 null을 필드별로 정합니다.

  3. 03
    날짜와 상태의 허용값을 고정합니다.

    다운스트림 코드가 예상하는 형식만 사용하게 합니다.

  4. 04
    빈 값 처리 규칙을 적습니다.

    모르는 값을 추측하지 않고 null 또는 지정 문자열로 둡니다.

  5. 05
    파싱과 스키마 검사를 코드로 실행합니다.

    화면 모양이 아니라 실제 데이터 구조를 확인합니다.

이번 테스트가 확인하지 않은 것

  • 가상 작업 8줄 한 세트를 JSON으로 두 번 변환한 결과입니다.
  • 실제 직원·고객·프로젝트 정보는 입력하지 않았습니다.
  • API 호출, 웹훅, 데이터베이스 저장과 자동 실행을 수행하지 않았습니다.
  • 스키마 검사는 이 글의 다섯 키와 세 상태값에 한정됩니다.
  • 처리 시간, 오류율, 업무 비용과 수익 변화는 측정하지 않았습니다.

판정 기준을 정할 때 확인한 공식 출처

Google은 원하는 작업과 출력 형식을 구체적으로 지정하는 방식을 안내합니다. JSON의 기본 문법은 RFC 8259를 기준으로 확인했고, 응답 내용은 별도 규칙으로 다시 검증했습니다.

  1. 01맞춤 Gem을 만들기 위한 도움말
  2. 02RFC 8259 — JSON 데이터 교환 형식
  3. 03Gemini 앱의 응답에 관해 알아보기

최종 확인: 2026년 8월 1일