JSON Patch 빌더 (RFC 6902)
개발
RFC 6902 JSON Patch는 JSON 문서 변경 사항 기술하는 와이어 포맷 — PATCH 요청·낙관적 업데이트·되돌리기 히스토리·운영 변환에 유용. 이 툴은 양방향 처리: source와 target JSON 붙여넣기 → 하나를 다른 하나로 변환하는 최소 patch 획득, 또는 source와 patch 붙여넣기 → 적용 후 결과 확인. diff는 슬래시·틸드 포함 키에 `~0`/`~1` JSON Pointer 이스케이프 사용한 재귀 구조 비교. apply 쪽은 6개 작업 모두 존중 — `test`(어설션 실패 시 에러)·`copy`·`move` 포함. 서버 호출 전 patch 테스트, 예시로 올바른 작업 찾을 때 유용.
—
Patch (RFC 6902)
[
{
"op": "replace",
"path": "/age",
"value": 31
},
{
"op": "replace",
"path": "/address/city",
"value": "Busan"
},
{
"op": "remove",
"path": "/address/zip"
},
{
"op": "add",
"path": "/address/country",
"value": "KR"
},
{
"op": "replace",
"path": "/tags/1",
"value": "owner"
},
{
"op": "add",
"path": "/tags/2",
"value": "user"
}
]순수 RFC 6902 — add·remove·replace·move·copy·test 작업과 `~0`/`~1` 포인터 이스케이프 지원.
사용법
- Diff 모드: source와 target 붙여넣기 → patch JSON 확인. 한쪽 편집 → patch 변화 확인.
- Apply 모드: source와 patch 배열 붙여넣기 → 결과 문서 확인. 에러(잘못된 포인터·실패한 `test`) 인라인 표시.
- JSON Pointer 구문: `/foo/0/bar`는 `foo.0.bar` 탐색. `/`는 `~1`로, `~`는 `~0`으로 이스케이프. 배열 경로의 후행 `-`는 '추가' 의미.
자주 묻는 질문
- 왜 새 문서 그냥 안 보내?
- 첫째 대역폭. 둘째 동시성: Alice와 Bob 둘 다 문서 편집 시 patch는 의미적으로 병합 가능(`replace /name`은 `add /tags/-`과 호환), 두 전체 문서는 승자 선택해야 함. 게다가 patch는 무엇이·언제 변경됐는지 정확한 감사 기록.
- JSON Merge Patch (RFC 7396)와 같나?
- 아니. Merge Patch는 더 단순 — 존재하는 키가 덮어쓰고 `null`이 삭제하는 부분 문서 전송. 사람엔 쉽지만 정밀도 손실(배열 추가 불가·리터럴 `null` 값 표현 불가·원자적 test 없음). RFC 6902(이 툴)은 정밀 와이어 포맷. RFC 7396은 편의 포맷.
관련 도구
JWT 디코더
JWT의 헤더·클레임·만료를 즉시 확인하세요.
개발00
UUID 생성기
무작위 버전4 UUID를 여러 개 한 번에 생성하고 복사하세요.
개발00
해시 생성기 (SHA)
텍스트로 SHA-1·SHA-256·SHA-384·SHA-512 해시를 생성하세요.
개발00
URL 인코더 / 디코더
URL용으로 텍스트를 퍼센트 인코딩하거나, 인코딩된 URL을 디코딩하세요.
개발00
Base64 인코더 / 디코더
텍스트를 Base64로 인코딩하거나 다시 텍스트로 디코딩하세요.
개발00
JSON 포맷터 & 검증기
브라우저에서 바로 JSON을 포맷·정렬·압축·검증하세요.
개발00