헛소리

'.한국' 같은 국가별 퓨니코드 최상위 도메인 구경하기

프로필사진
fienestar
2023. 8. 14. 23:02

구경만 하고 싶으면, '분류 결과'를 검색하거나 스크롤을 내리자

 

몇개월 전, 카카오톡에 '서양.한국' 등을 입력하면 성인 사이트가 나와 이슈가 됐었다. 사실 이는 한글로 만든 도메인으로, a.com 과 같이 그저 url이라서 그런 것 이었는데, 이런 비-알파벳 도메인은 어떤걸 만들 수 있을까?

 

우리가 보통 도메인을 만들게 되면

.com으로 끝날지, .net으로 끝날지 등 도메인의 마지막 .을 기준으로 오른쪽에 있는 최상위 도메인(TLD, Top Level Domain)또한 골라야한다. 사실 앞부분은 유니코드 문자면 어떤 것이든 상관 없으므로, TLD 중 비 알파벳 도메인을 찾아보자

 

TLD의 목록은 https://data.iana.org/TLD/tlds-alpha-by-domain.txt 에서 확인할 수 있다.

여기서 한국을 검색하면 나오질 않는다. 혹시 tlds-alpha-by-domain이라서 비 알파벳 도메인은 없는걸까?

 

사실 도메인에서 비 알파벳이 존재하면 퓨니코드(punycode)라는 인코딩으로 변환되는데, 흔히 url에 %20 과 같이 몇몇 문자를 %로 표기하는것(url encode)과 비슷하게 보면 된다.

 

퓨니코드는 xn--... 라는 방식으로 표시된다. 자세한 스팩이 궁금하다면 RFC 3492, RFC 5891을 참조하고, 변환해보고 싶다면 punycoder.com 를 확인하자.

예를 들어, hello서양.한국의 표니코드 표현은 xn--hello-7r5vh2u.xn--3e0b707e 인데, '.'을 제외하면 전부 바뀐것을 볼 수 있다.

 

즉, 우리는 https://data.iana.org/TLD/tlds-alpha-by-domain.txt 에서 xn--으로 시작하는 tld를 확인하면 된다. 프로그래밍을 통해 필터링후 디코드 해보자. 필자는 node를 이용했다.

 

*curl -LOJ https://data.iana.org/TLD/tlds-alpha-by-domain.txt를 통해 간단하게 파일을 다운로드 받을 수 있지만, 프로그래밍으로 fetch해와도 된다.

 

*전문은 글의 말미에 첨부하겠다

1465개중 퓨니코드로 된 것은 152개 존재한다.

 

이를 언어별로 구분할 수 없을까? 처음엔 papago의 언어 감지 기능을 떠올렸지만, 귀찮으니 chatgpt보고 분류하라고 하자.

*이 글의 범위는 아니지만, chatgpt를 이용해 무언갈 자동화하고 싶다면, json 등의 이미 존재하는 구체적인 스팩을 명시하고 구조에 맞지 않으면 retry하는 방식이 좋다.

*끊기면 이어서 말해달라고 하면 된다.

 

하지만 gpt가 내는 결과는 오류가 꽤 있으므로, gpt를 두번 돌려 diff를 따서 수작업하자. 'diff'라는 명령을 이용해도 좋고, diffchecker.com 이런 사이트를 이용해도 편리하다.

 

이제 이를 국가별로 나눠 json으로 저장해보자

===

분류 결과

*누차 언급하지만, gpt에는 오류가 있을 수 있다.

 

한글 tld는 .삼성, .닷넷, .닷컴, .한국이 있음을 확인할 수 있다.

chatgpt의 XN--QCKA1PMC|グーグル 분류가 '국제' 길래 일본으로 수정 후 번역해봤는데, 우리가 아는 그 Google의 일본어 표기여서 독특했다

 

아까 생략했던 디코드된 데이터는 아래와 같다.

 

'헛소리' 카테고리의 다른 글

네이버 PER 제도로 보상금을 받았어요  (0) 2025.04.20
jekyll 테마 만들기  (0) 2023.08.19