DB의 인코딩 이슈
- 문자열 전체를 데이터로 저장하고 검색하는 일은 흔히 발생되는 요구사항.
- 웹 기반 시스템 전체에 걸쳐 인코딩 규칙은 일관되야 함
- 저장되는 데이터의 형식에 이모지 같은 확장영역의 데이터 포함되는지 반드시 고려(사실상 모두 포함된다고 보는 것이 타당)
- 영문 대소문자를 고려해야 하는 것 인지 생각해야함
MySQL 경우
- MySQL은 기본적으로 UTF-8
- CHAR, VARCHAR 형식은 utf8_general_ci 사용
- 대소문자 구분 안한다
- insensitive 민감 안하게처리한다란 뜻
- CI(Case Insensitive)
- utf8mb4
- 기존 utf8(최대 3바이트)와 달리 4바이트 (Mulit Byte)를 지원하므로 한글 문자 외에 이모지, 특수 문자, 한자 확작 영역 등 모든 유니 코드 문자 처리 가능
- 대소문자 구분 안함
Collation(정렬 방식) 설정과 대소문자 구분
- utf8mb_general_ci
- utf8mb4_unicode_ci
- 대소문자 구분 안함
- 다국어(독어, 프랑스어 등) 지원해야할 경우에 사용
- 상대적으로 검색 성능 떨어짐
- utf8mb4_bin