[typescript] 타입스크립트와 GraphQL을 함께 사용하는 다국어 지원 방법

다국어 지원은 현대의 웹 애플리케이션에서 매우 중요한 요소 중 하나입니다. 웹 애플리케이션의 사용자들은 여러 언어를 사용하기 때문에, 다국어 지원을 통해 사용자 경험을 향상시킬 수 있습니다. 타입스크립트와 GraphQL을 함께 사용하여 다국어 지원을 구현하는 방법에 대해 살펴보겠습니다.

1. 타입스크립트에서 다국어 문자열 관리

다국어 지원을 구현하기 위해서는 먼저 다국어 문자열을 효율적으로 관리해야 합니다. 타입스크립트에서는 i18next, react-i18next 등의 다국어 관리 라이브러리를 사용하여 간단하고 효과적으로 다국어 문자열을 관리할 수 있습니다.

import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';

i18n.use(initReactI18next).init({
  resources: {
    en: {
      translation: {
        greeting: 'Hello',
        message: 'Welcome to our website'
      }
    },
    ko: {
      translation: {
        greeting: '안녕하세요',
        message: '저희 웹사이트에 오신 것을 환영합니다'
      }
    }
  }
});

2. GraphQL 쿼리에서 다국어 지원

GraphQL을 사용하여 서버에서 데이터를 가져올 때, 여러 다국어 문자열을 포함하는 필드를 쿼리하여 가져올 수 있습니다. 이를 위해 GraphQL 쿼리에서 각 언어에 해당하는 필드를 지정하고, 클라이언트에서 해당 데이터를 처리할 수 있습니다.

query {
  products {
    id
    name
    description
    localized {
      en
      ko
    }
  }
}

3. 클라이언트에서 다국어 문자열 사용

클라이언트에서는 언어 설정에 따라 다국어 문자열을 적절히 렌더링하여 사용자에게 보여줄 수 있습니다. 예를 들어 React 애플리케이션에서는 useTranslation 훅을 사용하여 현재 언어에 맞는 다국어 문자열을 불러올 수 있습니다.

import React from 'react';
import { useTranslation } from 'react-i18next';

const HomePage = () => {
  const { t } = useTranslation();

  return (
    <div>
      <h1>{t('greeting')}</h1>
      <p>{t('message')}</p>
    </div>
  );
};

위와 같이 타입스크립트와 GraphQL을 함께 사용하여 다국어 지원을 구현할 수 있습니다.

이 외에도, AWS Amplify, Apollo Client와 같은 도구를 사용하여 보다 강력한 다국어 지원 시스템을 구축할 수 있습니다. 다국어 지원은 사용자들의 다양한 언어 요구에 대응하기 위해 항상 염두에 두어야 하는 중요한 과제입니다.

참고 자료 - React i18next 공식 문서

관련 블로그 포스트: GraphQL 백엔드 개발: 시작부터 배포까지