데이터베이스를 사용하다 보면 영어는 문제가 없지만 한글 같은 경우 글자가 깨지거나 이상한 형태로 저장이 되는 상황을 종종 보게 되면 어떻게 해야 되나 고민이 많이 되시죠? 저도 그런 경우가 종종 있어서 그 마음을 이해를 합니다. 문자 같은 경우 인코딩과 디코딩을 하기 때문에 이 부분이 설정이 되지 않으면 아무리 잘 만들어도 데이터의 이상하게 되는 현상이 계속되니 많이 힘들 수 밖에 없습니다.
이런 데이터베이스 설정 부분은 영어가 아닌 다른 언어에서는 문제가 되지 않게 미리 설정을 해주면 계속적으로 AWS에 RDS는 문자 이상 현상이 나타나지 않을 것입니다. 이 글을 끝까지 읽으시고 간단하게 적용을 하신다면 문자가 이상하게 저장되지 않을 것입니다.
AWS의 RDS에서 파라미터라는 부분을 편집해서 데이터베이스에 적용을 해준다면 데이터베이스에 저장을 할 때 문자가 이상하게 저장되는 것을 막을 수 있습니다. 이 글을 따라서 RDS 파라미터 설정을 한다면 데이터베이스에 이상한 한글이 들어가는 일은 없을 것입니다.
1. 파라미터 그룹 생성
우선 RDS 화면에 들어온 후에 왼쪽 사이드바를 보면 파라미터 그룹이 보입니다. 클릭하고 파라미터 그룹으로 들어갑니다.
오른쪽 상단에 파라미터 그룹 생성을 클릭을 해줍니다.
파라미터 그룹 세부 정보에서 파라미터 그룹 패밀리는 Maria 최선 버전으로 진행 중이기 때문에 10.6을 골라서 선택을 해주고 그룹 이름 설명은 알기 쉽게 RDS로 진행을 하겠습니다. 마지막으로 하단에 생성 버튼을 클릭을 해줍니다.
※ 그룹 이름은 마음대로 이름을 쓰셔도 됩니다.
2. 파라미터 편집
파라미터 그룹에 생성된 rds가 보입니다. 아래의 사진과 같이 이름의 rds를 클릭을 해줍니다.
그럼 rds 파라미터 화면이 나오게 됩니다. 여기서 오른쪽 상단에 편집이라는 버튼을 클릭을 해줍니다. 기본 설정이 원하는 데로 안돼 있을 가능성이 많기 때문에 필요한 부분을 다시 설정을 해야 합니다.
수정 가능한 파라미터가 나옵니다. 검색을 입력 할 수 있는 창에 char이라고 입력을 하면
character_set_client
character_set_connection
character_set_database
character_set_filesystem
character_set_results
character_set_server
이렇게 검색이 됩니다.
여기서 각각의 Enter parameter value라고 하는 입력을 할 수 있는 창에 utf8mb4를 입력을 해주면 됩니다. 참고로 문자를 인코딩과 디코딩을 하는 것을 utf8이라는 것을 많이 사용을 하고 현재로서 거의 기본으로 되는 설정입니다.
※ 아래 사진과 같이 허용된 값에서 찾아보시면 utf8mb4를 찾을 수 있습니다.
그 다음으로는 collation을 검색창에 입력을 하면
collation_connection
collation_server
이 파라미터를 utf8mb4_general_ci를 Enter Parameter value에 입력을 해줍니다.
파라미터 설정이 완료 됐습니다. 이제 오른쪽 상단에 보면 Save Changes 버튼이 보이는 클릭을 해줍니다.
3. RDS와 파라미터 연결
RDS 화면에서 왼쪽 사이드바에서 데이터베이스를 클릭을 합니다.
현재 사용 가능을 되어 있는 데이터베이스의 상단에 있는 라디오 버튼을 클릭을 하면 수정과 작업 버튼이 활성화가 됩니다. 여기서 수정이라는 버튼을 클릭을 해줍니다.
수정 버튼을 클릭하면 데이터베이스 관련 설정들이 나옵니다. 하단으로 계속 내려가다 보면 추가 구성에서 데이터베이스 옵션에 DB 파라미터 그룹이 보입니다. 여기서 클릭을 하시면 좀 전에 만들어 놓은 rds가 보이게 됩니다. rds를 클릭을 하면 됩니다. 그리고 맨 밑으로 내려가면 계속 버튼을 클릭을 합니다.
화면이 전환이 됩니다. 그러면 수정 예약이 나오는데 여기서 즉시 적용을 체크하고 DB 인스턴스 수정이라는 버튼을 클릭을 합니다.
4. 파라미터 적용 확인
위에 실행을 하면 데이터베이스가 수정중이 나오고 시간이 흐르고 사용 가능으로 상태가 변경이 됩니다. 여기서 좀 더 확실하게 하기 위해서 데이터베이스를 작업에서 재부팅을 클릭해서 데이터베이스를 재부팅이 실행이 되도록 해줍니다.