문자열을 번역하는 완전히 새로운 방식이 포함된 WPML 4.3을 방금 릴리스했습니다. 문자열 번역 관리 화면은 동일해 보이지만 다르게 작동합니다. 데이터베이스에서 번역을 읽는 대신 .mo 파일을 생성하고 로드합니다. 이로 인해 문자열 번역을 위한 데이터베이스 사용량이 훨씬 줄어듭니다.
문자열 번역을 다시 작성한 이유
이전 버전의 문자열 번역은 데이터베이스에서 문자열을 로드하고 .mo 파일 로드를 피하려고 시도했습니다. 일부 대규모 WordPress 플러그인은 플러그인의 모든 텍스트를 번역하는 거대한 .mo 파일을 제공합니다. 예를 들어 WooCommerce .mo 파일에는 8,000개가 조금 넘는 문자열이 있습니다. 다른 대규모 플러그인도 비슷한 문자열 수를 가집니다.
영어로 사이트를 실행할 때 WordPress는 이러한 .mo 파일을 로드하지 않습니다. 그러나 다른 언어(다국어 사이트가 아닌 단일 언어)로 사이트를 실행할 때 WordPress는 이 모든 .mo 파일을 로드합니다. 이러한 파일을 로드하는 데는 사용하는 서버에 따라 100 ms에서 1초 이상 걸립니다. 이러한 .mo 파일은 플러그인이 실행되는 모든 페이지(일반적으로 사이트의 모든 페이지)에 로드됩니다.
WPML 4.3까지는 이 메커니즘을 최적화하려고 시도했습니다. WPML에는 테마와 플러그인이 .mo 파일을 로드하지 못하도록 기본적으로 활성화된 옵션이 있었습니다. 대신 각 페이지에 필요한 문자열을 확인하고 데이터베이스에서 이 특정 문자열을 로드했습니다.
이 메커니즘은 일반적으로 잘 작동했지만 때로는 역효과를 낳았습니다. 플러그인이 모든 페이지 로드에서 많은 문자열을 호출할 때, WPML은 플러그인이 자체 .mo 파일을 로드하도록 하는 대신 데이터베이스에서 방대한 문자열 목록을 로드했습니다.
시간이 지남에 따라 일부 플러그인이 커지면서 당사의 최적화 메커니즘은 점점 효율성이 떨어졌습니다.
WPML 4.3에서는 접근 방식을 바꿀 때가 되었다고 결정했습니다. .mo 파일 차단을 중단하고 데이터베이스에서 문자열을 로드하는 것도 중단했습니다. 이제 WPML은 다른 플러그인이나 테마의 번역 시간을 최적화하려고 시도하지 않으며, 자체 문자열만 최적화합니다.
이 변경 사항이 사이트의 로드 시간에 미치는 영향
상황에 따라 다릅니다. 지금까지 사이트가 빨랐다면(WPML을 사용하는 대부분의 사이트가 그렇듯) 속도에 큰 변화를 느끼지 못할 것입니다. 예를 들어 wpml.org의 경우 대부분의 페이지는 약간 더 빠르고 일부 페이지는 로드하는 데 시간이 조금 더 걸립니다.
이제 일부 페이지를 로드하는 데 시간이 조금 더 걸리는 이유는 거대한 .mo 파일을 로드하는 다른 플러그인이 있기 때문입니다. 문자열 번역을 최적화하여 얻은 속도 향상이 다른 플러그인의 .mo 파일 로드 시간으로 인해 상쇄됩니다.
그러나 이러한 변동은 매우 작으며 고급 프로파일링 도구로만 측정할 수 있습니다. 지금까지 빠르게 실행되던 웹사이트는 일반적으로 WPML 4.3에서도 계속 빠르게 실행됩니다.
느린 로드 시간으로 문제를 겪던 일부 웹사이트는 이제 훨씬 더 빠르게 로드됩니다. WPML 4.3 이전에는 일부 웹사이트에서 데이터베이스로부터 수만 개의 문자열을 로드해야 했습니다. 이로 인해 데이터베이스에 상당한 부하가 발생하고, 많은 RAM을 소비하며, 페이지 로드 시간이 길어졌습니다. 이러한 사이트는 성능이 매우 크게 향상될 것입니다.
추가적인 성능 최적화 예정 여부
예. 이제 문자열 번역에서 발생하는 주요 성능 문제를 제거했으므로 최적화할 기회가 더 많아질 것입니다.
다른 플러그인 및 테마 개발자와의 협력이 필요한 문제를 발견할 것으로 예상합니다. 성능은 플러그인과 테마가 더 적은 문자열을 로드할 때 가장 크게 향상됩니다. 대부분의 다른 플러그인 및 테마 개발자는 당사와의 협력을 환영하며, 당사는 앞으로 발생하는 거의 모든 성능 문제를 해결할 수 있다고 확신합니다. 최적화 과정은 거의 항상 동일합니다.
- 거대한 .mo 파일을 여러 개의 작은 파일로 분할
- 올바른 페이지에 올바른 파일 로드
가장 기본적인 분할은 관리 화면에서 사용되는 문자열과 프런트엔드에 표시되는 문자열을 나누는 것입니다. 더 심층적인 최적화는 페이지 유형에 따라 프런트엔드 문자열을 추가로 분할합니다. 예를 들어 전자상거래 사이트에서는 결제 과정에 사용되는 문자열을 모든 페이지에 로드할 필요가 없습니다.
물론 WPML 자체 내에서 최적화할 기회가 있으면 즉시 처리합니다.
업데이트, 측정 및 보고
현재 WPML 4.3이 배포되고 있습니다. 1~2주에 걸쳐 점진적으로 릴리스하고 있습니다. 사이트에서 아직 이 업데이트를 받지 못했다면 며칠 내에 업데이트가 표시될 것입니다. 대기열을 건너뛰고 이 업데이트를 즉시 받으려면 플러그인 –> 새로 만들기 페이지로 이동하여 상용 탭을 클릭한 다음 업데이트 확인 버튼을 사용하세요.
사이트의 특정 페이지가 로드되는 데 시간이 더 오래 걸린다고 느껴지면 Query Monitor 플러그인을 설치하는 것이 좋습니다(Query Monitor로 성능 문제를 분석하는 방법에 대한 튜토리얼을 따르세요). WPML 4.3에서는 Query Monitor와의 심각한 호환성 문제를 수정했으므로, 표시되는 보고서는 WPML 4.3 이전 버전에서는 유용하지 않습니다.
로드 보고서에 WPML 호출이 눈에 띄게 나타나는지 확인하세요. 그렇다면 WPML 기술 지원에 보고해 주세요. 비슷해 보이는 스레드를 발견하더라도 직접 새로운 스레드를 시작해 주세요. 사이트에 액세스해야 하므로 각 사이트에서 개별적으로 작업하는 것이 좋습니다.
물론 성능에 대한 전반적인 의견을 들려주시면 매우 기쁠 것입니다(성능 향상을 보고해 주시는 것도 동일하게 도움이 됩니다 🙂). 여기에 댓글을 남겨주시면 답변해 드리겠습니다.

