JSON Formatter Chrome 확장 프로그램이 폐쇄형으로 전환되고 광고성 코드가 포함됨

1 day ago 5
  • Chrome에서 JSON 데이터를 구조적으로 시각화하던 확장 프로그램이 더 이상 오픈소스로 유지되지 않음
  • 프로젝트는 폐쇄형 상용 모델로 전환되며, 새 버전은 프리미엄 기능을 포함한 API 탐색 도구로 개발 중임
  • 기존 사용자를 위해 JSON Formatter Classic이 최종 오픈소스 버전으로 공개되어, 로컬 전용 포맷터 형태로만 제공됨
  • Classic 버전은 업데이트가 중단되며, Chrome Web Store 또는 소스 코드로 설치 가능함
  • 이번 전환으로 인해 광고성 코드 삽입 및 신뢰성 저하 우려가 제기됨

프로젝트 종료 및 전환 공지

  • JSON Formatter는 오픈소스 개발을 종료하고 폐쇄형 상용 모델로 전환됨
    • 새 버전은 프리미엄 기능을 포함한 API 탐색 도구로 개발 중임
  • 기존 오픈소스 사용자를 위해 최종 오픈소스 버전JSON Formatter Classic으로 공개됨
    • Chrome Web Store에서 설치 가능하며, 로컬 전용 JSON 포맷팅 확장으로 유지
    • 더 이상 업데이트는 제공되지 않음

JSON Formatter 개요

  • Chrome 브라우저에서 JSON API 응답을 구조적으로 시각화하는 확장 프로그램
  • 긴 JSON 페이지에서도 빠른 처리 속도를 제공하며, Dark Mode문법 하이라이트를 지원
  • 트리 구조 접기/펼치기, 들여쓰기 가이드, 클릭 가능한 URL 기능 포함
  • JSON이 아닌 페이지에서는 1밀리초 미만의 성능 영향만 발생
  • Raw / Parsed JSON 전환 버튼 제공, 파싱된 JSON은 전역 변수 json으로 콘솔 접근 가능

설치 방법

  • 옵션 1: Chrome Web Store에서 JSON Formatter Classic 설치
  • 옵션 2: 소스 코드에서 직접 설치 가능
    • bun install로 의존성 설치 후 bun run build 또는 bun run watch 명령 사용
    • dist 폴더를 Chrome 개발자 모드에서 로컬 확장 프로그램으로 로드 가능

JSON 감지 방식

  • JSON 감지는 Content-Type 헤더를 기반으로 수행되며, 일부 경우 페이지 구조 분석을 통해 JSON 엔드포인트 여부를 판단
  • 브라우징 성능에 영향을 주지 않도록 빠른 동작을 목표로 설계됨

숫자 표현 한계

  • JavaScript의 수치 한계로 인해 큰 수나 정밀 부동소수점은 정확히 표시되지 않음
    • Number.MAX_SAFE_INTEGER(2^53 - 1)보다 큰 수는 해당 값으로 조정
    • Number.MIN_SAFE_INTEGER(-2^53 + 1)보다 작은 수는 해당 값으로 조정
    • 매우 정밀한 부동소수점은 16자리로 반올림
  • 이는 JSON Formatter의 문제가 아니라 V8 엔진의 JSON.parse 동작에 따른 것임
  • 안전 범위를 벗어나는 숫자는 문자열로 감싸서 표현해야 함

객체 키 순서 관련

  • 표시 순서는 파싱된 객체의 실제 순서로, Object.keys(JSON.parse(json)) 결과와 동일
  • 과거 JavaScript 표준은 객체 키 순서를 보장하지 않았으며, V8 엔진이 숫자형 키를 상단으로 이동하는 최적화를 수행
  • 이 동작이 이후 표준화되어 현재까지 유지

원본 JSON 보기

  • 서버가 전송한 원본 JSON을 그대로 보려면 "Raw" 버튼을 사용
  • "Parsed" 버튼은 JSON.parse 결과를 표시
  • 향후에는 커스텀 파서를 도입해 파싱 과정에서 값이 변경된 경우 경고 표시 기능을 추가할 가능성 있음
Read Entire Article