안녕하세요. 린치핀소프트 한광희입니다.

“MySQL 5.5.3 UTF8MB4 문제 관련”

이번 포스트에서는 최근 AWS를 이용한 사내 개발서버에서 워드프레스 사이트를 개발 완료 후 고객이 이용하고자한 C업체의 웹 호스팅 서버에 워드프레스 이식간에 발생했던 문제에 대해서 공유하고자 합니다.

 

워드프레스는 4.2버전 부터 MySQL 데이터베이스 테이블의 기본 캐릭터셋을 utf8 -> utf8mb4 형식으로 지원하게끔 테이블의 설정을 변경하였습니다.

이는 MySQL 데이터베이스에서 UTF8 설정이 기존에 3MB기반으로 지원하는설정에서 4MB기반으로 상향하여 더 많은 언어의 다양한 글자등을 지원하게끔 하는 정책입니다.

물론 기존에 3MB기반의 UTF8 MySQL 환경에서도 크게 문제 없이 워드프레스를 운영하였지만, 4MB UTF8 기반의 MySQL 데이터베이스 환경에서 워드프레스를 운영함으로써 Emoji 같은 이모티콘이나 그리스어나 다양한 수학기호등을 정확히 구분하여 저장할수 있게 되었습니다.

 

그래서 MySQL 5.5.3 이상의 버전이 설치된 서버에서 워드프레스를 설치할때는 기본 테이블의 설정이 utf8mb4로 설정되어 진행됩니다. 기본적으로 이용자가 이용할때는 utf8mb4 이든 utf8이든 크게 차이는 느끼지 못합니다. 다만, 위에서 말한것처럼 이 상황이 문제가 될 수 있는 상황은 utf8mb4기반으로 설치하여 운영되던 워드프레스를 5.5.3 미만의 MySQL을 지원하는 서버에 이식할때 발생합니다.

 

최근에 아마존의 사내 개발 서버인 EC2서버에서 개발을 한 워드프레스 홈페이지를 국내에서 꽤나 유명한 업체의 웹 호스팅으로 이식하다가 이런 문제를 맞닥뜨렸습니다. 해다 업체에서는 제공하는 MySQL 버전은 5.1.4의 버전을 지원하고 있어서, 꽤나 우여곡절 끝에 정상적으로 데이터베이스를 이식 할수 있었습니다.

이런 문제가 막상 개발이 끝나고 호스팅업체에 이식을 할때 발생하면 꽤나 곤란한 문제가 될수 있습니다. 저희도 해결책을 찾아서 해결은 했기에, 이식이 불가하다거나 해결하지 못하는 문제는 아니지만 약간의 시간과 작업이 필요한 처리였습니다.

이 사건을 계기로 현재 개발해야하는 웹 사이트가 특정 업체의 호스팅에서 운영되어야 하면 해당 호스팅 업체의 사양과 개발서버의 사양을 조율해야 할 필요가 생겼습니다. (몇가지 정보를 수합했을때 해당 업체의 웹 호스팅 서비스에서 MySQL 버전업은 아직 미정내지는 주요한 사항으로 생각하고 있지 않아보입니다.)

 

결론적으로 말해서 최종 서비스로 운영되어야 할 웹 호스팅의 사양과 현재 개발하고 있는 서버의 사양등이 다를때는 꼼꼼히 살펴보고 사전에 조율하여 서비스를 개발하는 것이 상대적으로 서비스 서버로 이식해서 문제를 처리하는 것보다 훨씬 효율적이라고 권장해 드리고 싶습니다.