💡 구현할 기능
피드백을 반영하여 아이디(닉네임)에 한글과 영문 대문자를 사용할 수 있도록 변경한다.
현재 정책
- 1~20자
- 영문 소문자
a-z
- 숫자
0-9
- 다음 특수문자만 허용
! @ # $ % ^ & * ( ) _ + - = [ ] { } ; ' : " \ | , . < > / ?
- 한글, 공백, 영문 대문자, 이모지 등은 허용하지 않음
업데이트 정책
- 1~20자
- 허용 문자
- 한글 완성형
가-힣
- 한글 호환 자모
ㄱ-ㅎ, ㅏ-ㅣ
- 영문 대문자
A-Z
- 영문 소문자
a-z
- 숫자
0-9
- 기존 허용 특수문자
! @ # $ % ^ & * ( ) _ + - = [ ] { } ; ' : " \ | , . < > / ?
- 백틱(U+0060)과
~는 기존대로 금지
- 이모지와 그 밖의 문자는 금지
- 앞·뒤·중간 공백뿐 아니라 탭, 개행, NBSP 등 모든 공백 문자를 금지
- 공백이나 허용되지 않은 문자를 자동으로 삭제하지 않고 오류를 안내
- 중복확인·저장·비교 전에 Unicode NFC 정규화 적용
대소문자 정책
영문 대문자를 허용하되 대소문자만 다른 아이디가 서로 다른 사용자에게 배정되지 않도록 다음 정책을 적용한다.
- 입력하고 표시할 때는 사용자가 입력한 대소문자를 그대로 보존
- 중복확인, 로그인, 검색, 회원 조회에서는 영문 대소문자를 구분하지 않음
BookMo, bookmo, BOOKMO는 모두 같은 아이디로 판단
- 다른 사용자는 대소문자만 다른 아이디를 사용할 수 없음
- 본인이 기존 아이디의 대소문자 표시만 변경하는 것은 허용
예시:
- 본인이
BookMo에서 bookMo로 변경
- 비교값은 모두
bookmo이므로 중복확인을 자동 통과
- 표시 아이디만
bookMo로 변경
- 다른 사용자가
BookMo를 사용 중인 상태에서 bookmo 또는 BOOKMO를 입력
BookMo, bookmo, BOOKMO 중 어떤 형태로 로그인하거나 회원을 조회해도 동일한 계정으로 처리
✅ 할 일
📎 참고
처리 순서는 다음과 같이 통일한다.
NFC 정규화 → 공백 검사 → 길이 검사 → 허용 문자 검사 → 비교값 생성 → 중복 검사
비교값 예시:
- 표시값
BookMo → 비교값 bookmo
- 표시값
책모ABC → 비교값 책모abc
- 표시값
책모abc → 비교값 책모abc
💡 구현할 기능
피드백을 반영하여 아이디(닉네임)에 한글과 영문 대문자를 사용할 수 있도록 변경한다.
현재 정책
a-z0-9! @ # $ % ^ & * ( ) _ + - = [ ] { } ; ' : " \ | , . < > / ?업데이트 정책
가-힣ㄱ-ㅎ,ㅏ-ㅣA-Za-z0-9! @ # $ % ^ & * ( ) _ + - = [ ] { } ; ' : " \ | , . < > / ?~는 기존대로 금지대소문자 정책
영문 대문자를 허용하되 대소문자만 다른 아이디가 서로 다른 사용자에게 배정되지 않도록 다음 정책을 적용한다.
BookMo,bookmo,BOOKMO는 모두 같은 아이디로 판단예시:
BookMo에서bookMo로 변경bookmo이므로 중복확인을 자동 통과bookMo로 변경BookMo를 사용 중인 상태에서bookmo또는BOOKMO를 입력BookMo,bookmo,BOOKMO중 어떤 형태로 로그인하거나 회원을 조회해도 동일한 계정으로 처리✅ 할 일
📎 참고
처리 순서는 다음과 같이 통일한다.
NFC 정규화 → 공백 검사 → 길이 검사 → 허용 문자 검사 → 비교값 생성 → 중복 검사비교값 예시:
BookMo→ 비교값bookmo책모ABC→ 비교값책모abc책모abc→ 비교값책모abc