URL 인코딩: 개발자를 위한 스위스 군용 칼, 아마도 잘못 사용하고 있을 겁니다

발행: (2026년 5월 9일 PM 11:51 GMT+9)
3 분 소요
원문: Dev.to

Source: Dev.to

TL;DR

encodeURI() = “전체 URL을 인코딩하고 있어요” → / ? & # 같은 구조 문자들은 그대로 둠

encodeURIComponent() = “데이터 한 조각만 인코딩하고 있어요” → A-Z a-z 0-9 - _ . ! ~ * ' ( ) 를 제외한 모든 것을 인코딩

When Things Go Wrong

지난 주에 결제 게이트웨이에서 500 오류가 발생해서 한 시간 동안 디버깅했어요. 원인은? # 문자가 들어 있는 쿼리 파라미터에 encodeURI()를 사용했기 때문이었죠. 브라우저가 # 이후를 프래그먼트 식별자로 해석해서 서버에 전송하지 않았어요. encodeURIComponent()를 사용했어야 했습니다.

The 3 Rules I Now Live By

  • 쿼리 문자열 값항상 encodeURIComponent() 사용. 예외 없음.
  • 전체 URLencodeURI() 사용, 단 구성 요소에 특수 문자가 없다는 것이 확실할 때만.
  • 확신이 서지 않을 때encodeURIComponent() 사용. 최악의 경우: 너무 많이 인코딩함. 최상의 경우: 버그를 피함.

A Free Tool for When You’re Lazy

가끔은 200자 정도 되는 복잡한 URL을 붙여넣고 결과가 어떻게 나오는지 보고 싶을 때가 있어요—특히 개발자 도구를 열고 싶지 않을 때 말이죠. 저는 브라우저에서 완전히 실행되는 무료 URL 인코더/디코더를 만들었어요. 업로드도, 광고도, 회원가입도 필요 없고, 그냥 붙여넣고 인코딩하면 됩니다.

0 조회
Back to Blog

관련 글

더 보기 »