최상위 도메인(Top-Level Domain, TLD)은 인터넷 도메인 이름 시스템의 가장 높은 계층에 있는 도메인으로, 도메인 이름의 가장 마지막 부분입니다.
예를 들어, example.com
에서 .com
이 TLD입니다.
도메인 구조의 이해:
서브도메인.도메인명.TLD
mail.google.com
여기서:
mail
은 서브도메인google
은 도메인명(SLD, Second-Level Domain).com
은 최상위 도메인(TLD)TLD는 크게 다음과 같은 유형으로 나눌 수 있습니다:
일반적인 목적으로 사용되는 TLD로, 특정 국가와 관련이 없습니다.
.com
(상업용).org
(비영리 단체).net
(네트워크 관련).edu
(교육 기관).gov
(정부 기관).mil
(미국 군사 기관)특정 국가나 지역을 나타내는 TLD입니다. 보통 2글자 국가 코드로 구성됩니다.
.kr
(대한민국).jp
(일본).cn
(중국).us
(미국).uk
(영국).de
(독일)2012년 이후 ICANN에서 추가로 승인한 TLD들입니다.
.app
.blog
.shop
.dev
.io
(원래 영국령 인도양 지역의 ccTLD였으나 기술 회사들이 선호).ai
(원래 앵귈라의 ccTLD였으나 인공지능 관련 기업들이 선호).com
- 가장 많이 사용되는 상업용 도메인.co
- 콜롬비아 국가 코드이지만, 상업용으로도 많이 사용.biz
- 비즈니스용.store
- 온라인 스토어.io
- 개발자와 기술 스타트업에게 인기.tech
- 기술 관련 웹사이트.dev
- 개발자 및 개발 프로젝트용.app
- 애플리케이션 관련.org
- 주로 비영리 단체.net
- 원래 네트워크 관련 조직용이었으나 지금은 다양하게 사용.info
- 정보 제공 사이트.me
- 개인 웹사이트나 블로그이메일 주소의 유효성을 검사할 때, TLD는 매우 중요한 부분입니다. 올바른 이메일 주소는 반드시 유효한 TLD를 포함해야 합니다.
예를 들어:
user@example.com
- 유효 (.com
은 인정된 TLD)user@example.co
- 유효 (.co
는 콜롬비아의 ccTLD이자 상업용으로 사용)user@example.c
- 유효하지 않음 (.c
는 존재하지 않는 TLD).c
와 같은 1자 TLD는 존재하지 않음).io
, .co
, .me
등)이메일 주소의 유효성을 확인하기 위한 기본적인 정규식 패턴:
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
이 정규식의 각 부분을 해석하면:
^[a-zA-Z0-9._%+-]+
- 이메일 사용자명 부분: 알파벳, 숫자, 특수문자(._%+-)를 하나 이상 포함@
- @ 문자 필수[a-zA-Z0-9.-]+
- 도메인 이름 부분: 알파벳, 숫자, 하이픈, 점을 하나 이상 포함\.
- 점 문자 필수 (도메인과 TLD 구분)[a-zA-Z]{2,}$
- TLD 부분: 알파벳만 포함하며 최소 2자 이상 필요이 정규식은 .c
와 같은 1자 TLD를 거부하고 최소 2자 이상의 TLD만 허용하므로, 실제 존재하는 TLD만 유효하게 검증할 수 있습니다.
function validateEmail(email) {
const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
return regex.test(email);
}
console.log(validateEmail("user@example.com")); // true
console.log(validateEmail("user@example.co")); // true (유효한 TLD)
console.log(validateEmail("user@example.c")); // false (1자 TLD는 존재하지 않음)
TLD의 종류와 이메일 유효성 검사에 대한 이해는 웹 개발에서 사용자 입력을 검증할 때 매우 중요합니다. 올바른 정규식 패턴을 사용하면 대부분의 유효하지 않은 이메일 주소를 필터링할 수 있습니다.