텍스트 이스케이프/언이스케이프
JSON, JavaScript, HTML, URL 등 다양한 형식으로 특수문자를 이스케이프하거나 원본 텍스트로 복원합니다.
텍스트 이스케이프란?
텍스트 이스케이프는 프로그래밍에서 특수문자를 안전하게 표현하기 위해 특정 형식으로 변환하는 과정입니다. 문자열 안에 따옴표, 백슬래시, 꺾쇠괄호 같은 문자가 포함되면 코드 해석에 문제가 생길 수 있습니다. 이스케이프 처리는 이런 충돌을 방지하고 데이터를 의도한 대로 전달하기 위한 필수 기법입니다. JSON API 응답, HTML 렌더링, JavaScript 문자열, URL 파라미터 등 거의 모든 웹 개발 영역에서 이스케이프가 사용됩니다.
주요 기능
- JSON, JavaScript, HTML, URL 네 가지 이스케이프 형식 지원
- 이스케이프/언이스케이프 양방향 변환
- 실시간 자동 변환으로 입력 즉시 결과 확인
- 한 번의 클릭으로 결과 복사
- 입력과 출력 스왑 기능으로 빠른 역변환
- 모든 처리가 브라우저에서 이루어져 데이터 유출 걱정 없음
사용 방법
- 상단에서 '이스케이프' 또는 '언이스케이프' 모드를 선택합니다.
- 변환 형식(JSON, JavaScript, HTML, URL) 중 하나를 선택합니다.
- 왼쪽 입력창에 변환할 텍스트를 입력하면 오른쪽에 결과가 자동 표시됩니다.
- '복사' 버튼으로 결과를 클립보드에 복사할 수 있습니다.
- 스왑 버튼을 누르면 입력과 출력이 교체되어 역변환을 쉽게 할 수 있습니다.
활용 사례
- JSON 데이터에 큰따옴표가 포함된 문자열을 안전하게 전달할 때
- HTML 페이지에 사용자 입력을 표시할 때 XSS 공격을 방지하기 위해
- JavaScript 코드에서 백슬래시나 특수문자가 포함된 경로를 처리할 때
- URL 쿼리 파라미터에 한글이나 특수문자를 포함시킬 때
- API 응답에서 이스케이프된 문자열을 원본으로 복원하여 확인할 때
- CSV 파일에서 쉼표나 줄바꿈이 포함된 데이터를 처리할 때
팁과 주의사항
- 이중 이스케이프에 주의하세요. 이미 이스케이프된 문자열을 다시 이스케이프하면 복원이 어려워집니다.
- JSON과 JavaScript 이스케이프는 비슷하지만 JSON이 더 엄격합니다. API 통신에는 JSON 형식을 사용하세요.
- HTML 이스케이프는 사용자 입력을 표시하는 모든 곳에 적용해야 보안이 강화됩니다.
- URL 이스케이프는 encodeURIComponent와 동일한 방식으로 작동하며, 쿼리 파라미터에 적합합니다.
- 언이스케이프 후 텍스트가 깨져 보이면 원본 인코딩이 맞는지 확인하세요.
자주 묻는 질문
Q: 이 도구는 무료인가요?
네, 완전히 무료이며 사용 횟수나 텍스트 길이에 제한이 없습니다. 회원가입도 필요 없습니다.
Q: 입력한 데이터가 서버로 전송되나요?
아니요, 모든 변환은 브라우저에서만 처리됩니다. 입력한 텍스트는 서버로 전송되지 않으므로 민감한 데이터도 안전하게 변환할 수 있습니다.
Q: JSON 이스케이프와 JavaScript 이스케이프의 차이점은 무엇인가요?
JSON은 RFC 8259 표준을 따르며 큰따옴표, 백슬래시, 제어문자만 이스케이프합니다. JavaScript는 여기에 더해 \x(16진수), \u(유니코드), 작은따옴표 이스케이프도 지원합니다. API 데이터에는 JSON, 코드 내 문자열에는 JavaScript 형식을 사용하세요.
Q: HTML 이스케이프는 언제 사용해야 하나요?
사용자 입력을 HTML 페이지에 렌더링할 때 반드시 사용해야 합니다. <script> 태그나 이벤트 핸들러가 포함된 입력이 그대로 출력되면 XSS(Cross-Site Scripting) 공격에 노출됩니다. <, >, &, ", ' 다섯 가지 문자는 항상 이스케이프하세요.
Q: URL 이스케이프와 HTML 이스케이프를 혼동하면 어떻게 되나요?
URL에 HTML 이스케이프를 적용하면 & 같은 잘못된 형식이 됩니다. 반대로 HTML에 URL 이스케이프를 적용하면 %3C 같은 문자가 그대로 표시됩니다. 각 맥락에 맞는 이스케이프 방식을 선택해야 합니다.
Q: 이중 이스케이프란 무엇이고 왜 문제가 되나요?
이미 이스케이프된 텍스트를 다시 이스케이프하는 것입니다. 예를 들어 \"가 \\\"로 변환되면 언이스케이프를 두 번 해야 원본을 복원할 수 있습니다. 데이터가 여러 레이어를 거칠 때 자주 발생하므로, 이스케이프는 최종 출력 단계에서 한 번만 적용하세요.
Q: 줄바꿈 문자는 어떻게 이스케이프되나요?
JSON과 JavaScript에서 줄바꿈(LF)은 \n으로, 캐리지 리턴(CR)은 \r로 이스케이프됩니다. HTML에서는 <br> 태그로 대체하거나 그대로 유지합니다. 운영체제마다 줄바꿈 방식이 다르므로(Windows: \r\n, Mac/Linux: \n) 주의가 필요합니다.
Q: 유니코드 문자(이모지, 한글 등)도 이스케이프할 수 있나요?
네, JavaScript 모드에서는 유니코드 문자가 \uXXXX 형태로 이스케이프됩니다. JSON도 비ASCII 문자를 \uXXXX로 표현할 수 있습니다. 이모지처럼 BMP 범위를 벗어나는 문자는 서로게이트 페어(\uD83D\uDE00 등)로 표현됩니다.
Q: 이스케이프된 문자열이 너무 길어지면 성능에 영향이 있나요?
일반적인 사용에서는 문제가 없습니다. 다만 수만 줄 이상의 대용량 텍스트를 한 번에 변환하면 브라우저가 잠시 느려질 수 있습니다. 그런 경우에는 텍스트를 나누어 변환하는 것을 추천합니다.
Q: 프로그래밍 언어마다 이스케이프 규칙이 다른가요?
네, 언어마다 차이가 있습니다. Python은 작은따옴표와 큰따옴표 모두에 이스케이프를 지원하고 raw string(r"...")도 있습니다. Java는 유니코드 이스케이프를 컴파일 단계에서 처리합니다. 이 도구의 JavaScript/JSON 이스케이프는 대부분의 언어에서 호환되지만, 특정 언어의 규칙은 해당 문서를 참고하세요.