URL Encoding 가이드
URL Encoding이란?
URL Encoding(퍼센트 인코딩)은 URL(인터넷 주소)에 사용할 수 없는 문자나 특수문자, 한글 등을 안전하게 전송할 수 있는 형태로 변환하는 규칙입니다. 안전하지 않은 문자는 % 뒤에 해당 문자의 ASCII(또는 UTF-8) 16진수 값을 붙여서 표현합니다.
왜 URL Encoding이 필요한가요?
인터넷 주소(URL)는 기본적으로 제한된 ASCII 문자만 사용할 수 있도록 설계되었습니다. 따라서 공백(Space)이나 한글, 일본어 같은 유니코드 문자, 그리고 URL 문법에 사용되는 예약어(?, &, = 등)가 데이터 안에 포함되어 있다면 브라우저나 서버가 오작동할 수 있습니다. 이러한 문자열을 안전한 형식으로 감싸주는 과정이 필수적입니다.
encodeURIComponent
JavaScript에서 제공하는 함수로, 데이터 값(Query Parameter 값 등)을 변환할 때 사용합니다. 영문 알파벳과 숫자를 제외한 거의 모든 특수문자(?, =, &, / 포함)를 인코딩합니다. Paperbit 도구는 이 함수를 기반으로 설계되었습니다.
decodeURIComponent
인코딩되어 %20 이나 %EC%95%88 처럼 알아볼 수 없게 변환된 퍼센트(%) 문자열을 다시 사람이 읽을 수 있는 원래의 문자로 완벽하게 역변환(디코딩)해 주는 함수입니다.
전체 URL 인코딩 vs 파라미터(값) 인코딩
https://example.com/search?q=안녕)을 무작정 encodeURIComponent로 돌리면 큰일 납니다! 구조를 담당하는 기호인 ://, /, ?, = 까지 모조리 변환되어 브라우저가 주소로 인식하지 못하게 됩니다. 따라서 인코딩은 URL의 구조는 남겨두고 "값(Value)" 부분만 수행해야 합니다.?: 쿼리 스트링(Parameter)의 시작을 알리는 기호입니다.&: 여러 개의 파라미터를 연결하는 기호입니다.=: 파라미터의 이름(Key)과 값(Value)을 연결하는 기호입니다./: 도메인과 경로(Path)를 구분하는 기호입니다.
변환 예제 살펴보기
예제 1: 공백이 포함된 문자열
Hello World→ (Encode) →Hello%20World예제 2: 한글 문자열
안녕하세요→ (Encode) →%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94예제 3: Query Parameter 조합
인코딩 전 원본: name=홍길동&city=서울
name%3D%ED%99%8D%EA%B8%B8%EB%8F%99%26city%3D%EC%84%9C%EC%9A%B8※ 변환된 결과 문자열을 Decode 창에 넣고 실행하면 다시 원래의 'name=홍길동&city=서울' 로 완벽하게 복원됩니다.
자주 묻는 질문 (FAQ)
URL 인코딩이란 무엇인가요?
URL(인터넷 주소)에 사용할 수 없는 한글이나 특수문자를 안전하게 전송할 수 있도록 %로 시작하는 16진수 문자열로 변환하는 작업입니다.
URL 디코딩은 어떻게 하나요?
URL 디코더 창에 %20 등으로 변환된 인코딩 문자열을 붙여넣으면 즉시 사람이 읽을 수 있는 원래의 문자로 복원됩니다.
한글 URL도 인코딩할 수 있나요?
네, 한글을 포함한 모든 유니코드 문자에 대해 안전한 URL Encode 및 URL Decode 기능을 완벽하게 지원합니다.
URL에서 특수문자를 왜 인코딩하나요?
URL 구조에 사용되는 예약어(?, &, = 등)나 공백 문자가 데이터에 포함될 경우 브라우저나 서버가 잘못 인식할 수 있기 때문에 안전하게 변환해야 합니다.
입력한 URL 데이터가 서버로 전송되나요?
절대 전송되지 않습니다. 모든 URL 변환 처리는 브라우저 내부에서만 안전하게 실행됩니다.