URL 인코더 / 디코더 - 퍼센트 인코딩 및 URL 디코딩 도구
인터넷 URL 주소는 표준적으로 영문자와 일부 기호 등 제한된 ASCII 문자만 허용합니다. 따라서 검색어나 주소창에 한글, 공백, &, ?, = 등 특수문자가 들어갈 경우, 서버가 잘못 파싱하거나 요청이 깨지는 것을 방지하기 위해 퍼센트 인코딩(예: %20, %EA%B0%80)으로 변환해야 합니다.
이런 상황에서 사용하세요
- OAuth 리다이렉트 URI 전달: 소셜 로그인 인증 시 콜백 주소(redirect_uri) 파라미터가 잘리거나 오작동하지 않도록 안전하게 감쌉니다.
- 한글 검색 쿼리 전송: 검색어나 카테고리 명에 포함된 한글 문자를 웹 표준 퍼센트 코드로 변환하여 API 요청에 사용합니다.
- 복잡한 인코딩 URL 분석: 로그나 네트워크 탭에 찍힌 "%EC%8B%9C%EC%8A%A4%ED%85%9C" 같은 외계어 문자열을 읽기 쉬운 원문으로 복원합니다.
- 파라미터 구분자 충돌 방지: 파라미터 값 내부에 포함된 &나 = 기호가 새로운 변수로 잘못 쪼개지는 파싱 버그를 원천 차단합니다.
사용 방법 및 실무 가이드
- 변환 방향 선택: 텍스트를 퍼센트 코드로 바꿀지(인코드), 퍼센트 코드를 한글/원문으로 풀지(디코드)를 선택합니다.
- URL 또는 문자열 입력: 변환할 대상 주소 전체나 파라미터 텍스트를 입력창에 붙여넣습니다.
- 인코딩 방식 선택: 파라미터 값 변환에는 encodeURIComponent(권장)를, 전체 URL 보존에는 encodeURI 모드를 지정합니다.
- 결과 복사: 생성된 웹 호환 URL 문자열을 복사하여 웹사이트 링크나 API 요청 코드에 적용합니다.
입출력 실무 예시
Input:
https://example.com/search?keyword=개발자 도구&category=API+디버깅
Output:
https%3A%2F%2Fexample.com%2Fsearch%3Fkeyword%3D%EA%B0%9C%EB%B0%9C%EC%9E%90%20%EB%8F%84%EA%B5%AC%26category%3DAPI%2B%EB%94%94%EB%B2%84%EA%B9%85
자주 묻는 질문 (FAQ)
Q. encodeURI와 encodeURIComponent의 차이점은 무엇인가요?
A. encodeURI는 전체 URL 주소 체계를 유지하기 위해 콜론(:), 슬래시(/), 물음표(?), 앰퍼샌드(&) 등 주요 프로토콜 기호를 인코딩하지 않고 보존합니다. 반면 encodeURIComponent는 파라미터 값 내부에 들어가는 모든 특수문자를 철저하게 %코드로 치환합니다.
Q. 공백(띄어쓰기)이 어떤 때는 %20이고 어떤 때는 +로 표시되나요?
A. RFC 3986 웹 표준 퍼센트 인코딩에서는 공백이 항상 %20입니다. 반면 과거 HTML 폼 전송 규격(application/x-www-form-urlencoded)에서는 편의상 공백을 더하기(+) 기호로 치환해 전송하기도 했습니다.
Q. URL 인코딩을 하면 보안 취약점(XSS/SQL Injection)이 방어되나요?
A. 아닙니다. URL 인코딩은 통신 규격상 데이터가 깨지지 않게 전달하는 형식 변환일 뿐이므로, 백엔드 애플리케이션의 검증 및 파라미터화된 쿼리(Prepared Statement)를 반드시 별도로 적용해야 합니다.
기술 및 보안 유의사항
- 모든 연산이 브라우저에서 로컬로 실행되므로 개인 토큰이나 민감한 파라미터가 외부로 노출되지 않습니다.
- 최신 웹 브라우저 및 REST API와 100% 호환되는 RFC 3986 퍼센트 인코딩 규칙을 준수합니다.
함께 사용하면 좋은 관련 도구