이메일 검증 규칙

최종 유효성은 이메일 인증으로 확인하지만, UX를 생각하면 발송 전 사전 검증 책임이 있다.

  1. 이메일은 @ 문자를 포함해야 한다.
  2. @ 앞에는 영어 소문자, 숫자, 점(.), 하이픈(-), 언더스코어(_)를 사용할 수 있다.
  3. @ 뒤 도메인에는 영어 소문자와 하이픈만 허용한다.
  4. 도메인은 최소 하나 이상의 점(.)을 포함해야 하며, 각 세그먼트는 2자 이상이어야 한다.
  5. 전체 이메일 길이는 254자 이하여야 한다. (RFC 5321 SMTP의 최대 허용 길이: 320자 = 64 + @ + 255)
^(?!.*\\.\\.)[a-z0-9](?:[a-z0-9._-]{0,62}[a-z0-9])?@(?:(?!-)[a-z0-9-]{2,}(?<!-)\\.)+[a-z]{2,}$

허용되는 이메일 예시

이메일 설명
john.doe@example.com 기본 형식, 점(.) 포함
user_123-name@mail-server.co.kr 다양한 허용 문자 (_, -, 숫자 등) 사용
abc.def@sub-domain.example.com 다중 서브도메인, 세그먼트 모두 2자 이상
a1234567890.b-c_d@abc-def.co.uk 다양한 구성, 규칙 만족
simple@domain.co 도메인 점(.) 포함, 세그먼트 ≥ 2자

허용되지 않는 이메일 예시

이메일 설명
userexample.com @ 없음
user@ex_ample.com 도메인에 밑줄(_) 포함
user@domain 도메인에 점(.) 없음
user@d.com 도메인 세그먼트 중 하나가 1자 (예: d)
user@domain.c 최상위 도메인(TLD)이 1자
.user@domain.com 로컬 파트 시작이 점(.)
user..name@domain.com 로컬 파트에 연속된 점(..)
user@-domain.com 도메인 시작이 하이픈(-)
user@domain-.com 도메인 끝이 하이픈(-)

패스워드 검증 규칙

영문 대소문자, 숫자, 특수문자 중 각 1개 이상 포함하고, 공백 없이 8~64자 이내의 비밀번호를 허용한다.

^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^\\w\\s])\\S{8,64}$
  1. 최소 8자 이상, 최대 64자 이하
  2. 영문 대문자(A–Z) 최소 1자 포함
  3. 영문 소문자(a–z) 최소 1자 포함
  4. 숫자(0–9) 최소 1자 포함
  5. 특수 문자 **중 하나 이상 포함
  6. 공백 문자는 허용하지 않음

KISA 안전한 패스워드 기준

KISA 안전한 패스워드 기준

허용되지 않는 패스워드 예시

예시 설명
abcd1234! 대문자 없음
ABCD1234! 소문자 없음
AbcdEfgh 숫자 없음
Abcd1234 특수문자 없음
Ab1! 길이 부족
Abcd1234!@#$%^&*123456781234567812345678123456781234567812345678! 길이 초과 (65자)