From a1f8ffcae6e0fedcab1ca0e8925b0e802292c021 Mon Sep 17 00:00:00 2001
From: Junseong Park <39112954+jsparkdev@users.noreply.github.com>
Date: Fri, 18 Apr 2025 22:09:14 +0900
Subject: [PATCH] i18n(ko-KR): create `sdk.mdx`
---
src/content/docs/ko/how-it-works/sdk.mdx | 294 +++++++++++++++++++++++
1 file changed, 294 insertions(+)
create mode 100644 src/content/docs/ko/how-it-works/sdk.mdx
diff --git a/src/content/docs/ko/how-it-works/sdk.mdx b/src/content/docs/ko/how-it-works/sdk.mdx
new file mode 100644
index 00000000..906cf209
--- /dev/null
+++ b/src/content/docs/ko/how-it-works/sdk.mdx
@@ -0,0 +1,294 @@
+---
+i18nReady: true
+title: "SDK"
+description: "StudioCMS SDK와 사용법에 대해 알아보세요."
+sidebar:
+ order: 3
+---
+
+import ReadMore from '~/components/ReadMore.astro';
+
+StudioCMS SDK는 프로그래밍 방식으로 StudioCMS와 상호 작용할 수 있게 해주는 강력한 도구입니다. Astro DB를 사용하여 콘텐츠를 관리하고 제공할 수 있는 다양한 함수와 유틸리티를 제공합니다. 또한 StudioCMS 대시보드의 기반을 제공합니다.
+
+## 사용법
+
+StudioCMS SDK는 Astro 프로젝트에서 가상 모듈로 제공됩니다. 다음 구문을 사용하여 가져올 수 있습니다.
+
+```ts twoslash
+///
+// ---cut---
+import SDK from 'studiocms:sdk';
+// 또는
+import SDKCached from 'studiocms:sdk/cache';
+```
+
+`studioCMSSDK` 객체는 StudioCMS와 상호 작용할 수 있는 다양한 함수와 유틸리티를 제공합니다. 이 함수들을 사용하여 Astro 프로젝트에서 콘텐츠를 생성, 읽기, 업데이트 및 삭제할 수 있습니다.
+
+`studioCMSSDKCached` 객체는 캐싱 계층을 덧붙여 StudioCMS SDK와 상호 작용할 수 있는 다양한 함수와 유틸리티를 제공합니다. 이 함수들을 사용하여 Astro 프로젝트에서 콘텐츠를 캐시할 수 있습니다.
+
+## StudioCMS SDK (표준)
+
+### `SDK.AUTH`
+
+`SDK.AUTH` 객체는 Astro 프로젝트에서 인증을 관리할 수 있는 다양한 함수와 유틸리티를 제공합니다. 이 함수들을 사용하여 사용자를 인증하고, 세션을 관리하는 등의 작업을 수행할 수 있습니다.
+
+```ts twoslash
+///
+// ---cut---
+import SDK from 'studiocms:sdk';
+
+const {
+ oAuth,
+ permission,
+ session,
+ user,
+} = SDK.AUTH;
+```
+
+### `SDK.INIT`
+
+`SDK.INIT` 객체는 Astro 프로젝트에서 StudioCMS SDK를 초기화할 수 있는 다양한 함수와 유틸리티를 제공합니다. 이 함수들을 사용하여 SDK를 설정하고 구성하는 등의 작업을 수행할 수 있습니다.
+
+```ts twoslash
+///
+// ---cut---
+import SDK from 'studiocms:sdk';
+
+const {
+ siteConfig,
+ ghostUser,
+} = SDK.INIT;
+```
+
+### `SDK.GET`
+
+`SDK.GET` 객체는 Astro DB에서 콘텐츠를 검색할 수 있는 다양한 함수와 유틸리티를 제공합니다. 이 함수들을 사용하여 ID, 타입 등으로 콘텐츠를 가져올 수 있습니다.
+
+```ts twoslash
+///
+// ---cut---
+import SDK from 'studiocms:sdk';
+
+const {
+ database,
+ databaseEntry,
+ databaseTable,
+ permissionsLists,
+ packagePages,
+} = SDK.GET;
+```
+
+### `SDK.POST`
+
+`SDK.POST` 객체는 Astro DB에 콘텐츠를 생성할 수 있는 다양한 함수와 유틸리티를 제공합니다. 이 함수들을 사용하여 타입, ID 등으로 콘텐츠를 생성할 수 있습니다.
+
+```ts twoslash
+///
+// ---cut---
+import SDK from 'studiocms:sdk';
+
+const {
+ databaseEntry,
+ databaseEntries,
+} = SDK.POST;
+```
+
+### `SDK.UPDATE`
+
+`SDK.UPDATE` 객체는 Astro DB에서 콘텐츠를 업데이트할 수 있는 다양한 함수와 유틸리티를 제공합니다. 이 함수들을 사용하여 ID, 타입 등으로 콘텐츠를 업데이트할 수 있습니다.
+
+```ts twoslash
+///
+// ---cut---
+import SDK from 'studiocms:sdk';
+
+const {
+ page,
+ pageContent,
+ tags,
+ categories,
+ permissions,
+ siteConfig,
+ folder,
+} = SDK.UPDATE;
+```
+
+### `SDK.DELETE`
+
+`SDK.DELETE` 객체는 Astro DB에서 콘텐츠를 삭제할 수 있는 다양한 함수와 유틸리티를 제공합니다. 이 함수들을 사용하여 ID, 타입 등으로 콘텐츠를 삭제할 수 있습니다.
+
+```ts twoslash
+///
+// ---cut---
+import SDK from 'studiocms:sdk';
+
+const {
+ page,
+ pageContent,
+ pageContentLang,
+ tags,
+ categories,
+ permissions,
+ diffTracking,
+ folder,
+ user,
+} = SDK.DELETE;
+```
+
+### `SDK.db`
+
+`SDK.db` 객체는 Astro DB와 직접 상호 작용할 수 있는 다양한 함수와 유틸리티를 제공합니다. 이 함수들을 사용하여 데이터베이스를 쿼리하거나, 사용자 정의 쿼리를 실행하는 등의 작업을 수행할 수 있습니다.
+
+```ts twoslash
+///
+// ---cut---
+import SDK from 'studiocms:sdk';
+
+const { db } = SDK;
+```
+
+`db` 사용 방법에 대한 더 자세한 내용은 [Astro DB 가이드](https://docs.astro.build/ko/guides/astro-db/)를 확인하세요.
+
+
+### `SDK.REST_API`
+
+`SDK.REST_API` 객체는 REST API가 StudioCMS 및 Astro DB와 상호 작용하는 데 사용하는 다양한 함수와 유틸리티를 제공합니다.
+
+```ts twoslash
+///
+// ---cut---
+import SDK from 'studiocms:sdk';
+
+const {
+ tokens: {
+ get: getToken,
+ new: newToken,
+ delete: deleteToken,
+ verify: verifyToken,
+ },
+} = SDK.REST_API;
+```
+
+### `SDK.diffTracking`
+
+`SDK.diffTracking` 객체는 Astro DB의 변경 사항을 추적할 수 있는 다양한 함수와 유틸리티를 제공합니다. 이 함수들을 사용하여 콘텐츠 변경 사항, 사용자 변경 사항 등을 추적할 수 있습니다.
+
+```ts twoslash
+///
+// ---cut---
+import SDK from 'studiocms:sdk';
+
+const {
+ insert,
+ clear,
+ get,
+ revertToDiff
+} = SDK.diffTracking;
+```
+
+### 유틸리티 함수
+
+StudioCMS SDK는 SDK와 상호 작용하는 데 사용할 수 있는 다양한 유틸리티 함수도 제공합니다. 이러한 함수는 다음과 같습니다.
+
+```ts twoslash
+///
+// ---cut---
+import SDK from 'studiocms:sdk';
+
+const {
+ addPageToFolderTree,
+ findNodeById,
+ findNodeByPath,
+ findNodesAlongPath,
+ getFullPath,
+ parseIdNumberArray,
+ parseIdStringArray,
+ generateRandomIDNumber,
+ generateToken,
+ testToken,
+ combineRanks,
+ verifyRank,
+ buildFolderTree,
+ getAvailableFolders,
+ clearUserReferences,
+ collectCategories,
+ collectTags,
+ collectPageData,
+ collectUserData,
+ generateRandomPassword,
+} = SDK;
+```
+
+## StudioCMS SDK (캐시됨)
+
+StudioCMS SDK는 표준 SDK 위에 캐싱 계층을 둔, SDK 기능의 제한된 하위 집합을 포함하는 캐시된 버전의 SDK도 제공합니다. 다음 구문을 사용하여 캐시된 SDK를 가져올 수 있습니다.
+
+```ts twoslash
+///
+// ---cut---
+import SDKCached from 'studiocms:sdk/cache';
+```
+
+### `SDKCached.GET`
+
+`SDKCached.GET` 객체는 캐싱 계층을 덧붙여 Astro DB에서 콘텐츠를 검색할 수 있는 다양한 함수와 유틸리티를 제공합니다. 이 함수들을 사용하여 ID, 타입 등으로 콘텐츠를 가져올 수 있습니다.
+
+```ts twoslash
+///
+// ---cut---
+import SDKCached from 'studiocms:sdk/cache';
+
+const {
+ page,
+ pages,
+ siteConfig,
+ latestVersion,
+ folderTree,
+ pageFolderTree,
+ folderList,
+ folder,
+} = SDKCached.GET;
+```
+
+### `SDKCached.CLEAR`
+
+`SDKCached.CLEAR` 객체는 캐시된 SDK의 캐시를 지울 수 있는 다양한 함수와 유틸리티를 제공합니다. 이 함수들을 사용하여 특정 콘텐츠 타입의 캐시를 지우거나, 특정 콘텐츠 ID의 캐시를 지우는 등의 작업을 수행할 수 있습니다.
+
+```ts twoslash
+///
+// ---cut---
+import SDKCached from 'studiocms:sdk/cache';
+
+const {
+ page,
+ pages,
+ latestVersion,
+ folderTree,
+ folderList,
+} = SDKCached.CLEAR;
+```
+
+### `SDKCached.UPDATE`
+
+`SDKCached.UPDATE` 객체는 캐싱 계층을 덧붙여 Astro DB에서 콘텐츠를 업데이트할 수 있는 다양한 함수와 유틸리티를 제공합니다. 이 함수들을 사용하여 ID, 타입 등으로 콘텐츠를 업데이트할 수 있습니다.
+
+```ts twoslash
+///
+// ---cut---
+import SDKCached from 'studiocms:sdk/cache';
+
+const {
+ page,
+ siteConfig,
+ latestVersion,
+ folderTree,
+ folderList,
+ folder,
+} = SDKCached.UPDATE;
+```
+
+### `SDKCached.db`
+
+표준 SDK의 `db` 객체로 전달됩니다.
+
+자세한 정보는 [`SDK.db`](#sdkdb)를 확인하세요.