---
read_when:
    - 2026년 5월 성능 및 패키지 크기 정리 작업을 검증하고 있습니다.
    - OpenClaw 성능 및 종속성 블로그 게시물의 근거 수치가 필요합니다
    - 릴리스 게이트, 패키지 잠금 파일 또는 Plugin 종속성 경계를 변경하고 있습니다
summary: 2026년 5월 성능, 패키지 크기, 종속성 및 shrinkwrap 정리에 대한 시각적 요약과 기술적 근거
title: 릴리스 성능 점검
x-i18n:
    generated_at: "2026-07-12T01:14:20Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 9e98ffc9d63e14e078a19368917eb4278695e1426048dc21942f928af145d5e1
    source_path: reference/release-performance-sweep.md
    workflow: 16
---

이 페이지는 2026년 5월 OpenClaw의 성능, 패키지 크기, 의존성 및 shrinkwrap 정리 작업을 뒷받침하는 근거를 담고 있습니다. 공개 블로그 게시물의 기술적 보충 자료입니다.

여기에는 두 가지 감사 결과가 통합되어 있습니다.

- **릴리스 성능 점검:** `v2026.5.28`부터 안정 버전 `v2026.4.23`까지의 GitHub Releases를 대상으로 `OpenClaw Performance` 워크플로, `profile=smoke`, 모의 공급자 경로를 사용했습니다. 대부분의 태그 행은 단일 샘플이며, `v2026.5.27` 및 `v2026.5.28` 행에는 최신 3회 반복 릴리스 브랜치 아티팩트를 사용했습니다.
- **이전 4월 맥락:** `v2026.4.1`부터 `v2026.5.2`까지 공개된 `clawgrit-reports` 모의 공급자 기준선을 사용했으며, 문제가 있었던 4월 말 릴리스를 공개 성능 기준선으로 취급하지 않기 위한 용도로만 활용했습니다.
- **설치 용량 점검:** 임시 패키지에서 새로운 `npm install --ignore-scripts` 설치를 수행하고, 크기는 `du -sk node_modules`로, 패키지 인스턴스 수는 `node_modules` 순회로 측정했습니다.
- **npm 패키지 크기 점검:** 공개된 릴리스에 대해 `npm pack openclaw@<version> --dry-run --json`을 실행하여 압축된 tarball 크기, 압축 해제 크기 및 파일 수를 기록했습니다.

<Warning>
주요 성능 점검은 태그당 하나의 smoke 샘플을 사용하지만, `v2026.5.27` 및 `v2026.5.28` 행에는 최신 3회 반복 릴리스 브랜치 아티팩트를 사용합니다. 이전 4월 맥락에는 `clawgrit-reports`에 공개된 3회 반복 중앙값을 사용합니다. 이 수치는 릴리스 게이트 통계가 아니라 추세를 뒷받침하는 근거이자 회귀 탐색 신호로 간주하십시오.
</Warning>

## 스냅샷

성능 측정 범위: **요청된 릴리스 77개**, **아티팩트가 뒷받침하는 지점 74개**, **사용할 수 없는 CI 실행 3개**입니다. 측정된 최신 안정 버전 지점은 `v2026.5.28`입니다.

<CardGroup cols={2}>
  <Card title="안정 버전 에이전트 턴" icon="gauge">
    **콜드 턴 5.1배 단축**

    - `v2026.4.14`: 9.8초
    - `v2026.5.28`: 1.9초

  </Card>
  <Card title="공개 패키지" icon="package">
    **17.9MB tarball**

    최신 안정 버전 패키지이며, 3월 패키지 크기 최고점인 43.3MB보다 줄었습니다.

  </Card>
  <Card title="최신 안정 버전 설치" icon="hard-drive">
    **새 설치 시 361.7MiB**

    `2026.5.22`의 shrinkwrap 도입 최고점보다 중첩된 OpenClaw 의존성 트리를 크게 줄였지만, 로컬 설치 감사에서는 여전히 더 작은 259.7MiB의 중첩 트리가 남아 있습니다.

  </Card>
  <Card title="의존성 그래프" icon="boxes">
    **설치된 패키지 300개**

    스크립트를 비활성화한 새 설치에서 고유한 패키지 이름/버전 루트로 측정했으며, 이전 안정 버전보다 루트가 71개 적습니다.

  </Card>
</CardGroup>

## 5.28에서 변경된 사항

`v2026.5.27`과 `v2026.5.28` 사이의 정리 작업은 기능 자체를 제거하는 대신 기본 설치 그래프를 줄였습니다.

<CardGroup cols={2}>
  <Card title="루트 기본 그래프" icon="git-branch">
    고유한 패키지 이름/버전 루트는 **371개**에서 **300개**로 줄었습니다. 패키지 인스턴스는 **372개**에서 **301개**로 줄었습니다.
  </Card>
  <Card title="중첩 트리" icon="unplug">
    동일한 로컬 설치 감사에서 중첩된 `openclaw/node_modules`는 **656.1MiB**에서 **259.7MiB**로 줄었습니다.
  </Card>
  <Card title="네이티브 선택적 의존성 집합" icon="cpu">
    모든 플랫폼용 `@napi-rs/canvas` 네이티브 패키지 의존성 집합이 더 이상 기본 설치에 포함되지 않습니다.
  </Card>
  <Card title="공급망 범위" icon="shield">
    기본 패키지가 적다는 것은 기본적으로 신뢰해야 하는 tarball, 유지관리자, 네이티브 바이너리, 설치 시 동작 및 전이적 업데이트 경로가 적다는 의미입니다.
  </Card>
</CardGroup>

<Tip>
shrinkwrap 자체가 문제였던 것은 아닙니다. 잘못된 패키지 구성이 문제였습니다. `v2026.5.28`에도 shrinkwrap이 포함되지만, 로컬 감사에서 중첩된 의존성 트리는 훨씬 작아졌고 모든 플랫폼용 canvas 분산 의존성은 사라졌습니다.
</Tip>

## 주요 수치

문제가 있었던 4월 말 행을 공개 성능 기준선으로 사용하지 마십시오. `v2026.4.23`과 `v2026.4.29`는 회귀 근거로 유용하지만, `14x` 수준의 큰 차이는 대부분 문제가 있었던 릴리스 계열에서 회복된 정도를 나타냅니다.

블로그 서술에는 이전 4월 공개 기준선을 규모 비교에 사용하십시오. 기준선은 공개된 `clawgrit-reports` 모의 공급자 실행의 `v2026.4.14`입니다(3회 반복. 해당 실행은 진단 타임라인이 생성되지 않았다는 이유로만 실패했으므로 콜드, 웜 및 RSS 중앙값은 대략적인 규모를 파악하는 데 여전히 유용합니다). 이는 릴리스 게이트 통계가 아니라 서술을 위한 맥락으로 간주하십시오.

| 지표            | 이전 4월 기준선 | `v2026.5.28` |                    변화량 |
| --------------- | --------------: | -----------: | ------------------------: |
| 콜드 에이전트 턴 |         9,819ms |      1,908ms | 80.6% 감소, 5.1배 단축 |
| 웜 에이전트 턴   |         7,458ms |      1,870ms | 74.9% 감소, 4.0배 단축 |
| 에이전트 최대 RSS |           686.2MB |      581.0MB |                15.3% 감소 |

5월 점검 내에서 최신 릴리스 브랜치 행은 `v2026.5.2`보다 크게 개선되었습니다.

| 지표            | `v2026.5.2` | `v2026.5.28` |    변화량 |
| --------------- | ----------: | -----------: | --------: |
| 콜드 에이전트 턴 |     3,897ms |      1,908ms | 51.0% 감소 |
| 웜 에이전트 턴   |     3,610ms |      1,870ms | 48.2% 감소 |
| 에이전트 최대 RSS |       613.7MB |      581.0MB |  5.3% 감소 |

이전 안정 버전과 비교하면 다음과 같습니다.

| 지표            | `v2026.5.27` | `v2026.5.28` |    변화량 |
| --------------- | -----------: | -----------: | --------: |
| 콜드 에이전트 턴 |      2,231ms |      1,908ms | 14.5% 감소 |
| 웜 에이전트 턴   |      2,226ms |      1,870ms | 16.0% 감소 |
| 에이전트 최대 RSS |        649.0MB |      581.0MB | 10.5% 감소 |

### 설치 용량

| 지표                                            | 기준선 | `v2026.5.28` |    변화량 |
| ----------------------------------------------- | -----: | -----------: | --------: |
| `2026.5.22` 최고점 대비 설치 크기               | 1,020.6MB |     361.7MiB | 64.6% 감소 |
| 최신 릴리스 `2026.5.27` 대비 설치 크기          |  767.1MiB |     361.7MiB | 52.8% 감소 |
| 월간 최고점 `2026.2.26` 대비 의존성 수          |       645 |          300 | 53.5% 감소 |
| 최신 릴리스 `2026.5.27` 대비 의존성 수          |       371 |          300 | 19.1% 감소 |
| `2026.5.22` 대비 중첩된 `openclaw/node_modules` |   911.8MB |     259.7MiB | 71.5% 감소 |
| `2026.5.27` 대비 중첩된 `openclaw/node_modules` |  656.1MiB |     259.7MiB | 60.4% 감소 |

### npm 패키지 크기

| 버전        | 압축 tarball | 압축 해제된 패키지 | 파일 수 | 참고                              |
| ----------- | -----------: | -----------------: | ------: | --------------------------------- |
| `2026.1.30` |       12.8MB |             33.5MB |   4,607 | 리브랜딩 초기 패키지              |
| `2026.2.26` |       23.6MB |             82.9MB |  10,125 | 기능 증가                         |
| `2026.3.31` |       43.3MB |            182.6MB |  21,037 | 패키지 크기 최고점                |
| `2026.4.29` |       22.9MB |             74.6MB |   9,309 | 패키지 정리 효과가 드러남         |
| `2026.5.12` |       23.4MB |             80.1MB |  12,035 | 주요 외부 Plugin 분리             |
| `2026.5.22` |       17.2MB |             76.9MB |  12,386 | docs/assets를 패키지에서 제외     |
| `2026.5.27` |       17.8MB |             79.0MB |  12,509 | 이전 안정 버전 패키지             |
| `2026.5.28` |       17.9MB |             81.0MB |   9,082 | 최신 안정 버전 패키지             |

`2026.5.12`는 변경 로그에서 확인할 수 있는 Plugin 추출 이정표입니다. Amazon Bedrock, Bedrock Mantle, Slack, OpenShell sandbox, Anthropic Vertex, Matrix 및 WhatsApp이 핵심 의존성 경로에서 분리되어, 해당 의존성 집합은 모든 핵심 설치가 아니라 그 Plugin들과 함께 설치됩니다.

## Kova 에이전트 턴 요약

4월 안정 버전 계열에는 서로 다른 두 가지 양상이 있습니다. 4월 초는 느렸지만 일반적인 범위였습니다. 4월 말에는 회귀가 급격히 심화되었습니다. `v2026.5.2`부터 모의 공급자 경로가 처음으로 3~5초 범위로 내려가고 제공된 점검에서 일관되게 통과하기 시작합니다.

이전에 공개된 맥락:

| 릴리스       | Kova | 콜드 턴 | 웜 턴 | 에이전트 최대 RSS |
| ------------ | ---- | ------: | ----: | ----------------: |
| `v2026.4.10` | 실패 | 11,031ms | 7,962ms |          679.0MB |
| `v2026.4.12` | 실패 | 11,965ms | 8,289ms |          713.5MB |
| `v2026.4.14` | 실패 |  9,819ms | 7,458ms |          686.2MB |
| `v2026.4.20` | 실패 | 22,314ms | 18,811ms |         810.8MB |
| `v2026.4.22` | 실패 |  9,630ms | 7,459ms |          743.0MB |

제공된 점검:

| 릴리스              | Kova | 콜드 턴 | 웜 턴 | 에이전트 최대 RSS |
| ------------------- | ---- | ------: | ----: | ----------------: |
| `v2026.4.23`        | 실패 | 47,847ms |  8,010ms |        1,082.7MB |
| `v2026.4.24`        | 실패 | 48,264ms | 25,483ms |          996.0MB |
| `v2026.4.25`        | 실패 | 81,080ms | 59,172ms |        1,113.9MB |
| `v2026.4.26`        | 실패 | 76,771ms | 54,941ms |        1,140.8MB |
| `v2026.4.27`        | 실패 | 60,902ms | 33,699ms |        1,156.0MB |
| `v2026.4.29`        | 실패 | 94,031ms | 57,334ms |        3,613.7MB |
| `v2026.5.2`         | 통과 |  3,897ms |  3,610ms |          613.7MB |
| `v2026.5.7`         | 통과 |  3,923ms |  3,693ms |          654.1MB |
| `v2026.5.12`        | 통과 |  7,248ms |  6,629ms |          834.8MB |
| `v2026.5.18`        | 통과 |  3,301ms |  2,913ms |          630.3MB |
| `v2026.5.20`        | 통과 |  3,413ms |  2,952ms |          643.2MB |
| `v2026.5.22`        | 통과 |  4,494ms |  4,093ms |          654.3MB |
| `v2026.5.26`        | 통과 |  2,626ms |  2,282ms |          660.4MB |
| `v2026.5.27-beta.1` | 통과 |  2,575ms |  2,217ms |          635.3MB |
| `v2026.5.27`        | 통과 |  2,231ms |  2,226ms |          649.0MB |
| `v2026.5.28`        | 통과 |  1,908ms |  1,870ms |          581.0MB |

## 소스 프로브

이전 참조 17개는 해당 소스 트리에 필요한 프로브 진입점이 아직 없었으므로 소스 프로브를 건너뛰었습니다. 이러한 참조에도 에이전트 턴 지표는 존재합니다.

대표적인 소스 프로브 지점:

| 릴리스              | 기본 `readyz` p50 | Plugin 50개 `readyz` p50 | CLI 상태 p50 | Plugin 최대 RSS |
| ------------------- | ----------------: | -----------------------: | -----------: | --------------: |
| `v2026.4.29`        |           2,819ms |                  2,618ms |      1,679ms |         389.0MB |
| `v2026.5.2`         |           2,324ms |                  2,013ms |      1,384ms |         377.2MB |
| `v2026.5.7`         |           1,649ms |                  1,540ms |      1,175ms |         387.6MB |
| `v2026.5.18`        |           1,942ms |                  1,927ms |        607ms |         426.5MB |
| `v2026.5.20`        |           1,966ms |                  1,987ms |        621ms |         455.0MB |
| `v2026.5.22`        |           2,081ms |                  1,884ms |      5,095ms |         444.2MB |
| `v2026.5.26`        |           1,546ms |                  1,634ms |        656ms |         400.4MB |
| `v2026.5.27-beta.1` |           1,462ms |                  1,548ms |        548ms |         394.0MB |
| `v2026.5.27`        |           1,491ms |                  1,571ms |        553ms |         401.5MB |
| `v2026.5.28`        |           1,457ms |                  1,474ms |        623ms |         386.1MB |

에이전트 턴 경로가 여전히 통과했지만, `v2026.5.22`의 CLI 상태 급증은 이 표에서 확인할 수 있습니다. 특정 CLI 또는 Gateway 회귀를 조사할 때는 소스 프로브를 유지하십시오.

## 설치 용량 감사

의존성 샘플에는 월별 안정 버전 하나씩과 `2026.5.22` shrinkwrap 도입 이벤트 및 최신 `2026.5.28` 릴리스를 사용합니다.

| 시점               | 설치된 의존성 | 신규 설치 | OpenClaw 패키지 | 중첩된 `openclaw/node_modules` | 루트 shrinkwrap | Canvas 설치 동작                              |
| ------------------ | ------------: | --------: | ----------------: | -----------------------------: | --------------- | --------------------------------------------- |
| 1월 `2026.1.30`    |           605 |   438.4MB |            45.8MB |                          2.4MB | 아니요          | 최상위 래퍼 + `darwin-arm64`                   |
| 2월 `2026.2.26`    |           645 |   575.7MB |           110.1MB |                          3.5MB | 아니요          | 최상위 래퍼 + `darwin-arm64`                   |
| 3월 `2026.3.31`    |           438 |   584.1MB |           234.8MB |                            0MB | 아니요          | 최상위 래퍼 + `darwin-arm64`                   |
| 4월 `2026.4.29`    |           392 |   335.0MB |            97.4MB |                            0MB | 아니요          | 설치된 항목 없음                               |
| `2026.5.22`        |           401 | 1,020.6MB |         1,020.4MB |                        911.8MB | 예              | 중첩: `@napi-rs/canvas` 패키지 12개 모두       |
| 5월 `2026.5.26`    |           371 |   767.5MB |           767.4MB |                        656.4MB | 예              | 중첩: `@napi-rs/canvas` 패키지 12개 모두       |
| `2026.5.27`        |           371 |  767.1MiB |          766.9MiB |                       656.1MiB | 예              | 중첩: `@napi-rs/canvas` 패키지 12개 모두       |
| 최신 `2026.5.28`   |           300 |  361.7MiB |          361.6MiB |                       259.7MiB | 예              | 설치된 항목 없음                               |

### Shrinkwrap 경계

`2026.5.20`은 루트 shrinkwrap과 대규모 중첩 OpenClaw 의존성 트리 없이
출시되었습니다. `2026.5.22`에서는 루트 shrinkwrap이 도입되었으며 중첩된
`openclaw/node_modules` 아래에 911.8MB가 설치되었습니다. `2026.5.28`은
shrinkwrap을 유지하며 중첩된 `openclaw/node_modules` 아래에 여전히
259.7MiB를 설치하지만, 로컬 신규 설치 감사에서는 더 이상
`@napi-rs/canvas` 패키지를 설치하지 않습니다.

게시된 tarball 검사를 통해 이 경계를 확인할 수 있습니다.

| 버전        | 안정 버전으로 게시됨? | 루트 `npm-shrinkwrap.json` | 참고                                      |
| ----------- | ---------------------- | -------------------------- | ----------------------------------------- |
| `2026.5.20` | 예                     | 아니요                     | shrinkwrap 이전의 마지막 안정 릴리스      |
| `2026.5.21` | 아니요                 | 해당 없음                  | 안정 npm 릴리스 없음                      |
| `2026.5.22` | 예                     | 예                         | shrinkwrap 도입                           |
| `2026.5.23` | 아니요                 | 해당 없음                  | 안정 npm 릴리스 없음                      |
| `2026.5.24` | 아니요                 | 해당 없음                  | 안정 npm 릴리스 없음                      |
| `2026.5.25` | 아니요                 | 해당 없음                  | 안정 npm 릴리스 없음                      |
| `2026.5.26` | 예                     | 예                         | 중첩된 의존성 트리가 여전히 존재함         |
| `2026.5.27` | 예                     | 예                         | 중첩된 의존성 트리가 여전히 존재함         |
| `2026.5.28` | 예                     | 예                         | 중첩된 의존성 트리가 훨씬 작아짐            |

중요한 차이점은 **shrinkwrap 자체가 문제는 아니라는 것**입니다.
`v2026.5.28`에도 루트 shrinkwrap이 포함되어 출시됩니다. 문제는 npm이
대규모 중첩 OpenClaw 의존성 트리와 12개의 모든 `@napi-rs/canvas` 플랫폼
패키지를 실제로 배치하게 만든 패키지 구조였습니다. `v2026.5.28`에서는
중첩 트리가 더 작아졌으며, 로컬 감사에서 더 이상 Canvas 플랫폼 패키지가
대량으로 설치되지 않습니다.

shrinkwrap에 대한 일반적인 설명과 유지관리자 수준의 패키지 검사에
관해서는 [npm shrinkwrap](/ko/gateway/security/shrinkwrap)을 참조하세요.

## 공급망 관점의 해석

의존성 수는 설치 크기 지표일 뿐만 아니라 운영 보안 지표이기도 합니다.
각 패키지는 운영자가 신뢰해야 하는 유지관리자, tarball, 전이적 업데이트,
선택적 네이티브 바이너리, 설치 시 동작의 범위를 넓힙니다.

정리 방향은 다음과 같습니다.

- 무겁고 선택적인 기능은 기본 코어 설치 외부에 유지
- Plugin 패키지가 자체 런타임 의존성 그래프를 소유하도록 구성
- Gateway 시작 중 런타임 패키지 관리자 복구 방지
- 모든 플랫폼의 네이티브 패키지가 실제로 설치되지 않도록 하면서 결정론적 설치 유지
- 패키지 승인 및 측정 경로에서 설치 스크립트 비활성화 유지
- 게시 전에 중첩된 의존성 트리와 선택적 네이티브 의존성의 폭증 감지

관련 문서:

- [Plugin 의존성 해석](/ko/plugins/dependency-resolution)
- [Plugin 인벤토리](/ko/plugins/plugin-inventory)
- [전체 릴리스 검증](/ko/reference/full-release-validation)
