alltools.one
Web Development
2026-02-12
7 min
alltools.one Team
urlencodingweb-developmenthttpapi

URL 인코딩 가이드: URL을 인코딩하는 이유와 방법

URL에서 공백이 왜 %20이 되고 앰퍼샌드가 %26이 되는지 궁금하셨나요? URL 인코딩 (퍼센트 인코딩이라고도 함)은 URL에 안전하지 않은 문자를 웹 서버가 이해할 수 있는 포맷으로 변환합니다.

URL 인코딩이 중요한 이유

URL은 제한된 ASCII 문자 세트만 포함할 수 있습니다. 특수 문자, 공백, 비ASCII 텍스트는 안전하게 전송하기 위해 인코딩이 필요합니다. 인코딩 없이는 URL이 예측할 수 없는 방식으로 깨집니다 — 공백은 URL을 잘라낼 수 있고, 앰퍼샌드는 파라미터 구분자로 오인될 수 있습니다.

URL 인코더/디코더에서 텍스트가 URL 인코딩될 때 어떻게 변환되는지 확인하세요.

어떤 문자에 인코딩이 필요한가?

안전한 문자 (인코딩 불필요)

문자 (A-Z, a-z), 숫자 (0-9), 그리고 다음 기호: -, _, ., ~

예약 문자 (데이터로 사용 시 인코딩)

문자인코딩URL에서의 용도
:%3A스킴 구분자
/%2F경로 구분자
?%3F쿼리 문자열 시작
#%23프래그먼트 식별자
&%26파라미터 구분자
=%3D키-값 구분자
+%2B종종 공백을 나타냄
@%40사용자 정보 구분자
%%25인코딩 표시자

항상 인코딩

공백 (%20), 비ASCII 문자 (UTF-8 바이트 인코딩), 안전한 세트 외의 모든 문자.

실제 URL 인코딩

쿼리 파라미터

가장 일반적인 사용 사례. 검색 URL이나 API 요청을 구성할 때:

https://api.example.com/search?q=hello%20world&lang=en

폼 데이터

method="GET"을 사용하는 HTML 폼은 필드 값을 자동으로 URL 인코딩합니다. 폼 인코딩에서 공백은 +가 됩니다 (퍼센트 인코딩과 약간 다름).

경로 세그먼트

URL 경로의 파일 이름과 리소스 식별자도 인코딩이 필요합니다. my report.pdf라는 파일은 URL에서 my%20report.pdf가 됩니다.

다양한 언어에서의 인코딩

JavaScript:

encodeURIComponent('hello world & more')
// "hello%20world%20%26%20more"

decodeURIComponent('hello%20world')
// "hello world"

Python:

from urllib.parse import quote, unquote
quote('hello world & more')
# 'hello%20world%20%26%20more'

일반적인 실수

  1. 이중 인코딩 — 이미 인코딩된 URL을 인코딩하면 %20%2520이 됩니다
  2. encodeURIComponent 대신 encodeURI 사용encodeURI는 쿼리 값에서 중요한 예약 문자를 건너뜁니다
  3. + 기호 인코딩 누락 — URL에서 +는 공백을 의미할 수 있습니다. 리터럴 플러스 기호는 %2B로 인코딩하세요
  4. 비ASCII 문자 잊기 — 유니코드 문자는 먼저 UTF-8 인코딩 후 퍼센트 인코딩이 필요합니다

자주 묻는 질문

encodeURI와 encodeURIComponent의 차이점은?

encodeURI는 전체 URL을 인코딩하여 :, /, ?, # 같은 문자를 건너뜁니다. encodeURIComponent는 비예약 문자를 제외한 모든 것을 인코딩합니다 — 개별 쿼리 파라미터 값에 사용하세요.

공백이 때로 +가 되고 때로 %20이 되는 이유는?

폼 인코딩 (application/x-www-form-urlencoded)은 공백에 +를 사용합니다. 표준 퍼센트 인코딩은 %20을 사용합니다. 둘 다 다른 컨텍스트에서 유효합니다.

관련 리소스

Published on 2026-02-12
URL Encoding Guide: Why and How to Encode URLs | alltools.one