실험적 큐 렌더링
타입: object
기본값: { enabled: false }
astro@6.0.0
새로운 기능
재귀 대신 큐를 기반으로 하는 실험적이고 성능이 더 뛰어난 렌더링 인프라를 활성화합니다.
기본적으로 Astro는 재귀 알고리즘을 사용하여 .astro, .md, .mdx 파일을 렌더링합니다. 이는 트리 구조로 직렬화된 일련의 컴포넌트를 입력으로 받아 트리의 각 노드에 대해 Astro가 렌더링 함수를 호출하는 방식입니다.
큐 렌더링이 활성화되면 Astro는 트리의 모든 노드를 순회하고 깊이 우선 노드 목록을 생성합니다. 그런 다음 이 목록을 반복하여 렌더링하며, 재귀 알고리즘이 필요하지 않습니다. 이 방식은 메모리 효율성이 더 높으며 대규모 프로젝트에서 더 많은 이점을 제공합니다.
기본 설정으로 이 기능을 활성화하려면 Astro 설정에서 queuedRendering.enabled를 true로 설정하세요.
import { defineConfig } from "astro/config";
export default defineConfig({ experimental: { queuedRendering: { enabled: true } }});향후 메이저 버전에서 Astro는 이 새로운 컴파일러를 기본적으로 사용하게 될 것이나, experimental.queuedRendering 플래그를 사용하여 미래의 동작을 미리 선택할 수 있습니다.
큐 렌더링 엔진에는 다른 가능한 최적화를 실험해 볼 수 있는 추가적인 로우 레벨 기능이 포함되어 있습니다. 이러한 최적화는 큐 엔진의 직접적인 일부가 아니며, 이 실험적인 테스트 단계에서 비효율적이라고 판명되면 제거될 수 있습니다.
노드 풀링
섹션 제목: “노드 풀링”타입: number
기본값: 1000
astro@6.0.0
새로운 기능
노드 풀링은 렌더링 간에 컴포넌트 노드를 재사용하도록 설계된 캐싱 시스템입니다. 이 기능은 초기 테스트 결과에 따라 합리적인 기본값으로 자동 활성화됩니다. 그러나 프로젝트 요구 사항에 따라 단일 풀에 결합된 노드 수를 늘리거나 줄이도록 풀 크기를 구성할 수 있습니다. 이 기능을 완전히 비활성화하려면 poolSize를 0으로 설정하세요.
노드 풀링은 동일한 컴포넌트를 공유하는 많은 페이지가 있는 웹사이트를 빌드할 때 메모리를 절약하므로 정적 페이지를 렌더링할 때 매우 효과적입니다.
온디맨드로 렌더링되는 페이지의 경우 이러한 렌더링 요청은 메모리를 공유하지 않으므로 이 전략으로 얻을 수 있는 이점이 없기 때문에 노드 풀링이 꺼집니다.
import { defineConfig } from "astro/config";
export default defineConfig({ experimental: { queuedRendering: { enabled: true, poolSize: 3000 // 3000개의 노드 풀 사용 } }});콘텐츠 캐싱
섹션 제목: “콘텐츠 캐싱”타입: boolean
기본값: false
astro@6.0.0
새로운 기능
콘텐츠 캐싱은 페이지 렌더링 중에 값(보통 문자열)을 재사용하는 또 다른 기술입니다. 현재 이 기능은 추가 구성 없이 활성화 또는 비활성화만 가능합니다. 기본적으로 비활성화되어 있지만, 활성화되면 실험적인 큐 엔진이 대부분의 대규모 콘텐츠 컬렉션에 적합한 합리적인 기본 캐시 크기를 선택합니다.
import { defineConfig } from "astro/config";
export default defineConfig({ experimental: { queuedRendering: { enabled: true, contentCache: true } }});