lazies 2022. 3. 21. 12:03

첨부할 사진이 준비되어 있지 않지만 아무튼 postgresql 을 아무 추가 설정 없이 이용했을 때 한글 정렬에 문제가 있다. 기본적으로 한글을 오름차순 정렬한다고 하면 ㄱ ~ ㅎ 으로 진행되는 것을 기대할 것인데 그렇게 작동하지 않는다. 

 

1. 데이터 베이스 정렬은 Collate 컬럼에 의해 결정된다. -> postgres 접근해서 `\l` 명령어로 확인할 수 있음.

2. 데이터 베이스를 만들 때부터 LC_COLLATE 값을 C 로 설정해서 만들어야 함 -> 이미 만들었다면 dump한 이후 지우고 새로 만든 다음 dump 파일 추가해야 함

 

dump 하는 방법은 구글링하면 쉽게 찾을 수 있으므로 dump를 진행한 다음에 기존 데이터베이스를 지워주자.

그리고 다음과 같이 데이터베이스를 생성해준다.

CREATE DATABASE [NAME] LC_COLLATE 'C';

 

위 방식으로 데이터베이스를 생성한 이후에는 원하는대로 ㄱ ~ ㅎ 정렬 혹은 ㅎ ~ ㄱ 정렬이 정상적으로 작동하는 것을 확인할 수 있다. 한가지 맘에 안드는 점이 있다면 사용자 아이디가 다음과 같을 때

 

- 가나다1

- 가나다2

...

- 가나다11

 

이렇게 있을 때 `가나다1` 다음 `가나다2`가 나오길 바라는데 그건 안되는 것 같다. `가나다11`이 `가나다2`보다 먼저 나오는 것을 보니 1이 2보다 먼저라서 그런 것으로 보인다. 이 문제는 찾아보니 정규식을 이용하여 해결하는 것으로 보이는데 큰 문제가 없으므로 처리하지 않았음.