퓨니코드 변환 (한글 도메인)
한글 도메인을 서버·DNS·SSL 인증서에 등록할 때는 xn-- 형식으로 적어야 해요.
한글 도메인과 퓨니코드
인터넷 주소 체계(DNS)는 원래 영어 알파벳, 숫자, 하이픈만 쓸 수 있어요. 그래서 ‘홍라이프.한국’ 같은 한글 도메인(국제화 도메인, IDN)은 실제로는 xn--로 시작하는 영문 주소로 바꿔서 쓰여요. 이 바꾸는 규칙이 퓨니코드(Punycode, RFC 3492)예요. 브라우저 주소창에 한글 도메인을 치면 브라우저가 자동으로 바꾸지만, 웹 서버 설정, DNS 레코드, SSL 인증서 신청, 이메일 서버 설정에는 xn-- 형식으로 직접 적어야 하는 경우가 많아요.
쓰는 방법
한 줄에 하나씩 넣으면 ‘자동’ 방향이 한글이 있는 줄은 xn-- 형식으로, xn--이 있는 줄은 한글로 바꿔요. 점(.)으로 나뉜 부분(레이블)마다 따로 바꾸므로 도구.kr은 앞부분만 바뀌어요. 한글 키보드로 친 마침표(。)도 점으로 읽어요. 이메일 주소는 @ 뒤 도메인만, https:// 주소는 도메인 부분만 바꾸고 경로와 검색어는 그대로 둬요(경로의 한글은 ‘URL 인코딩’ 도구로 바꾸세요). 레이블 하나가 63자를 넘으면 도메인으로 쓸 수 없다고 알려 줘요.
피싱 주소 확인
공격자는 영어 a와 똑같이 생긴 키릴 문자 а 같은 글자로 진짜 사이트처럼 보이는 주소를 만들기도 해요. 수상한 링크의 도메인을 넣어서 xn--로 바뀌면 영어가 아닌 글자가 섞인 거예요. xn-- 주소를 풀었을 때 영어처럼 보이는 키릴·그리스 글자가 섞여 있으면 경고를 보여 줘요.
변환은 RFC 3492의 알고리즘을 그대로 구현했고, 대문자는 소문자로, 한글은 NFC(완성형)로 맞춘 뒤 바꿔요. 파이썬 idna 패키지와 Node.js url.domainToASCII 결과로 검증했어요. IDNA 2008의 세부 규칙(쓸 수 없는 글자 검사, 독일어 ß 처리 등)까지는 검사하지 않으니 등록 전에는 도메인 등록 기관의 결과를 확인하세요.
참고한 자료
자주 묻는 질문
한글 도메인을 영문으로 바꾼 주소로도 접속되나요?
네. xn-- 주소와 한글 주소는 같은 주소라서 어느 쪽으로 들어가도 같은 사이트가 열려요.
대문자로 넣었는데 소문자로 바뀌어요.
도메인은 대·소문자를 구분하지 않아서 표준대로 소문자로 바꿔요.
‘도메인이 아닌 글자 하나로’는 언제 쓰나요?
점까지 포함한 글자 전체를 퓨니코드 알고리즘으로만 바꾸고 싶을 때 써요. xn-- 머리말도 붙이지 않아요.
함께 쓰면 좋은 도구
- URL 분석기 (주소 나누기·쿼리 파라미터 편집·추적 코드 지우기)웹 주소를 프로토콜·도메인·경로·쿼리·해시로 나누고, 파라미터를 표에서 고치고 지우고 추가해 새 주소 만들기
- URL 인코딩·디코딩 (한글 주소 %EC 변환)한글 주소를 %EC%95%88 형식으로, 깨진 %주소를 한글로, 옛 EUC-KR 주소·검색어 파라미터 풀기
- 유니코드 이스케이프 변환 (가 ↔ 한글, U+ 코드 포인트)한글·이모지를 홍, \u{1F600}, \U0001F600, 홍, U+D64D, %uD64D 형식으로 바꾸고, 섞여 있는 이스케이프를 한글로 풀기
- 서비스 접속 확인 (사이트 장애인지 내 인터넷 문제인지)네이버·카카오·유튜브 등 자주 쓰는 서비스가 내 기기·내 인터넷에서 접속되는지 확인
- JSON 정리 (보기 좋게 들여쓰기·검증·압축)JSON을 보기 좋게 들여쓰기, 오류 위치 표시, 한 줄 압축, 키 정렬, 문자열 이스케이프
- 정규식 테스트 (정규표현식 매칭 확인)패턴과 플래그로 일치하는 부분을 강조 표시, 그룹 값 표, 바꾸기 미리보기, 자주 쓰는 패턴