Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
170 changes: 132 additions & 38 deletions src/content/docs/ko/guides/deploy/deno.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,41 +8,48 @@ i18nReady: true
---
import { Steps } from '@astrojs/starlight/components';
import StaticSsrTabs from '~/components/tabs/StaticSsrTabs.astro';
import PackageManagerTabs from '~/components/tabs/PackageManagerTabs.astro'

전 세계 엣지에서 JavaScript, TypeScript 및 WebAssembly를 실행하는 분산 시스템인 [Deno Deploy](https://deno.com/deploy)에 서버 측 렌더링된 Astro 사이트를 배포할 수 있습니다.
Deno를 사용하여 자체 서버 또는 전 세계 엣지에서 JavaScript, TypeScript 및 WebAssembly를 실행하는 분산 시스템인 [Deno Deploy](https://deno.com/deploy)에 정적 또는 요청 시 렌더링되는 Astro 사이트를 배포할 수 있습니다.

안내서에는 GitHub Actions 또는 Deno Deploy의 CLI를 통해 Deno Deploy에 배포하기 위한 지침이 포함되어 있습니다.
가이드에는 Deno를 사용하여 자체 서버에서 Astro 사이트를 실행하고 GitHub Actions 또는 Deno Deploy CLI를 통해 Deno Deploy에 배포하는 방법에 대한 지침이 포함되어 있습니다.

## 요구 사항

이 가이드에서는 [Deno](https://deno.com/)가 이미 설치되어 있다고 가정합니다.

## 프로젝트 구성

[Deno Deploy](https://deno.com/deploy)에 Astro 프로젝트를 정적 사이트 또는 서버 측 렌더링 사이트 (SSR)로 배포할 수 있습니다.
Astro 프로젝트는 정적 사이트 또는 요청 시 렌더링되는 사이트로 배포될 수 있습니다.

### 정적 사이트

Astro 프로젝트는 기본적으로 정적 사이트입니다. 정적 Astro 사이트를 Deno Deploy에 배포하기 위해 추가 구성이 필요하지 않습니다.
기본적으로 Astro 프로젝트는 정적 사이트입니다. Deno 또는 Deno Deploy를 사용하여 정적 Astro 사이트를 배포하는 데 추가 구성이 필요하지 않습니다.

### SSR용 어댑터
### 요청 시 렌더링을 위한 어댑터

Astro 프로젝트에서 SSR을 활성화하고 Deno Deploy에 배포하려면:

`astro add` 명령을 사용하여 Astro 프로젝트에서 SSR을 활성화하려면 [Deno 어댑터][Deno adapter]를 추가하세요. 그러면 어댑터가 설치되고 `astro.config.mjs` 파일이 한 번에 적절하게 변경됩니다.

```bash
npx astro add deno
```

대신 어댑터를 수동으로 설치하려면 다음 두 단계를 완료하세요.
Deno를 사용하여 Astro 프로젝트에서 요청 시 렌더링을 활성화하고 Deno Deploy에 배포하려면 다음을 수행하세요.

<Steps>
1. 선호하는 패키지 관리자를 사용하여 프로젝트의 종속성에 [`@deno/astro-adapter` 어댑터][Deno adapter]를 설치합니다. npm을 사용 중이거나 확실하지 않은 경우 터미널에서 다음을 실행하세요.

```bash
npm install @deno/astro-adapter
```
1. 선호하는 패키지 관리자를 사용하여 프로젝트의 종속성에 [`@deno/astro-adapter` 어댑터][Deno adapter]를 설치합니다.

<PackageManagerTabs>
<Fragment slot="npm">
```shell
npm install @deno/astro-adapter
```
</Fragment>
<Fragment slot="pnpm">
```shell
pnpm install @deno/astro-adapter
```
</Fragment>
<Fragment slot="yarn">
```shell
yarn add @deno/astro-adapter
```
</Fragment>
</PackageManagerTabs>

2. `astro.config.mjs` 프로젝트 구성 파일을 아래 변경 사항으로 업데이트하세요.

Expand All @@ -57,7 +64,7 @@ npx astro add deno
});
```

다음으로 `package.json` 파일의 `preview` 스크립트를 아래 변경 사항으로 업데이트하세요.
3. `package.json` 파일의 `preview` 스크립트를 아래 변경 사항으로 업데이트하세요.

```json del={8} ins={9}
// package.json
Expand All @@ -75,14 +82,90 @@ npx astro add deno

이제 이 명령을 사용하여 Deno를 통해 로컬에서 프로덕션 Astro 사이트를 미리 볼 수 있습니다.

```bash
npm run preview
```
<PackageManagerTabs>
<Fragment slot="npm">
```shell
npm run preview
```
</Fragment>
<Fragment slot="pnpm">
```shell
pnpm run preview
```
</Fragment>
<Fragment slot="yarn">
```shell
yarn run preview
```
</Fragment>
</PackageManagerTabs>
</Steps>

## 배포하는 방법

GitHub Actions 또는 Deno Deploy의 CLI (명령줄 인터페이스)를 사용하여 Deno Deploy에 배포할 수 있습니다.
자체 서버에서 Astro 사이트를 실행하거나 GitHub Actions 또는 Deno Deploy의 CLI (명령줄 인터페이스)를 사용하여 Deno Deploy에 배포할 수 있습니다.

### 자체 서버에 배포

<Steps>
1. 서버에 프로젝트를 복사합니다.

2. 선호하는 패키지 관리자를 사용하여 프로젝트 의존성을 설치합니다.

<PackageManagerTabs>
<Fragment slot="npm">
```shell
npm install
```
</Fragment>
<Fragment slot="pnpm">
```shell
pnpm install
```
</Fragment>
<Fragment slot="yarn">
```shell
yarn
```
</Fragment>
</PackageManagerTabs>

3. 선호하는 패키지 관리자를 사용하여 Astro 사이트를 빌드합니다.

<PackageManagerTabs>
<Fragment slot="npm">
```shell
npm run build
```
</Fragment>
<Fragment slot="pnpm">
```shell
pnpm run build
```
</Fragment>
<Fragment slot="yarn">
```shell
yarn run build
```
</Fragment>
</PackageManagerTabs>

4. 다음 명령으로 애플리케이션을 시작합니다.

<StaticSsrTabs>
<Fragment slot="static">
```bash
deno run -A jsr:@std/http/file-server dist
```
</Fragment>

<Fragment slot="ssr">
```bash
deno run -A ./dist/server/entry.mjs
```
</Fragment>
</StaticSsrTabs>
</Steps>

### GitHub Actions 배포

Expand Down Expand Up @@ -167,8 +250,7 @@ GitHub Actions 또는 Deno Deploy의 CLI (명령줄 인터페이스)를 사용
uses: denoland/deployctl@v1
with:
project: my-deno-project # TODO: Deno Deploy 프로젝트 이름으로 변경
entrypoint: server/entry.mjs
root: dist
entrypoint: dist/server/entry.mjs
```
</Fragment>
</StaticSsrTabs>
Expand All @@ -187,26 +269,38 @@ GitHub Actions 또는 Deno Deploy의 CLI (명령줄 인터페이스)를 사용
deno install -gArf jsr:@deno/deployctl
```

2. Astro 빌드 단계를 실행합니다.

```bash
npm run build
```
2. 선호하는 패키지 관리자를 사용하여 Astro 사이트를 빌드합니다.

<PackageManagerTabs>
<Fragment slot="npm">
```shell
npm run build
```
</Fragment>
<Fragment slot="pnpm">
```shell
pnpm run build
```
</Fragment>
<Fragment slot="yarn">
```shell
yarn run build
```
</Fragment>
</PackageManagerTabs>

3. 배포하려면 `deployctl`을 실행합니다!

아래 명령에서 `<ACCESS-TOKEN>`을 [Personal Access Token](https://dash.deno.com/account#access-tokens)으로 바꾸고 `<MY-DENO-PROJECT>`를 Deno Deploy 프로젝트 이름으로 바꿉니다.

<StaticSsrTabs>
<Fragment slot="static">
```bash
cd dist && DENO_DEPLOY_TOKEN=<ACCESS-TOKEN> deployctl deploy --project=<MY-DENO-PROJECT> jsr:@std/http/file-server
cd dist && deployctl deploy jsr:@std/http/file-server
```
</Fragment>

<Fragment slot="ssr">
```bash
DENO_DEPLOY_TOKEN=<ACCESS-TOKEN> deployctl deploy --project=<MY-DENO-PROJECT> --no-static --include=./dist ./dist/server/entry.mjs
deployctl deploy ./dist/server/entry.mjs
```
</Fragment>
</StaticSsrTabs>
Expand All @@ -226,7 +320,7 @@ GitHub Actions 또는 Deno Deploy의 CLI (명령줄 인터페이스)를 사용
"start": "astro dev",
"build": "astro build",
"preview": "astro preview",
"deno-deploy": "npm run build && cd dist && deployctl deploy --project=<MY-DENO-PROJECT> jsr:@std/http/file-server"
"deno-deploy": "npm run build && cd dist && deployctl deploy jsr:@std/http/file-server"
}
}
```
Expand All @@ -241,7 +335,7 @@ GitHub Actions 또는 Deno Deploy의 CLI (명령줄 인터페이스)를 사용
"start": "astro dev",
"build": "astro build",
"preview": "deno run --allow-net --allow-read --allow-env ./dist/server/entry.mjs",
"deno-deploy": "npm run build && deployctl deploy --project=<MY-DENO-PROJECT> --no-static --include=./dist ./dist/server/entry.mjs"
"deno-deploy": "npm run build && deployctl deploy ./dist/server/entry.mjs"
}
}
```
Expand All @@ -251,7 +345,7 @@ GitHub Actions 또는 Deno Deploy의 CLI (명령줄 인터페이스)를 사용
그런 다음 이 명령을 사용하여 Astro 사이트를 한 단계로 빌드하고 배포할 수 있습니다.

```bash
DENO_DEPLOY_TOKEN=<ACCESS-TOKEN> npm run deno-deploy
npm run deno-deploy
```
</Steps>

Expand Down