개발자를 위한 JSON 포매팅 모범 사례
올바른 들여쓰기, 네이밍 컨벤션, 흔한 실수, 그리고 JSON 작업을 편하게 만들어주는 도구까지. JSON 포매팅을 마스터하세요.
JSON 포매팅이 왜 중요한가
JSON(JavaScript Object Notation)은 웹 API의 공용어입니다. REST 응답을 디버깅하든, 설정 파일을 작성하든, 데이터를 저장하든, 잘 정리된 JSON은 시간을 절약하고 오류를 방지합니다.
잘못 정리된 JSON은 읽기 어렵고, 버전 관리에서 diff를 보기 힘들며, 미묘한 버그의 온상이 됩니다. 쉼표 하나, 따옴표 하나의 실수가 전체 API 통합을 깨뜨릴 수 있습니다.
깔끔한 JSON의 구조
잘 정리된 JSON은 다음과 같습니다:
{
"user": {
"id": 12345,
"name": "Jane Doe",
"email": "jane@example.com",
"roles": ["admin", "editor"],
"preferences": {
"theme": "dark",
"language": "en",
"notifications": true
}
}
}
깔끔한 JSON의 핵심 요소:
- 일관된 들여쓰기 (2칸 또는 4칸 스페이스)
- 큰따옴표 모든 키와 문자열 값에 사용 (JSON 스펙 필수)
- 마지막 항목 뒤에 쉼표 없음 (배열이나 객체의 마지막 항목)
- 논리적 중첩 데이터 계층을 반영
들여쓰기: 2칸 vs. 4칸
팀 컨벤션에 따라 다르지만, 실용적인 고려사항은 다음과 같습니다:
| 스타일 | 장점 | 단점 | |--------|------|------| | 2칸 | 간결, 가로 스크롤 적음 | 중첩 레벨 구분이 어려울 수 있음 | | 4칸 | 시각적 계층 구조가 명확 | 줄이 길어짐, 스크롤 많음 | | 탭 | 에디터별 너비 커스터마이징 가능 | 렌더링이 일관되지 않음 |
권장: 설정 파일과 API 응답에는 2칸을 사용하세요. 가독성이 간결함보다 중요한 깊은 중첩 데이터 구조에는 4칸을 사용하세요.
흔한 JSON 실수
1. 마지막 쉼표 (Trailing Commas)
{
"name": "John",
"age": 30,
}
이것은 유효하지 않은 JSON입니다. JavaScript는 객체에서 마지막 쉼표를 허용하지만, JSON 스펙에서는 허용하지 않습니다. 대부분의 파서가 오류를 발생시킵니다.
2. 작은따옴표
{
'name': 'John'
}
JSON은 큰따옴표를 필수로 합니다. 작은따옴표는 JavaScript에서는 유효하지만 JSON에서는 아닙니다.
3. 주석
{
"name": "John" // This is a comment
}
JSON은 주석을 지원하지 않습니다. 설정 파일에 주석이 필요하다면 JSONC(JSON with Comments)나 YAML을 고려하세요.
4. 따옴표 없는 키
{
name: "John"
}
모든 키는 따옴표로 감싼 문자열이어야 합니다. 이것은 JavaScript에서는 유효하지만 JSON에서는 유효하지 않습니다.
대용량 JSON 파일 다루기
수백, 수천 줄에 달하는 API 응답을 다룰 때:
- 먼저 검증하세요. 프로그래밍으로 파싱하기 전에 포매터에 붙여넣어 구문 오류를 확인하세요.
- 섹션 접기. 폴딩 기능이 있는 포매터를 사용하여 관련 없는 섹션을 숨기세요.
- 구조 내 검색. 전체 문서를 스크롤하기보다 특정 키나 값을 찾으세요.
- 버전 비교. 디버깅 시 예상값과 실제값의 JSON을 같은 들여쓰기로 포매팅한 후 diff 도구를 사용하세요.
Utilixs JSON 포매터 사용하기
Utilixs의 JSON 포매터는 다음 기능을 제공합니다:
- 즉시 포매팅 2칸, 4칸, 탭 들여쓰기
- 검증 줄 번호가 포함된 구문 오류 하이라이트
- 미니파이 프로덕션용 (모든 공백 제거)
- 구문 강조 읽기 쉬운 색상 표시
- 100% 클라이언트 사이드 처리 API 키와 민감한 데이터가 브라우저를 떠나지 않습니다
포맷 간 변환
JSON은 종종 다른 포맷으로 변환하거나, 다른 포맷에서 변환해야 합니다:
- CSV to JSON: 스프레드시트 데이터를 애플리케이션으로 가져오기
- XML to JSON: 레거시 API 응답을 최신 JSON 포맷으로 마이그레이션
- JSON to CSV: JSON 데이터를 스프레드시트 분석용으로 내보내기
빠른 참고: JSON 데이터 타입
| 타입 | 예시 | 비고 |
|------|------|------|
| String | "hello" | 큰따옴표 필수 |
| Number | 42, 3.14 | 따옴표 없음, 소수점 지원 |
| Boolean | true, false | 소문자만 허용 |
| Null | null | 소문자만 허용 |
| Array | [1, 2, 3] | 순서 있는 목록 |
| Object | {"key": "value"} | 순서 없는 키-값 쌍 |