# Collation

DataBase Collation : utf8mb4_unicode_ci 가 의미하는 것
DB연결시 텍스트 데이터를 취급하는 과정에서 Database Encoding과 Database Collation이 있다. 제대로 사용하기 전에 어느 역할을 하는지 알아야하기 때문에, 이 글을 작성하게 되었다. 💻 사용한 DB Tool - Sequel Ace ❓MySQL/MariaDb database management Tool (for MacOS) 설치는 App Store에서 진행 Encoding(인코딩)에 대하여 UTF-8 실생활에서 사용되는 텍스트기반의 데이터를 출력하기 위해서 등장하게 된 케이스 UTF-8 문자 집합은 1~4바이트 까지 저장이 가능하다. ❓Collation(정렬) 
AWS RDS 시작하기
✏️ 필요성 서버 내에 직접 DB 를 설치해 연결하는 방법이 아닌 AWS 에서 서비스하는 RDB Server 를 대여해 사용하는 방식이다. DB 튜닝 없이 바로 사용할 수 있다. 실수로 데이터를 삭제하거나 변경할 경우 복원할 수 있다. ⚠️ NCP Cloud DB 를 사용하지 않는 이유 배포 서버를 NCP 로 하려고 했기 때문에 NCP DB 서버를 먼저 알아봤지만 가장 저렴한 버전으로 계산해봐도 요금이 만만치 않아서 AWS rdb 를 이용하기로 했다. ✏️ DB 세팅 📍 DB 생성 AWS → 서비스 → Database → RDS → 데이터베이스 생성 MySQL, 템플릿 - 프리티어 선택 자격 증명 설정 마스터 사용
MySQL Collation & Charset
Charset 필드가 어떤 캐릭터들을 담을수 있는지 예를들어 utf8은 이모지를 못담고, utf8mb4는 이모지를 담을수 있다. (4byte까지 지원하기 때문) Collation 콜레이션은 mysql 내에서 등호/부등호 등 비교 로직을 태울때 어떤 방식으로 태울지 예를들어 where columna = "TEST" 조건을 줬을 때 "test", "Test", "TEst" 등이 결과로 나오는걸 허용하는지 / 아니면 대문자까지 인식하여 "TEST"인 케이스만 결과로 나오는지 -> ex) utf8mb4general_ci utf8mb4generalci에서 ci라함은 case-insensitive (case 관계 없이 return하겠다.)

[MySQL] Character Set, Collation 확인
문자셋(Character set) 과 콜레이션(Collation) CHAR, VARCHAR, TEXT 등의 문자열 Datatype에는 문자셋(Character set)과 콜레이션(Collation) 속성이 있다. 문자셋(Character set)은 각 문자가 컴퓨터에 저장될 때 어떠한 '코드'로 저장될지에 대한 규칙의 집합을 의미하며 콜레이션(Collation)은 특정 문자 셋에 의해 데이터베이스에 저장된 값들을 비교 검색하거나 정렬 등의 작업을 위해 문자들을 서로 '비교' 할때 사용하는 규칙들의 집합을 의미한다. 👀 차이점은? 같은 문자셋이라도 콜레이션에 따라 영어의 경우 대소문자의 구분 비교 여부, 일본어의 경우 히라가나와 카타카나의 구분 방법 등이 달라진다. UTF8 문자셋을 사용하는 경우 utf8-general-ci 또는 utf8-unicode-ci 둘중 하나를 collation으로 지정하는 경우가 많은데 utf8-gene

[MariaDB] Illegal mix of collations (utf8_unicode_ci,IMPLICIT) 오류
Illegal mix of collations (utf8unicodeci,IMPLICIT) and (utf8generalci,IMPLICIT) for operation '=' spring에서 api를 만들어 테스트해보니 호출한 프로시저에 문제가 있다며 위와 같은 500에러가 발생했다. 500 에러는 내가 잘못한건데,, 친절하게 뭘 잘못 조합했다고 알려줘서 고맙다. 확인해보니 다른 테이블들은 데이터의 조합 설정이 utf8generalci로 되어있는데, 한 테이블만 utf8unicodeci로 설정되어있었다. 제대로 다 맞춰주니 200 success! > ## Collation text 계열 자료형을 어떻게 비교하고 정렬할지 정의한 규칙들의 집합이다. 각 collation은 하나의 character set에 속해있고, 모든 character set은 적어도 1개 이상의 collation을 갖고 있다. Character set 기호와 인코딩들의 집합이다.

[MySQL] schema 생성시 collation 설정
MySQL 에서 collation 확인하기 모든 collation 확인 SHOW COLLATION UTF와 관련된 collation 확인 UTF - COLLATIONS utf8mb4 기본적으로 UTF는 가변 길이 encoding 방식이다. MYSQL에서는 UTF8(alias of utf8mb3)의 alias로 설정이 되어 있어서 최대 3 bytes까지만 사용할 수 있다. 모바일이 대중화됨에 다라,대중화 됨에 따라 emoji와 같이 기존에 사용되지 않던 문자들까지 사용하기 위해

[DB][MariaDB] collation 확인 방법
MariaDB에서 Schema를 생성 할 때 collation을 입력한다. DB 에서 지원하는 collation 확인 방법 > $ show cllation; show cllation UTF-8 관련 collation > $ show collation like '%utf%';  at line 25: Unknown collation: 'utf8mb40900ai_ci' 분명 파라미터 그룹에서 collation connection, collation server 부분을 utf8mb4generalci 로 변경해주었는데 저런 에러가 나서 당황했다. 알고보니 그 문제가 아니라, 내가 배포한 RDS 서버는 mysql 5.7 버전 (회사가 배포할 때 많이 사용하는 버전) 이였고, dump 파일을 만든 내 로컬 mysql 버전은 8.0 버전이였기 때문에 발생한 에러였다. 알고보니 mysql 8.0 버전은 기본 collation default 가 utf8mb40900ai_ci 로 되어있어서 그런 것이였다. 간단히 말하면 AWS **RDS 의 mysql 버전과 현
Mac Virtual Box에 테스트용 DB 서버 만들기
Virtual Box로 설치하기 Virtual Box (For OS X) Version. 6.1.4 설치 다운로드 주소 package VirtualBox.pkg 를 더블클릭해서 설치합니다. 보안관련 문제가 발생해서 정상적으로 설치되지 않는 경우, 권한을 주고 설치합니다. installer 설치가 완료되면 실행합니다. Ubuntu 18.04 LTS 버전 iso 파일 다운로드 받기 LTS버전을 사용하는 이유는 장기 지원 대상이기 때문에 안정적으로 사용할 수 있기 때문입니다. 18.04 버전은 그냥 제일 최신 버전을 사용하고 싶어서 선택했습니다. [다운로드 링크