Intlayer 콘텐츠 관리 시스템 (CMS) 문서

    Intlayer CMS는 Intlayer 프로젝트의 콘텐츠를 외부화할 수 있는 애플리케이션입니다.

    이를 위해 Intlayer는 '원격 사전'이라는 개념을 도입합니다.

    Intlayer CMS 인터페이스

    원격 사전 이해하기

    Intlayer는 '로컬' 사전과 '원격' 사전을 구분합니다.

    • '로컬' 사전은 Intlayer 프로젝트에서 선언된 사전입니다. 버튼 선언 파일이나 네비게이션 바와 같은 것들입니다. 이 경우 콘텐츠를 외부화하는 것은 큰 의미가 없는데, 이는 이 콘텐츠가 자주 변경되지 않을 것이기 때문입니다.

    • '원격' 사전은 Intlayer CMS를 통해 관리되는 사전입니다. 이는 팀이 웹사이트에서 직접 콘텐츠를 관리할 수 있도록 하거나, A/B 테스트 기능 및 SEO 자동 최적화를 사용하는 데 유용할 수 있습니다.

    비주얼 에디터 vs CMS

    Intlayer 비주얼 에디터는 로컬 사전을 위한 비주얼 에디터에서 콘텐츠를 관리할 수 있는 도구입니다. 변경이 이루어지면 콘텐츠는 코드베이스에서 대체됩니다. 이는 애플리케이션이 다시 빌드되고 페이지가 새 콘텐츠를 표시하기 위해 다시 로드된다는 것을 의미합니다.

    반면, Intlayer CMS는 원격 사전을 위한 비주얼 에디터에서 콘텐츠를 관리할 수 있는 도구입니다. 변경이 이루어지면 콘텐츠는 코드베이스에 영향을 미치지 않습니다. 그리고 웹사이트는 변경된 콘텐츠를 자동으로 표시합니다.

    통합

    패키지 설치 방법에 대한 자세한 내용은 아래 관련 섹션을 참조하세요:

    Next.js와 통합

    Next.js와의 통합에 대해서는 설치 가이드를 참조하세요.

    Create React App과 통합

    Create React App과의 통합에 대해서는 설치 가이드를 참조하세요.

    Vite + React와 통합

    Vite + React와의 통합에 대해서는 설치 가이드를 참조하세요.

    설정

    Intlayer 설정 파일에서 CMS 설정을 사용자 정의할 수 있습니다:

    intlayer.config.ts
    import type { IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  // ... 다른 설정  editor: {    /**     * 필수     *     * 애플리케이션의 URL입니다.     * 이는 비주얼 에디터가 타겟팅하는 URL입니다.     */    applicationURL: process.env.INTLAYER_APPLICATION_URL,    /**     * 필수     *     * 클라이언트 ID와 클라이언트 비밀 키는 에디터를 활성화하는 데 필요합니다.     * 이는 콘텐츠를 편집하는 사용자를 식별할 수 있도록 합니다.     * Intlayer 대시보드 - 프로젝트(https://intlayer.org/dashboard/projects)에서 새 클라이언트를 생성하여 얻을 수 있습니다.     * clientId: process.env.INTLAYER_CLIENT_ID,     * clientSecret: process.env.INTLAYER_CLIENT_SECRET,     */    clientId: process.env.INTLAYER_CLIENT_ID,    clientSecret: process.env.INTLAYER_CLIENT_SECRET,    /**     * 선택 사항     *     * Intlayer CMS를 자체 호스팅하는 경우 CMS의 URL을 설정할 수 있습니다.     *     * Intlayer CMS의 URL입니다.     * 기본값은 https://intlayer.org로 설정됩니다.     */    cmsURL: process.env.INTLAYER_CMS_URL,    /**     * 선택 사항     *     * Intlayer CMS를 자체 호스팅하는 경우 백엔드의 URL을 설정할 수 있습니다.     *     * Intlayer CMS의 URL입니다.     * 기본값은 https://back.intlayer.org로 설정됩니다.     */    backendURL: process.env.INTLAYER_BACKEND_URL,  },};export default config;

    클라이언트 ID와 클라이언트 비밀 키가 없는 경우, Intlayer 대시보드 - 프로젝트에서 새 클라이언트를 생성하여 얻을 수 있습니다.

    사용 가능한 모든 매개변수를 보려면 설정 문서를 참조하세요.

    CMS 사용하기

    설정 푸시하기

    Intlayer CMS를 설정하려면 intlayer CLI 명령어를 사용할 수 있습니다.

    bash
    npx intlayer config push

    intlayer.config.ts 설정 파일에서 환경 변수를 사용하는 경우, --env 인수를 사용하여 원하는 환경을 지정할 수 있습니다:

    bash
    npx intlayer config push --env production

    이 명령은 설정을 Intlayer CMS에 업로드합니다.

    사전 푸시하기

    로컬 사전을 원격 사전으로 변환하려면 intlayer CLI 명령어를 사용할 수 있습니다.

    bash
    npx intlayer dictionary push -d my-first-dictionary-key

    intlayer.config.ts 설정 파일에서 환경 변수를 사용하는 경우, --env 인수를 사용하여 원하는 환경을 지정할 수 있습니다:

    bash
    npx intlayer dictionary push -d my-first-dictionary-key --env production

    이 명령은 초기 콘텐츠 사전을 업로드하여 Intlayer 플랫폼을 통해 비동기적으로 가져오고 편집할 수 있도록 만듭니다.

    사전 편집하기

    그런 다음 Intlayer CMS에서 사전을 보고 관리할 수 있습니다.

    핫 리로딩

    Intlayer CMS는 변경 사항이 감지되면 사전을 핫 리로드할 수 있습니다.

    핫 리로딩 없이 새 콘텐츠를 표시하려면 애플리케이션을 다시 빌드해야 합니다.

    hotReload 설정을 활성화하면 변경된 콘텐츠가 감지될 때 애플리케이션이 자동으로 업데이트된 콘텐츠를 대체합니다.

    intlayer.config.ts
    import type { IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  // ... 다른 설정  editor: {    // ... 다른 설정    /**     * 애플리케이션이 변경 사항이 감지될 때 로컬 설정을 핫 리로드해야 하는지 여부를 나타냅니다.     * 예를 들어, 새 사전이 추가되거나 업데이트되면 애플리케이션이 페이지에 표시할 콘텐츠를 업데이트합니다.     *     * 핫 리로딩은 서버와의 지속적인 연결이 필요하기 때문에 `enterprise` 플랜의 클라이언트만 사용할 수 있습니다.     *     * 기본값: false     */    hotReload: true,  },};export default config;

    핫 리로딩은 서버 및 클라이언트 측 모두에서 콘텐츠를 대체합니다.

    • 서버 측에서는 애플리케이션 프로세스가 .intlayer/dictionaries 디렉토리에 쓰기 권한이 있는지 확인해야 합니다.
    • 클라이언트 측에서는 핫 리로딩을 통해 페이지를 다시 로드하지 않고도 브라우저에서 콘텐츠를 핫 리로드할 수 있습니다. 그러나 이 기능은 클라이언트 컴포넌트에서만 사용할 수 있습니다.

    핫 리로딩은 EventListener를 사용하여 서버와의 지속적인 연결이 필요하기 때문에 enterprise 플랜의 클라이언트만 사용할 수 있습니다.

    디버그

    CMS에서 문제가 발생한 경우 다음을 확인하세요:

    • 애플리케이션이 실행 중인지 확인합니다.

    • Intlayer 설정 파일에서 editor 설정이 올바르게 설정되었는지 확인합니다.

      • 필수 필드:
        • 애플리케이션 URL은 에디터 설정(applicationURL)에 설정한 URL과 일치해야 합니다.
        • CMS URL
    • 프로젝트 설정이 Intlayer CMS에 푸시되었는지 확인합니다.

    • 비주얼 에디터는 iframe을 사용하여 웹사이트를 표시합니다. 웹사이트의 콘텐츠 보안 정책(CSP)이 CMS URL을 frame-ancestors로 허용하는지 확인하세요(기본값: 'https://intlayer.org'). 에디터 콘솔에서 오류를 확인하세요.

    이 문서를 개선할 아이디어가 있으시면 GitHub에 풀 리퀘스트를 제출하여 자유롭게 기여해 주세요.

    문서에 대한 GitHub 링크