저도 이 토픽에 대해서 고민을 엄청 해봤어서 답변 남깁니다..ㅎㅎ 1. 서버에서 json을 받는다 보통 서버에서 DB를 관리하니까 다국어 관련 데이터도 서버에서 관리하는게 좋지 않을까? 라고 생각할
저도 이 토픽에 대해서 고민을 엄청 해봤어서 답변 남깁니다..ㅎㅎ 1. 서버에서 json을 받는다 보통 서버에서 DB를 관리하니까 다국어 관련 데이터도 서버에서 관리하는게 좋지 않을까? 라고 생각할 수 있습니다. 하지만 서버가 정말 사용자와 가까운 곳에 있지 않는 이상 데이터를 받아오는 시점까지 지연 시간이 생길 수 밖에 없습니다. 다국어를 도입한다는 것은 결국 전세계에서 접속한다는 건데 다국어 데이터를 받아올 때까지 사용자는 fallback(기본 언어) 문자열을 봐야 하고, 특히 인터넷이 느린 환경이라면 사용자 경험이 더 떨어질 수 있습니다. 만약 사내에서만 쓰는 서비스라면 상관없지만, 전세계 사용자들이 쓰는 서비스라면 사용자 경험에 대해서 고려하셔야 합니다. 다만, 이런 단점을 보완할 수 있는 두 가지 방법이 있습니다. 1-1. Edge Computing을 사용한다 엣지 런타임을 지원하는 AWS Lambda, Cloudflare Workers 등을 사용한다면, 사용자의 위치에서 가장 가까운 서버에서 데이터를 받아올 수 있기 때문에 응답 속도가 빨라지므로, 서술한 단점을 보완할 수 있을거 같습니다. 1-2. SSG를 사용한다 Next.js 같은 메타 프레임워크에서는 빌드 타임에 데이터를 받아서 미리 다국어별로 페이지를 분기 처리할 수 있습니다. 빌드 타임에 서버에 다국어 json 데이터를 요청해서 받아놓고 미리 html 파일들을 생성해놓으면 레이턴시가 아예 없어집니다. 2. 프론트에서 json을 하드코딩한다 서버에서 관리하는 메리트가 없다면 이 방법도 좋습니다. 다만, 다국어 변경사항이 있을 경우 프론트엔드 개발자가 매번 직접 수정해줘야 하는 단점이 있습니다. 서버에서 관리하는 경우 어드민을 제공해서 요구사항이 필요한 사람이 직접 수정하게 만들 수 있는데, 프론트에서는 그게 불가능하죠. 3. 구글 스프레드시트로 관리하고 프론트에서 api로 땡겨온다 이 방법도 결국 1번과 같이 응답이 오는 동안 사용자가 기다려야하는 불편함이 있습니다. 하지만 1-2번의 해결 방법(SSG)으로 보완하면 이 단점도 해결됩니다.