https://s3-us-west-2.amazonaws.com/secure.notion-static.com/db19fdbf-13e8-4648-9383-255690f86627/_(2)_(1).png

Cake를 9개 언어에서 동작하도록 글로벌화 작업을 하면서 얻은 경험을 공유하려고 해요. 제가 가졌던 고민의 시간들이 누군가에게는 도움이 되고 시행착오를 줄이는 데 도움이 될 거라 믿으면서 시작해보겠습니다.

# 이미 좋은 게 있겠지?

구글신에게 물어보니 몇가지 라이브러리를 알려주네요.

간단한 기능만 있으면 되는데 슈퍼셋을 제공하다 보니 모두 필요 이상으로 복잡(구현 코드도 복잡)하네요. 결정적으로 사용을 망설이게 만드는 건 기본적인 사용법이었습니다.

// i18n-js
I18n.t('TOTAL_USER_COUNT', { count });

// react-i18next
<Text>{t('TOTAL_USER_COUNT', { count })}</Text>

모두 잘 사용하는데 뭐가 문제라는 걸까요?

이런 이유들이 쌓이면 개발 생산성을 급격하게 저하됩니다. 그래서 에디터에서 자동완성이 되는 변수를 키로 사용하고 정의 및 매개변수를 바로 확인할 수 있으면서 잘못 사용할 경우 오류를 실시간으로 확인할 수 있는 방법을 만들겠다는 야심찬 목표를 세웠습니다.

# 결과부터 이야기드리면

목표로 했던 그대로 구현해서 서비스 출시까지 완료했습니다. 이 방식이 저만 괜찮아 보이나요?

자동 완성 / 힌트 : 이젠 실수를 하기도 어렵겠네요.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7e0bc92e-2bb3-47e4-9686-6800fc46d721/_2019-10-23__3.13.07.png

타입 확인/체크 : 동적 타입인 경우 사용된 매개변수 확인 및 체크가 가능합니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/daf87806-3ab1-4743-9c31-a56800961885/_2019-10-23__3.14.41.png

오류 확인 : 잘못된 키나 제거된 키를 사용하거나, 함수형의 매개 변수를 잘못 전달하면 바로 에러가 발생합니다.