URL 인코더 및 디코더
URL과 URL 구성 요소를 즉시 인코딩하거나 디코딩합니다. 컴포넌트 모드와 전체 URL 모드를 전환할 수 있습니다. 모든 처리는 브라우저에서 이루어집니다.
URL 인코딩이란 무엇인가요?
URL 인코딩은 URL에서 허용되지 않는 문자를 안전하게 전송할 수 있는 형식으로 변환하는 메커니즘입니다. 퍼센트 기호 뒤에 해당 문자의 바이트 값을 나타내는 두 자리 16진수를 붙여 대체합니다. 예를 들어 공백은 %20이 되고, 앰퍼샌드는 %26이 됩니다.
이 무료 온라인 도구는 입력하는 즉시 실시간으로 URL을 인코딩 및 디코딩합니다. 두 가지 모드를 지원합니다: 개별 URL 매개변수를 인코딩하는 컴포넌트 모드와 구조 문자를 유지하면서 전체 URL을 인코딩하는 전체 URL 모드입니다. 모든 처리는 브라우저에서 이루어져 데이터가 서버로 전송되지 않습니다.
주요 기능
- 실시간 인코딩 및 디코딩 — 입력하면 결과가 즉시 업데이트
- 컴포넌트 모드 — :, /, ?, #, & 등 모든 특수 문자를 인코딩
- 전체 URL 모드 — URL 구조 문자를 유지하면서 특수 문자만 인코딩
- 스왑 버튼으로 작업을 빠르게 반전하고 출력을 입력으로 재사용
- 텍스트 파일 인코딩 및 디코딩을 위한 파일 업로드 지원
- 원클릭 다운로드 및 클립보드 복사
- 긴 URL 작업을 위한 전체 화면 모드
- 이모지와 한글 등 멀티바이트 문자를 올바르게 인코딩하는 완전한 UTF-8 지원
- 100% 클라이언트 사이드 처리 — URL과 데이터가 브라우저를 떠나지 않습니다
- 데스크톱과 모바일에서 작동하는 깔끔한 반응형 인터페이스
사용 방법
- 모드를 선택합니다: 인코딩 또는 디코딩.
- 왼쪽 패널에 입력값을 입력하거나 붙여넣으면 오른쪽 패널에 결과가 즉시 표시됩니다.
- 쿼리 매개변수에는 컴포넌트 모드를, URL 구조를 유지해야 하면 전체 URL 모드를 선택합니다.
- 스왑 버튼으로 작업을 반전합니다 — 인코딩/디코딩 왕복 확인에 유용합니다.
- 복사 버튼으로 결과를 복사하거나, 다운로드 버튼으로 파일로 저장합니다.
URL 인코딩이 중요한 이유
URL에는 제한된 ASCII 문자 집합만 포함할 수 있습니다. 공백, 앰퍼샌드, 물음표, 비ASCII 문자 등의 특수 문자는 URL로 올바르게 전송하려면 퍼센트 인코딩이 필요합니다. 적절한 인코딩 없이는 URL이 깨지고 브라우저가 구조를 잘못 해석하며 서버가 요청을 거부하거나 데이터가 전송 중 손상될 수 있습니다.
컴포넌트 인코딩과 전체 URL 인코딩의 구분이 매우 중요합니다. 쿼리 매개변수를 구성할 때는 각 매개변수 값을 개별적으로 인코딩하는 컴포넌트 모드를 사용해야 합니다. 전체 URL 인코딩을 사용하면 &와 = 같은 문자가 보존되어 쿼리 문자열 구조가 깨질 수 있습니다. 반대로 전체 URL을 인코딩할 때는 전체 URL 모드가 스키마, 호스트, 경로, 쿼리를 정의하는 구조 문자를 보존합니다.
주요 활용 사례
- API 쿼리 문자열 구축 — 특수 문자나 공백이 포함된 매개변수 값을 올바르게 인코딩
- 잘못된 URL 디버깅 — 퍼센트 인코딩된 URL을 디코딩하여 원본 텍스트를 읽고 문제 식별
- 폼 데이터 처리 — 사용자 입력을 URL 쿼리 매개변수에 안전하게 포함시키기 위한 인코딩
- 리디렉트 URL — OAuth 및 인증 플로우에서 매개변수로 전달되는 콜백 URL 인코딩
- 국제화 — 한글이나 비ASCII 문자가 포함된 URL 인코딩
- 웹 스크래핑 — 추출한 URL을 디코딩하여 원래 주소 획득
- 딥 링킹 — 모바일 앱과 SPA를 위한 올바르게 인코딩된 딥 링크 구성
퍼센트 인코딩 이해하기
퍼센트 인코딩에서 문자의 각 바이트는 %XX로 표현되며, XX는 두 자리 16진수 값입니다. A-Z, a-z, 0-9 및 일부 특수 문자는 비예약 문자로 인코딩이 필요 없습니다. 그 외 모든 문자는 인코딩해야 합니다.
UTF-8 멀티바이트 문자의 경우 각 바이트가 별도로 인코딩됩니다. 예를 들어 한글 가 문자는 3바이트로 인코딩됩니다. 이 때문에 비ASCII 텍스트가 포함된 문자열의 URL 인코딩은 길이를 크게 늘릴 수 있습니다. JavaScript의 encodeURIComponent 함수는 문자열을 먼저 UTF-8 바이트로 변환한 후 각 바이트를 퍼센트 인코딩하여 이를 자동으로 처리합니다.
URL 인코딩 팁
- 개별 쿼리 매개변수 값에는 항상 컴포넌트 모드를 사용하세요 — 전체 URL을 이 방식으로 인코딩하면 안 됩니다
- 전체 URL의 구조를 유지하면서 인코딩해야 할 때만 전체 URL 모드를 사용하세요
- 이중 인코딩은 흔한 버그입니다 — 이미 인코딩된 문자열을 다시 인코딩하면 %20이 %2520으로 변합니다
- 디버깅할 때는 먼저 URL을 디코딩하여 실제 값을 확인한 후 필요하면 다시 인코딩하세요
- 공백은 쿼리 문자열에서 %20 또는 +로 인코딩될 수 있습니다 — %20이 표준이지만 +는 폼 제출에서 흔합니다
- JavaScript의 decodeURI와 decodeURIComponent는 잘못된 입력에 오류를 발생시킵니다 — 이 도구는 이러한 오류를 안전하게 처리합니다
