JSON 이스케이프 vs. 일반 문자열 이스케이프: 개발자가 알아야 할 핵심 차이
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
프론트엔드/백엔드 개발자 (중급~고급)
핵심 요약
- JSON 이스케이프는 일반 문자열 이스케이프와 구조/규칙이 다름
- JSON.stringify(), JSON.parse() 사용이 권장됨
- 문맥에 따른 이스케이프 순서(예: \\ 먼저 처리)
섹션별 세부 요약
1. 일반 문자열 이스케이프
- 특수 문자(
"
,\n
,\t
)를 이스케이프 시퀀스로 표현 - 언어별 지원 차이: JavaScript(
\uXXXX
), C/C++(\xXX
), Python(\n
) - 예:
const message = "She said \"Hello\"";
2. JSON 이스케이프 규칙
- RFC 7159 기준:
\"
,\\
,\uXXXX
등 제한된 시퀀스만 지원 - 예:
"Path: C:\\\\Users"
→"Path: C:\\Users"
- Unicode만 지원,
\'
,\v
,\a
는 제외
3. 이스케이프 차이점 요약
| 기능 | JSON 이스케이프 | 일반 문자열 이스케이프 |
|---|---|---|
| 백슬래시 | \\
| \\
|
| 유니코드 | \uXXXX
| 선택적 |
| 싱글쿼터 | ❌ | \'
|
| 오كتальное/헥사 | ❌ | ✅ |
4. 흔한 실수 및 해결 방법
- 문맥 혼합:
JSON.stringify(input).slice(1, -1)
사용 시 오류 발생 - 이스케이프 순서:
\\
처리 후\n
처리 - 안전한 언스케이프:
try { JSON.parse(...) } catch {...}
5. 적용 사례
- JSON API/환경 설정 파일 구축
- 개발자 툴(코드 변환, 텍스트 처리)
- 사용자 입력 처리 및 코드 생성
결론
- JSON 이스케이프는
JSON.stringify()
/JSON.parse()
사용이 필수적 - 이스케이프 순서(
\\
→\n
등)와 문맥 분리(예: 템플릿 리터럴) 주의 \\uXXXX
형식의 유니코드만 지원하며, 테스트 시\"
,\n
,\t
등 기초 케이스 검증 필수