JSONPath는 JSON 문서에서 지정된 데이터를 추출하기 위한 경로 표현식 언어로, XML에 대한 XPath와 같은 역할을 합니다. API 개발과 테스트에서 API가 반환하는 JSON은 계층이 깊고 중첩이 많은 경우가 많아 수동으로 펼쳐서 계층을 따라 필드를 찾는 것은 비효율적이고 오류가 발생하기 쉽습니다. JSONPath를 사용하면 한 줄의 표현식으로 대상 데이터를 정확하게 찾아 추출할 수 있어 API 디버깅, 자동화 테스트, 데이터 추출 현장에서 개발자에게 필수적인 도구입니다.
JSONPath의 핵심 설계 사상은 경로 기호를 사용하여 데이터의 위치를 기술하는 것입니다: $는 루트 노드(전체 JSON 객체)를 나타내고, 점 . 또는 대괄호 []로 자식 속성에 접근하며, [n]으로 인덱스에 따라 배열 요소에 접근하고, [*]로 모든 요소와 매치하고, [start:end]로 배열의 일부를 잘라내고, ?()로 조건에 따라 배열 요소를 필터링합니다. 이 문법은 간결하지만 표현력이 높아 대다수의 데이터 추출 요구를 커버할 수 있습니다.
조건 필터링은 JSONPath의 가장 실용적인 기능 중 하나로 ?(@.필드 연산자 값) 형식으로 필터링 로직을 기술합니다. 예를 들어 ?(@.price < 100)은 price 필드가 100 미만인 배열 항목을 필터링하고 ?(@.status == 'active')는 status가 active인 레코드를 필터링합니다. @는 현재 순회 중인 배열 요소를 나타내며 @.field로 현재 요소의 특정 필드에 접근할 수 있어 조건 필터링이 매우 직관적입니다.
왜 코드 내에서 직접 디버깅하는 대신 전용 JSONPath 도구가 필요할까요? API 자동화 어설션이나 데이터 추출 코드를 작성할 때 JSONPath를 잘못 작성하면 API를 반복 실행하고 로그를 출력하며 코드를 수정하고 다시 실행해야 하므로 매우 비효율적입니다. 온라인 도구에서의 대화형 디버깅은 초 단위로 결과를 확인할 수 있고 표현식을 조정하면 즉시 피드백을 얻을 수 있어 정확한지 확인한 후 코드에 복사하면 디버깅 시간을 크게 절약할 수 있습니다.
테이블 뷰는 많은 유사 도구와 다른 본 도구의 실용적인 기능입니다: 쿼리 결과가 객체 배열인 경우(이는 가장 일반적인 API 응답 리스트 형식입니다), 모든 객체의 키를 자동으로 추출하여 헤더로 만들고 각 행의 데이터를 정렬하여 표시합니다. Excel 테이블과 같은 열람 경험으로 들여쓰기된 JSON 내에서 행별로 필드 값을 찾는 것보다 훨씬 직관적이며 여러 레코드의 필드 차이를 한눈에 비교할 수 있습니다.
JSON 오류 자동 복구도 실제 개발 현장을 고려하여 설계된 기능입니다: 로그, 문서, 채팅창에서 복사한 JSON에는 종종 작은따옴표가 사용되거나 쉼표가 누락되거나 마지막 항목에 불필요한 마지막 쉼표가 있거나 속성 이름에 따옴표가 없는 등 다양한 문제가 있습니다. 수동으로 복구하는 것은 번거롭지만 도구의 자동 복구 기능은 대부분의 흔한 JSON 형식 문제를 원클릭으로 처리할 수 있어 한 글자씩 오류를 찾을 필요가 없습니다.
로컬 히스토리는 고빈도 사용에 최적화된 세밀한 기능입니다: 개발자는 종종 동일한 API를 반복 디버깅하는데 도구를 열 때마다 JSON을 다시 붙여넣는 것은 번거롭습니다. 도구는 최근 입력을 브라우저 로컬 스토리지에 자동 저장하여 다음에 열 때 이전 내용을 자동으로 복원합니다. 200건의 히스토리면 일상 업무에 충분히 사용할 수 있습니다. 모든 데이터는 자신의 브라우저 내에만 존재하며 업로드되지 않습니다.
참고로 본 도구가 지원하는 것은 실용적인 핵심 JSONPath 문법 서브셋(속성 접근, 인덱스, 와일드카드, 슬라이싱, 조건 필터링)이며 일상 개발 현장의 90% 이상을 커버합니다. 재귀 하강(..), 스크립트 표현식, 다중 조건 조합 등 고급 문법은 현재 지원하지 않습니다. 이러한 고급 기능이 필요한 현장에서는 더 완전한 구현 라이브러리를 사용해야 할 수 있습니다. 대다수의 API 디버깅과 필드 추출 요구에는 현재 문법 세트로 충분히 대응할 수 있으며 더 가볍고 빠릅니다.