From e9d61f5f74fd09ee14ee79b37008440d25db5018 Mon Sep 17 00:00:00 2001
From: Junseong Park
Date: Fri, 19 Dec 2025 11:02:08 +0900
Subject: [PATCH 1/3] v5
---
src/content/docs/ko/guides/upgrade-to/v5.mdx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/content/docs/ko/guides/upgrade-to/v5.mdx b/src/content/docs/ko/guides/upgrade-to/v5.mdx
index 03a923a597423..4f6da305211d1 100644
--- a/src/content/docs/ko/guides/upgrade-to/v5.mdx
+++ b/src/content/docs/ko/guides/upgrade-to/v5.mdx
@@ -1104,7 +1104,7 @@ function useRoute(route: IntegrationRouteData) {
}
```
-[`IntegrationRouteData`에 대한 API 참조](/ko/reference/integrations-reference/#integrationroutedata-타입-참조)를 확인하세요.
+[`IntegrationRouteData`에 대한 API 참조](/ko/reference/integrations-reference/#integrationroutedata)를 확인하세요.
### 변경됨: `distURL`은 이제 배열입니다 (통합 API)
@@ -1131,7 +1131,7 @@ if (route.distURL) {
}
```
-[`IntegrationRouteData`에 대한 API 참조](/ko/reference/integrations-reference/#integrationroutedata-타입-참조)를 확인하세요.
+[`IntegrationRouteData`에 대한 API 참조](/ko/reference/integrations-reference/#integrationroutedata)를 확인하세요.
### 변경됨: `app.render()`에 전달되는 인수 (어댑터 API)
From 52d3cf5584a52f5fcf4017a468640fcb8fe93c5c Mon Sep 17 00:00:00 2001
From: Junseong Park
Date: Fri, 19 Dec 2025 11:06:23 +0900
Subject: [PATCH 2/3] adapter-reference
---
src/content/docs/ko/reference/adapter-reference.mdx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/content/docs/ko/reference/adapter-reference.mdx b/src/content/docs/ko/reference/adapter-reference.mdx
index 143ae0e573e0c..acc4e8c687033 100644
--- a/src/content/docs/ko/reference/adapter-reference.mdx
+++ b/src/content/docs/ko/reference/adapter-reference.mdx
@@ -475,11 +475,11 @@ return app.render(request, {
-**타입:** `RouteData`
+**타입:** [`RouteData`](/ko/reference/integrations-reference/#routedata)
**기본값:** `app.match(request)`
-렌더링할 경로를 이미 알고 있는 경우 [`integrationRouteData`](/ko/reference/integrations-reference/#integrationroutedata-타입-참조)에 대한 값을 제공하세요. 그렇게 하면 렌더링할 경로를 결정하기 위해 [`app.match()`](#appmatch)에 대한 내부 호출을 우회하게 됩니다.
+라우트에 대한 정보를 정의합니다. 이는 렌더링할 라우트를 이미 알고 있을 때 유용합니다. 그렇게 하면 렌더링할 라우트를 결정하기 위해 [`app.match()`](#appmatch)에 대한 내부 호출을 우회하게 됩니다.
```js "routeData"
const routeData = app.match(request);
From 9abf7b9a47beac86bd3b732ddd366ba4b9b36524 Mon Sep 17 00:00:00 2001
From: Junseong Park
Date: Fri, 19 Dec 2025 12:01:57 +0900
Subject: [PATCH 3/3] integrations-reference
---
.../ko/reference/integrations-reference.mdx | 265 +++++++++++-------
1 file changed, 162 insertions(+), 103 deletions(-)
diff --git a/src/content/docs/ko/reference/integrations-reference.mdx b/src/content/docs/ko/reference/integrations-reference.mdx
index fabca33a94f56..d212374a84ace 100644
--- a/src/content/docs/ko/reference/integrations-reference.mdx
+++ b/src/content/docs/ko/reference/integrations-reference.mdx
@@ -615,7 +615,7 @@ function setPrerender() {
-**타입:** [`IntegrationResolvedRoute[]`](#integrationresolvedroute-타입-참조)
+**타입:** [`IntegrationResolvedRoute[]`](#integrationresolvedroute)
연관된 메타데이터를 포함한 모든 라우트 목록입니다.
@@ -1076,7 +1076,7 @@ export default {
-**타입:** Map\<IntegrationRouteData, URL\>
+**타입:** Map\<IntegrationRouteData, URL\>
@@ -1216,7 +1216,7 @@ export default function myIntegration() {
-**타입:** [`IntegrationRouteData[]`](#integrationroutedata-타입-참조)
+**타입:** [`IntegrationRouteData[]`](#integrationroutedata)
생성된 모든 경로와 연결된 메타데이터 목록입니다.
@@ -1234,7 +1234,7 @@ export default function myIntegration() {
-[`IntegrationResolvedRoute`](#integrationresolvedroute-타입-참조) `pattern` 속성별로 그룹화된 출력 파일 경로의 URL을 포함합니다.
+[`IntegrationResolvedRoute`](#integrationresolvedroute) `pattern` 속성별로 그룹화된 출력 파일 경로의 URL을 포함합니다.
#### `pages` 옵션
@@ -1265,6 +1265,23 @@ Astro는 향후 내장 훅을 위해 `astro:` 접두사를 예약합니다. 사
## 통합 타입 참조
+`astro` 모듈에서 다음 타입을 가져올 수 있습니다.
+
+```ts
+import type {
+ AstroIntegrationLogger,
+ HookParameters,
+ IntegrationResolvedRoute,
+ RedirectConfig,
+ RouteData,
+ RoutePart,
+ RouteType,
+ ValidRedirectStatus,
+ // 다음 타입은 더 이상 사용되지 않습니다.
+ IntegrationRouteData,
+} from "astro";
+```
+
### `AstroIntegrationLogger`
로그를 작성하는 데 유용한 Astro 로거의 인스턴스입니다. 이 로거는 CLI를 통해 구성된 동일한 [로그 수준](/ko/reference/cli-reference/#--verbose)을 사용합니다.
@@ -1339,22 +1356,20 @@ function mySetup(options: HookParameters<'astro:config:setup'>) {
}
```
-### `IntegrationResolvedRoute` 타입 참조
+### `IntegrationResolvedRoute`
+
+속성이 다시 매핑된 [`RouteData`](#routedata)의 하위 집합입니다.
```ts
-interface IntegrationResolvedRoute {
+interface IntegrationResolvedRoute extends Pick<
+ RouteData,
+ 'generate' | 'params' | 'pathname' | 'segments' | 'type' | 'redirect' | 'origin'
+ > & {
pattern: RouteData['route'];
patternRegex: RouteData['pattern'];
entrypoint: RouteData['component'];
isPrerendered: RouteData['prerender'];
redirectRoute?: IntegrationResolvedRoute;
- generate: (data?: any) => string;
- params: string[];
- pathname?: string;
- segments: RoutePart[][];
- type: RouteType;
- redirect?: RedirectConfig;
- origin: 'internal' | 'external' | 'project';
}
```
@@ -1362,7 +1377,7 @@ interface IntegrationResolvedRoute {
-**타입:** `string`
+**타입:** [`RouteData['route']`](#route)
경로를 기반으로 경로의 타입을 식별할 수 있습니다. 다음은 패턴과 연결된 경로의 몇 가지 예입니다.
@@ -1374,7 +1389,7 @@ interface IntegrationResolvedRoute {
-**타입:** `RegExp`
+**타입:** [`RouteData['pattern']`](#pattern-1)
입력 URL을 요청된 경로와 매치하는 데 사용되는 정규식에 접근할 수 있습니다.
@@ -1385,7 +1400,7 @@ interface IntegrationResolvedRoute {
-**타입:** `string`
+**타입:** [`RouteData['component']`](#component)
소스 컴포넌트의 URL 경로 이름입니다.
@@ -1394,7 +1409,7 @@ interface IntegrationResolvedRoute {
-**타입:** `boolean`
+**타입:** [`RouteData['prerender']`](#prerender)
경로가 [온디맨드 렌더링](/ko/guides/on-demand-rendering/)을 사용하는지 여부를 결정합니다. 이 값은 다음과 같이 구성된 프로젝트의 경우 `true`가 됩니다.
@@ -1410,6 +1425,40 @@ interface IntegrationResolvedRoute {
`IntegrationResolvedRoute.type`의 값이 `redirect`인 경우, 값은 리디렉션할 `IntegrationResolvedRoute`가 됩니다. 그렇지 않으면 값은 undefined가 됩니다.
+### `RedirectConfig`
+
+
+
+**타입:** string | \{ status: ValidRedirectStatus; destination: string; \}
+
+
+리디렉션의 목적지를 설명합니다. 문자열이거나 상태 코드와 목적지에 대한 정보를 포함하는 객체일 수 있습니다.
+
+### `RouteData`
+
+라우트에 대한 정보를 설명합니다. 여기에는 다음 속성이 포함됩니다.
+
+#### `route`
+
+
+
+**타입:** `string`
+
+
+현재 라우트 패턴을 정의합니다. 다음은 패턴과 연관된 경로의 몇 가지 예시입니다.
+* `src/pages/index.astro`는 `/`가 됩니다.
+* `src/pages/blog/[...slug].astro`는 `/blog/[...slug]`가 됩니다.
+* `src/pages/site/[blog]/[...slug].astro`는 `/site/[blog]/[...slug]`가 됩니다.
+
+#### `component`
+
+
+
+**타입:** `string`
+
+
+소스 컴포넌트 URL을 지정합니다.
+
#### `generate()`
@@ -1419,10 +1468,10 @@ interface IntegrationResolvedRoute {
경로의 선택적 매개변수를 제공하고, 경로 패턴과 함께 보간하여 경로의 이름을 반환하는 함수입니다.
-예를 들어, `/blog/[...id].astro`와 같은 경로를 사용하면 `generate` 함수는 다음을 반환할 수 있습니다.
+예를 들어, `/blog/[...id].astro`와 같은 경로를 사용하면 `generate()` 함수는 다음을 반환할 수 있습니다.
```js
-console.log(generate({ id: 'presentation' })) // `/blog/presentation`가 기록됩니다.
+generate({ id: 'presentation' }) // `/blog/presentation`을 출력합니다.
```
#### `params`
@@ -1443,11 +1492,32 @@ console.log(generate({ id: 'presentation' })) // `/blog/presentation`가 기록
일반 경로의 경우, 값은 이 경로가 제공될 URL 경로 이름이 됩니다. 프로젝트에서 [동적 경로](/ko/guides/routing/#동적-라우트)(예: `[dynamic]` 또는 `[...spread]`)를 사용하는 경우 경로 이름은 undefined가 됩니다.
+#### `distURL`
+
+
+
+**타입:** `URL[] | undefined`
+
+
+
+이 라우트에서 생성된 실제 파일의 경로를 정의합니다. 라우트가 미리 렌더링되지 않은 경우 값은 `undefined`이거나 빈 배열입니다.
+
+#### `pattern`
+
+
+
+**타입:** `RegExp`
+
+
+입력된 URL을 요청된 라우트와 일치시키는 데 사용할 정규식을 지정합니다.
+
+예를 들어, `[fruit]/about.astro` 경로가 주어지면 정규식은 `/^\/([^/]+?)\/about\/?$/`가 됩니다. `pattern.test("banana/about")`을 사용하면 `true`가 반환됩니다.
+
#### `segments`
-**타입:** RoutePart[][]
+**타입:** RoutePart[][]
추가 메타데이터와 함께 경로 [`params`](#params)에 접근할 수 있습니다. 각 객체는 다음 속성을 포함합니다.
@@ -1469,172 +1539,161 @@ console.log(generate({ id: 'presentation' })) // `/blog/presentation`가 기록
-**타입:** `RouteType`
+**타입:** [`RouteType`](#routetype)
-경로의 타입을 식별할 수 있습니다. 가능한 값은 다음과 같습니다.
-* `page`: 파일 시스템에 있는 경로로, 일반적으로 Astro 컴포넌트입니다.
-* `endpoint`: 파일 시스템에 있는 경로로, 일반적으로 엔드포인트 메서드를 노출하는 JS 파일입니다.
-* `redirect`: 파일 시스템에 있는 다른 경로를 가리키는 경로입니다.
-* `fallback`: 파일 시스템에 존재하지 않는 경로로, 일반적으로 미들웨어를 통해 다른 방법으로 처리해야 합니다.
+[라우트의 타입](#routetype)을 식별할 수 있습니다.
-#### `redirect`
+#### `prerender`
-**타입:** RedirectConfig | undefined
+**타입:** `boolean`
-리디렉션할 경로에 접근할 수 있습니다. 문자열이거나 상태 코드와 목적지에 대한 정보를 포함하는 객체일 수 있습니다.
+라우트가 [온디맨드 렌더링](/ko/guides/on-demand-rendering/)을 사용할지 또는 빌드 시점에 정적으로 사전 렌더링할지 여부를 결정합니다.
-#### `origin`
+라우팅 참조에서 [`prerendered`](/ko/reference/routing-reference/#prerender)를 확인하세요.
+
+#### `redirect`
-**타입:** `'internal' | 'external' | 'project'`
+**타입:** RedirectConfig | undefined
-경로가 Astro 코어(`internal`), 통합 기능(`external`) 또는 사용자 프로젝트(`project`)에서 왔는지 여부를 결정합니다.
-
-### `IntegrationRouteData` 타입 참조
-
-:::caution
-이 타입은 v5.0부터 더 이상 사용되지 않습니다. 대신 [`IntegrationResolvedRoute`](#integrationresolvedroute-타입-참조)를 사용하세요.
-:::
-
-통합 기능에서 사용되는 `RouteData`의 축소 버전입니다.
+리디렉션할 라우트에 액세스할 수 있습니다.
-```ts
-interface IntegrationRouteData {
- type: RouteType;
- component: string;
- pathname?: string;
- pattern: RegExp;
- params: string[];
- segments: { content: string; dynamic: boolean; spread: boolean; }[][];
- generate: (data?: any) => string;
- prerender: boolean;
- distURL?: URL[];
- redirect?: RedirectConfig;
- redirectRoute?: IntegrationRouteData;
-}
-```
-
-#### `type`
+#### `redirectRoute`
-**타입:** `RouteType`
+**타입:** `RouteData | undefined`
-경로의 타입을 식별할 수 있습니다. 값은 다음 중 하나일 수 있습니다.
-- `page`: 파일 시스템에 있는 경로로, 일반적으로 Astro 컴포넌트입니다.
-- `endpoint`: 파일 시스템에 있는 경로로, 일반적으로 엔드포인트 메서드를 노출하는 JS 파일입니다.
-- `redirect`: 파일 시스템에 있는 다른 경로를 가리키는 경로입니다.
-- `fallback`: 파일 시스템에 존재하지 않는 경로로, 일반적으로 미들웨어를 통해 다른 방법으로 처리해야 합니다.
+[`RouteData.type`](#type)가 `redirect`일 때 리디렉션할 `RouteData`를 지정합니다.
-#### `component`
+#### `fallbackRoutes`
-**타입:** `string`
+**타입:** `RouteData[]`
+
-소스 컴포넌트 URL 경로 이름에 접근할 수 있습니다.
+[`i18n.fallback`](/ko/reference/configuration-reference/#i18nfallback)에 로케일 목록이 지정되어 있을 때, 대체로 사용할 `RouteData` 목록을 정의합니다.
-#### `pathname`
+#### `isIndex`
-**타입:** `string | undefined`
+**타입:** `boolean`
-일반 경로의 경우, 값은 이 경로가 제공될 URL 경로 이름이 됩니다. 프로젝트에서 [동적 경로](/ko/guides/routing/#동적-라우트) (예: `[dynamic]` 또는 `[...spread]`)를 사용하는 경우, 경로 이름은 undefined가 됩니다.
+해당 라우트가 디렉터리 인덱스인지 여부를 지정합니다. (예: `src/pages/index.astro`, `src/pages/blog/index.astro`)
-#### `pattern`
+#### `origin`
-**타입:** `RegExp`
+**타입:** `'internal' | 'external' | 'project'`
+
-입력 URL을 요청된 경로와 매치하는 데 사용되는 정규식에 접근할 수 있습니다.
+해당 라우트가 Astro 코어(`internal`), 통합 기능(`external`), 또는 사용자 프로젝트(`project`)에서 비롯된 것인지 결정합니다.
-예를 들어, `[fruit]/about.astro` 경로가 주어지면 정규식은 `/^\/([^/]+?)\/about\/?$/`가 됩니다. `pattern.test("banana/about")`을 사용하면 `true`가 반환됩니다.
-
-#### `params`
+### `RoutePart`
-**타입:** `string[]`
+**타입:** `{ content: string; dynamic: boolean; spread: boolean; }`
-경로 `params`에 접근할 수 있습니다. 예를 들어, 프로젝트에서 `/pages/[lang]/[...slug].astro`와 같은 [동적 경로](/ko/guides/routing/#동적-라우트)를 사용하는 경우 값은 `['lang', '...slug']`가 됩니다.
+라우트 세그먼트를 설명합니다. 여기에는 다음과 같은 속성들이 포함됩니다.
-#### `segments`
+#### `content`
-**타입:** `{ content: string; dynamic: boolean; spread: boolean; }[][]`
+**타입:** `string`
-추가 메타데이터와 함께 경로 [`params`](#params-1)에 접근할 수 있습니다. 각 객체는 다음 속성을 포함합니다.
-* `content`: `param`
-* `dynamic`: 경로가 동적인지 여부
-* `spread`: 동적 경로가 spread 구문을 사용하는지 여부
+라우트의 매개변수 이름을 지정합니다. 예를 들면 다음과 같습니다.
-예를 들어, 경로 `/pages/[lang]/index.astro`는 `[[ { content: 'lang', dynamic: true, spread: false } ]]` 세그먼트를 출력합니다.
+* `about.astro`의 이름은 `about`입니다.
+* `[slug].astro`의 이름은 `slug`입니다.
+* `[...id].astro`의 이름은 `id`입니다.
-#### `generate()`
+#### `dynamic`
-**타입:** `(data?: any) => string`
+**타입:** `boolean`
-경로의 선택적 매개변수를 제공하고, 경로 패턴과 함께 보간하여 경로의 이름을 반환하는 함수입니다.
-
-예를 들어, `/blog/[...id].astro`와 같은 경로가 있는 경우, `generate` 함수는 다음을 반환할 수 있습니다.
+해당 라우트가 동적인지 여부를 나타냅니다.
-```js
-console.log(generate({ id: 'presentation' })) // `/blog/presentation`가 기록됩니다.
-```
-
-#### `prerender`
+#### `spread`
**타입:** `boolean`
-경로를 미리 렌더링할지 여부를 결정합니다.
+동적 라우트가 스프레드 문법을 사용하는지 여부를 나타냅니다.
-#### `distURL`
+### `RouteType`
-**타입:** `URL[] | undefined`
+**타입:** `'page' | 'endpoint' | 'redirect' | 'fallback'`
-이 경로에서 방출된 물리적 파일의 경로입니다. 경로가 미리 렌더링되지 **않은** 경우 값은 `undefined`이거나 빈 배열입니다.
+지원되는 라우트 타입들의 유니언입니다.
-#### `redirect`
+* `page`: 파일 시스템에 존재하는 라우트로, 일반적으로 Astro 컴포넌트입니다.
+* `endpoint`: 파일 시스템에 존재하는 라우트로, 일반적으로 엔드포인트 메서드를 노출하는 JS 파일입니다.
+* `redirect`: 파일 시스템에 존재하는 다른 라우트를 가리키는 라우트입니다.
+* `fallback`: 파일 시스템에는 존재하지 않으며, 보통 미들웨어 등 다른 방식으로 처리해야 하는 라우트입니다.
+
+### `ValidRedirectStatus`
-**타입:** RedirectConfig | undefined
+**타입:** `301 | 302 | 303 | 307 | 308 | 300 | 304`
-리디렉션할 경로에 접근할 수 있습니다. 문자열이거나 상태 코드와 목적지에 대한 정보를 포함하는 객체일 수 있습니다.
+지원되는 리디렉션 상태 코드들의 유니언입니다.
-#### `redirectRoute`
+### 사용 중단된 타입 가져오기
+
+다음 타입들은 더 이상 권장되지 않으며, 향후 주요 버전에서 제거될 예정입니다.
+
+#### `IntegrationRouteData`
+
+:::caution
+이 타입은 v5.0부터 사용 중단되었습니다. 대신 [`IntegrationResolvedRoute`](#integrationresolvedroute)를 사용하세요.
+:::
+
+통합에서 사용되는 [`RouteData`](#routedata)의 축소된 버전입니다.
+
+```ts
+type IntegrationRouteData = Omit<
+ RouteData,
+ 'isIndex' | 'fallbackRoutes' | 'redirectRoute' | 'origin'
+> & {
+ redirectRoute?: IntegrationRouteData;
+};
+```
+
+##### `redirectRoute`
**타입:** `IntegrationRouteData | undefined`
-`RouteData.type`의 값이 `redirect`인 경우, 값은 리디렉션할 경로의 `IntegrationRouteData`를 포함합니다. 그렇지 않으면 값은 undefined가 됩니다.
+[`RouteData.type`](#type)의 값이 `redirect`인 경우, 값은 리디렉션할 경로의 `IntegrationRouteData`를 포함합니다. 그렇지 않으면 값은 undefined가 됩니다.
## `astro add`를 통한 설치 허용