
pii-shield v2.2.3
์ฝ๋ ์๋ K8s ์ฌ์ด๋์นด๋ก ๋ก๊ทธ๋ฅผ ์ ํํฉ๋๋ค. ์ํธ๋กํผ ๋ถ์์ ํตํด ๋น๋ฐ์ ๊ฐ์งํ๊ณ , JSON ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๋ฉฐ, PII๋ฅผ ๊ฒฐ์ ๋ก ์ ์ผ๋ก ๊ฐ๋ฆฝ๋๋ค. ๐ก๏ธ
PII-Shield ๐ก๏ธ
Kubernetes์ฉ ์ ๋ก์ฝ๋ ๋ก๊ทธ ์ ํ ์ฌ์ด๋์นด. PII(๊ฐ์ธ์๋ณ์ ๋ณด)๊ฐ ํ๋(pod)๋ฅผ ๋ ๋๊ธฐ ์ ์ ๋ก๊ทธ์์ ์ญ์ ํ์ฌ ๋ฐ์ดํฐ ์ ์ถ(GDPR/SOC2)์ ๋ฐฉ์งํฉ๋๋ค.
PII-Shield๋ ํ๋ก์ธ์ค ๋ด์์ ์คํ๋ฉ๋๋ค โ CLI, ์ฌ์ด๋์นด ๋๋ WASM. ํธ์คํ API๊ฐ ์์ผ๋ฉฐ ๋ฐ์ดํฐ๊ฐ ์ ์ก๋๋ ์๋ฒ๋ ์์ต๋๋ค.
"PII๊ฐ AI ๋ชจ๋ธ์ ์ค์ผ์ํค์ง ๋ง์ธ์." PII-Shield๋ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๊ฐ ํ์ต ๋ฐ์ดํฐ์ ์ ๋๋ฌํ์ง ์๋๋ก ๋ณด์ฅํ์ฌ GDPR๋ก ์ธํ ๋ชจ๋ธ ์ฌํ์ต์ ๋ถ๋ด์์ ๋ฒ์ด๋๊ฒ ํด์ค๋๋ค.
[!WARNING] v2.0.0์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ์๋์? ์ต์ข ์ฌ์ฉ์ ๋ฐฐํฌ ๋ฐฉ์์ Helm ๊ธฐ๋ฐ ์ค์น ๋ฐ Distroless ๋ค์ดํฐ๋ธ ์ฌ์ด๋์นด๋ก ์ ํํ์ต๋๋ค. Kustomize๋ ๋ ์ด์ ํ๋ก๋์ ์ฌ์ฉ์๋ฅผ ์ํ ๊ณต์ ๋ฆด๋ฆฌ์ค ์ค์น ๊ฒฝ๋ก๊ฐ ์๋์ง๋ง, ์ด์์ ์ ์ฅ์์๋ ๋ก์ปฌ ๊ฐ๋ฐ ๋ฐ ๋งค๋ํ์คํธ ์์ฑ์ ์ํ Kustomize ์ค์บํด๋ฉ์ด ๊ณ์ ์ ์ง๋ฉ๋๋ค. PII-Shield ์ฌ์ด๋์นด ๋ด๋ถ์
/bin/sh์ ๊ทผ์ ๋ ์ด์ ์ง์๋์ง ์์ต๋๋ค. ๋ง์ด๊ทธ๋ ์ด์ ๊ฐ์ด๋๋ฅผ ์ฝ์ด๋ณด์ธ์.
๋ ๊ฐ์ง ๋ฐฐํฌ ๋ชจ๋ธ
PII-Shield๋ ์คํ์ ํตํฉํ ์ ์๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค:
- Kubernetes Operator (์ ๋ก์ฝ๋): ์ฃผ๋ ฅ ๋ฐฐํฌ ๋ชจ๋ธ์ ๋๋ค. ํ๋์ ๊ณ ๋๋ก ์์ ํ Distroless ์ฌ์ด๋์นด๋ฅผ ์๋์ผ๋ก ์ฃผ์ ํ์ฌ ๋ก๊ทธ๋ฅผ ์ค์๊ฐ์ผ๋ก ๊ฐ๋ก์ฑ๊ณ ์ ํํ๋ ์์ ์๋ํ๋ K8s Operator์ ๋๋ค.
- ํ๋ก์ธ์ค ๋ด WASM (ํต์ฌ ํตํฉ์ฉ): ๊ทนํ์ ์ฑ๋ฅ์ ์ํด ํต์ฌ ์์ง์ WASM์ ํตํด ์ง์ ์๋ฒ ๋ํ ์ ์์ผ๋ฉฐ, ๋คํธ์ํฌ ํ ์์ด
<1ms์ง์ฐ ์๊ฐ์ ์ ๊ณตํฉ๋๋ค.
ํ๋ก์ ํธ ์ํ ๋ฐ ๋ก๋๋งต
PII-Shield๋ ํ๋ก๋์ ๊ฐํ ๋จ๊ณ์ ์๋ ํ๋ฐํ ๊ฐ๋ฐ ์ค์ธ ์คํ์์ค ๋ณด์ ๋๊ตฌ์ ๋๋ค. v2.x ๋ฆด๋ฆฌ์ค ๋ผ์ธ์ ์ฌ์ฉ ๊ฐ๋ฅํ CLI, ์ปจํ ์ด๋, Helm/operator ๋ฐ WASM SDK ์ํฐํฉํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ํต์ฌ ์ญ์ ๊ฒฝ๋ก๋ ํต์ ๋ ๋ฐฐํฌ์ ์ฌ์ฉํ ์ค๋น๊ฐ ๋์์ง๋ง, ์ผ๋ถ Kubernetes ๋ฐฐํฌ ๋ชจ๋์ ๊ณต๊ธ๋ง ๋ณด์ฆ์ ์์ง ์์ ํ ์ค์ ๋๋ค.
| ๊ตฌ์ฑ ์์ | ์ํ |
|---|---|
| ํต์ฌ ์ค์บ๋ | ๋ฆด๋ฆฌ์ค๋จ / ํต์ ๋ ๋ฐฐํฌ |
| CLI ์ฌ์ด๋์นด | ๋ฆด๋ฆฌ์ค๋จ / ํต์ ๋ ๋ฐฐํฌ |
| Kubernetes operator | ์์ ํ ๋จ๊ณ |
| WASM SDK | ๋ฒ ํ ๋ฆด๋ฆฌ์ค๋จ |
| Proxy-Wasm ๊ฒ์ดํธ์จ์ด ํตํฉ | R&D ๊ณํ๋จ |
| ์ปจํธ๋กค ํ๋ ์ธ UI | R&D ๊ณํ๋จ |
| eBPF ์ฐจ๋จ | ์คํ์ R&D |
ํ์ฌ ํ๋ก๋์ ๊ฐํ ๊ฒฝ๊ณ์ ๋ํด์๋ KNOWN_LIMITATIONS.md๋ฅผ ์ฐธ์กฐํ์ธ์.
์ PII-Shield์ธ๊ฐ?
๊ฐ๋ฐ์๋ค์ ์ข ์ข ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ๋ง์คํนํ๋ ๊ฒ์ ์๊ณค ํฉ๋๋ค. Fluentd/Logstash์ ์ ํต์ ์ธ ์ ๊ท์ ํํฐ๋ ๋๋ฆฌ๊ณ ์ ์ง๋ณด์๊ฐ ์ด๋ ค์ฐ๋ฉฐ ๋ก๊ทธ ์์ง๊ธฐ์์ ๋น์ผ CPU๋ฅผ ์๋นํฉ๋๋ค.
PII-Shield๋ ์ฑ ์ปจํ ์ด๋ ๋ฐ๋ก ์์ ์์นํฉ๋๋ค:
- ํ๋ก๋์ ๊ฐํ ํต์ฌ ์์ง: ํซ ๊ฒฝ๋ก์์ ๋ฎ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น๊ณผ ๊ฒฐ์ ์ ์ ๊ท์ ๋งค์นญ์ผ๋ก Kubernetes ์ฌ์ด๋์นด์ ์ต์ ํ๋์์ต๋๋ค.
- ์ปจํ
์คํธ ์ธ์ ์ํธ๋กํผ ๋ถ์: ํค ์์ด๋ ์ปจํ
์คํธ ํค์๋๋ฅผ ๋ถ์ํ์ฌ ๋์ ์ํธ๋กํผ์ ๋น๋ฐ๊ฐ(์:
Error: ... 44saCk9...)์ ํ์งํฉ๋๋ค. - ์ฌ์ฉ์ ์ ์ ์ ๊ท์ ๊ท์น: ์๋ ค์ง ํจํด์ ๋ํด ์ํธ๋กํผ ๊ฒ์ฌ๋ฅผ ์ฌ์ ์ํ๋ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ(UUID, ID)์ ๊ฒฐ์ ์ ์ญ์ .
- ํ๊ท ๋ฐ ํผ์ฆ ํ ์คํธ: ๋ฐ์ด๋๋ฆฌ ์ฐ๋ ๊ธฐ, JSON ์ค์ฒฉ, ๋ค๊ตญ์ด ๋ก๊ทธ๋ฅผ ํฌํจํ ์คํธ๋ ์ค ์ผ์ด์ค์ ๋ํด ํ ์คํธ๋จ.
- ๊ฒฐ์ ์ ํด์ฑ: ๋น๋ฐ๊ฐ์ ๊ณ ์ ํด์(์:
[HIDDEN:a1b2c])๋ก ๋์ฒดํ์ฌ QA๊ฐ ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ง ์๊ณ ๋ ์ค๋ฅ๋ฅผ ์ํธ ์ฐ๊ด์ํฌ ์ ์๊ฒ ํฉ๋๋ค. - ๋๋กญ์ธ ๋ฐฉ์: ์ฝ๋ ๋ณ๊ฒฝ์ด ํ์ ์์ต๋๋ค. ๋ชจ๋ ์ธ์ด(Node, Python, Java, Go)์ ํธํ๋ฉ๋๋ค.
- ํ์ดํธ๋ฆฌ์คํธ ์ง์:
PII_SAFE_REGEX_LIST๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํ ํจํด(์: git ํด์, ์์คํ ID)์ ๋ช ์์ ์ผ๋ก ํ์ฉํ์ฌ ์คํ(false positive)์ ๋ฐฉ์งํฉ๋๋ค.
์์ญ ๊ฐ์ ํด๋ฌ์คํฐ์์ PII-Shield๋ฅผ ๊ด๋ฆฌํ๊ณ ๊ณ์ ๊ฐ์?
์ค์ ์ง์ค์ ๊ท์น ๊ด๋ฆฌ, Slack ์๋ฆผ ๋ฐ ์ญ์ ๋ถ์ ๊ธฐ๋ฅ์ ๊ฐ์ถ ํธ์คํ
์ปจํธ๋กค ํ๋ ์ธ์ ๊ตฌ์ถ ์ค์
๋๋ค.
ํตํฉ
PII-Shield์ ํ๋ก์ธ์ค ๋ด WASM ๋น๋๋ ์คํ์์ค AI ์ฝ๋ ๊ฑฐ๋ฒ๋์ค GitHub Action์ธ GuardSpine Code ๋ด๋ถ์ ํฌํจ๋์ด ์์ผ๋ฉฐ, ์ด ์ก์
์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ฒค๋๋งํ๊ณ NOTICE์์ ์ด๋ฅผ ๋ช
์ํฉ๋๋ค.
์ฑ๋ฅ ๊ณ ๋ ค ์ฌํญ
PII-Shield๋ ๊ณ ๋๋ก ์ต์ ํ๋์ด ์์ง๋ง, ๋ณต์กํ ๋ก๊ทธ์ ์ฌ์ธต ๊ฒ์ฌ๋ ๊ตฌ์ฑ์ ์ธ์ฌํ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค.
- ํ ์คํธ ๋ก๊ทธ: ๋งค์ฐ ๋น ๋ฆ(์ด๋น 10๋ง ์ค ์ด์).
- JSON ๋ก๊ทธ: ์ ๋ก ํ ๋น ํ์ฑ(
encoding/json์ค๋ฒํค๋ ์์). ์ค์บ๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ธ์ฆ ์์ด ๋์ ์ฒ๋ฆฌ๋(์ฝ 7MB/s)์ ๋ณด์ฅํ๊ธฐ ์ํด JSON ๊ตฌ์กฐ๋ฅผ ์๋์ผ๋ก ํ์ฑํฉ๋๋ค. - ๊ถ์ฅ ์ฌํญ: ๋์ ์ฒ๋ฆฌ๋ ํ๊ฒฝ์์ ์์ ํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊น๊ฒ ์ค์ฒฉ๋ JSON์์ ์คํ ์ค๋ฒํ๋ก๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ๊ท ์์ ์ฅ์น๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ค์น
Helm ์ฐจํธ (Kubernetes Operator)
Kubernetes์ PII-Shield๋ฅผ ๋ฐฐํฌํ๋ ๊ณต์์ ์ด๊ณ ๊ถ์ฅ๋๋ ๋ฐฉ๋ฒ์ ์์ ์๋ํ๋ Operator๋ฅผ ํตํ ๊ฒ์ ๋๋ค:
helm repo add pii-shield https://pii-shield.github.io/pii-shield/
helm repo update
helm install pii-shield-operator pii-shield/pii-shield-operator -n operator-system --create-namespace
์ด ๋ช ๋ น์ ์ฝ๋๋ Dockerfile ๋ณ๊ฒฝ ์์ด ํ๋์ ๊ณ ๋๋ก ์์ ํ distroless ์ฌ์ด๋์นด๋ฅผ ์๋์ผ๋ก ์ฃผ์ ํ๋ PII-Shield Operator๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
Docker
Docker Hub ๋๋ GHCR์์ ์ต์ ๊ฒฝ๋ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ต๋๋ค:
docker pull thelisdeep/pii-shield:2.2.3
# ๋๋ GitHub Container Registry(์ํฐํ๋ผ์ด์ฆ)์์:
docker pull ghcr.io/pii-shield/pii-shield:2.2.3
์์ค์์ ๋น๋
์์ค ์ฝ๋์์ ์ง์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋น๋ํ ์ ์์ต๋๋ค:
go build -o pii-shield ./cmd/cleaner/main.go
๊ตฌ์ฑ
์ ์ฒด ํ๊ฒฝ ๋ณ์ ๋ชฉ๋ก์ CONFIGURATION.md๋ฅผ ์ฐธ์กฐํ์ธ์. ์ฃผ์ ๋ณ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
PII_SALT: ์ฌ์ฉ์ ์ ์ HMAC ์ํธ(ํ๋ก๋์ ์ ํ์).PII_ADAPTIVE_THRESHOLD: ๋์ ์ํธ๋กํผ ๊ธฐ์ค์ ํ์ฑํ.PII_DISABLE_BIGRAM_CHECK: ๋น์์ด ๋ก๊ทธ์ ๋ํ ์ต์ ํ.PII_CUSTOM_REGEX_LIST: ๊ฒฐ์ ์ ์ญ์ ๋ฅผ ์ํ ์ฌ์ฉ์ ์ ์ ์ ๊ท์ ๊ท์น.PII_SAFE_REGEX_LIST: ๋ฌด์ํ ํ์ดํธ๋ฆฌ์คํธ ์ ๊ท์ ๊ท์น(์ผ์น ํญ๋ชฉ์ ์๋ณธ ๊ทธ๋๋ก ๋ฐํ).
์ํธ๋กํผ ๋ฏผ๊ฐ๋ ํ (๊ธฐ๋ณธ ์๊ณ๊ฐ: 3.6)
| ์ํธ๋กํผ | ๋ฐ์ดํฐ ์ ํ | ์์ |
|---|---|---|
| 0.0 - 3.0 | ์ผ๋ฐ ๋จ์ด, ๋ฐ๋ณต | password, admin, 111111 |
| 3.0 - 3.6 | CamelCase, ๋ถ๋ถ ํด์ | ProgramCampaignInstanceJob, 8f3a11b2c |
| 3.6 - 4.5 | ๊ฒฝ๋ก, UUID, ์ฝํ ๋น๋ฐ๋ฒํธ | /opt/application/runtime, P@ssw0rd2026! |
| 4.5 - 5.0 | ์ค๊ฐ ํ ํฐ | E8s9d_2kL1 |
| 5.0+ | ๋์ ์ํธ๋กํผ ํค | (SHA-256, API ํค) |
๋น ๋ฅธ ์์
- ๋ก์ปฌ ํ ์คํธ (CLI) ๋ชจ๋ ๋ก๊ทธ ์ถ๋ ฅ์ PII-Shield์ ํ์ดํํ์ฌ ์ฆ์ ๋์์ ํ์ธํ ์ ์์ต๋๋ค:
# ๋ฏผ๊ฐํ ๋น๋ฐ๋ฒํธ๊ฐ ํฌํจ๋ ๋ก๊ทธ ์๋ฎฌ๋ ์ด์
echo "Error: User password=MySecretPass123! failed login" | docker run -i --rm ghcr.io/pii-shield/pii-shield:2.2.3
# ์ถ๋ ฅ: Error: User password=[HIDDEN:8f3a11] failed login
- Kubernetes (์๋ ์ฌ์ด๋์นด ์ฃผ์
)
PII-Shield Operator๊ฐ ์ค์น๋ ์ํ์์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ณดํธํ๋ ๊ฒ์
PiiPolicy๋ฅผ ์์ฑํ๊ณ ํ๋์ ๋ ์ด๋ธ์ ์ง์ ํ๋ ๊ฒ๋งํผ ๊ฐ๋จํฉ๋๋ค.
์ ์ฑ ์์ฑ:
apiVersion: core.pii-shield.io/v1alpha1
kind: PiiPolicy
metadata:
name: strict-policy
namespace: default
spec:
injectionMode: "file"
Deployment์ ๋ ์ด๋ธ ์ง์ :
apiVersion: apps/v1
kind: Deployment
metadata:
name: secure-app
spec:
template:
metadata:
labels:
pii-shield.io/inject: "true"
annotations:
pii-shield.io/policy: "strict-policy"
# ...
Operator๋ ๋ค์ดํฐ๋ธ ์ฌ์ด๋์นด ํจํด(K8s 1.28+)์ ์ฌ์ฉํ์ฌ pii-shield-agent๋ฅผ ์๋์ผ๋ก ์ฃผ์
ํ๊ณ ๋ชจ๋ ๋ก๊ทธ๋ฅผ ์์ ํ๊ฒ ๋ง์คํนํฉ๋๋ค!
๐ ๋ฌด๋ฃ: 25๊ฐ ํญ๋ชฉ Kubernetes ๋ก๊ทธ PII ๊ฐ์ฌ ์ฒดํฌ๋ฆฌ์คํธ โ ํ๋์์ PII๊ฐ ์ ์ถ๋๋ ์์น, ํํฐ๋ฅผ ์ฐํํ๋ ๋ก๊ทธ ๊ฒฝ๋ก, ์ญ์ ๊ฐ ์ค์ ๋ก ์๋ํ๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ. ์ฒดํฌ๋ฆฌ์คํธ ๋ฐ๊ธฐ โ
๐ฆ GDPR ์ปดํ๋ผ์ด์ธ์ค ํฉ โ ์ง๊ธ ์ด์ฉ ๊ฐ๋ฅ(์ผ๋ฆฌ ์ก์ธ์ค): 40๊ฐ ์ด์์ ํ ์คํธ๋ ์ญ์ ๊ท์น, DPO์ฉ ๋ฌธ์, ๊ฐ์ฌ ์ถ์ ํ ํ๋ฆฟ. $149 โ ยท HIPAA/PCI ๋๊ธฐ์ ๋ช ๋จ โ
๐ฌ PII-Shield๋ฅผ ์ฌ์ฉ ์ค์ด์ ๊ฐ์? ๋ฐฐํฌ ํ๊ฒฝ์ ๋ํด ์๋ ค์ฃผ์ธ์ โ โ 2๋ถ์ด๋ฉด ์ถฉ๋ถํ๋ฉฐ, ํฅํ ๊ฐ๋ฐ ๋ฐฉํฅ์ ๊ฒฐ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๊ฒ์ฆ
์ด ํ๋ก์ ํธ๋ ํ๋ก๋์ ๊ฐํ ์ ์ ์ ๋ขฐ๋๋ฅผ ๋์ด๊ธฐ ์ํด ์ง์์ ์ผ๋ก ํ์ฅ๋๋ ํ ์คํธ ์ค์ํธ๋ก ๊ฒ์ฆ๋ฉ๋๋ค:
- ๋จ์ ํ ์คํธ: ์ฃ์ง ์ผ์ด์ค, ๋ค๊ตญ์ด ์ง์ ๋ฐ JSON ๋ฌด๊ฒฐ์ฑ์ 85% ์ด์์ ์ปค๋ฒ๋ฆฌ์ง๋ก ๋ค๋ฃน๋๋ค.
- ํผ์ง: ๋ค์ดํฐ๋ธ Go ํผ์ง์ผ๋ก ์๋ชป๋ ์ ๋ ฅ๊ณผ ๋ฌด์์ ๋ฐ์ด๋๋ฆฌ ์ ๋ ฅ์ ๋ํ ํฌ๋์ ์์ ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
- ์ค๋ชจํฌ ํ
์คํธ:
./scripts/test-smoke.sh๋ ํผํฉ ์ํฌ๋ก๋๋ฅผ ์คํํ๊ณ ํ์ง ์ ํ๋๋ฅผ ๋ณด๊ณ ํฉ๋๋ค. - ์๋ํฌ์๋(E2E) ํ
์คํธ:
operator/tests/run_e2e.sh์ค์ํธ๋ Minikube์ Helm์ ์ฌ์ฉํ์ฌ ์ ์ฒด ์คํ ๊ฒ์ฆ์ ์ํํฉ๋๋ค. ๋ก์ปฌ ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ณ , cert-manager ์์ด Operator๋ฅผ ํ๋ก๋น์ ๋ํ๊ณ , ๋์ Job์ ๋ฐฐํฌํ ๋ค์ ์ฌ์ด๋์นด ์ถ๋ ฅ์ ๊ฐ๋ก์ฑ ์ค์ ๋ก๊ทธ ์ญ์ ๋ฅผ ๊ฒ์ฆํฉ๋๋ค.
์ฑ๋ฅ ๋ฒค์น๋งํฌ
ํ์ฌ ๋ธ๋์น์ ๊ธฐ์ค ref ๊ฐ์ ์๋ํฌ์๋ CLI ์ฒ๋ฆฌ๋์ ๋น๊ตํ๋ ค๋ฉด:
./benchmark/run_benchmarks.sh
๊ธฐ๋ณธ์ ์ผ๋ก ๋ฒค์น๋งํฌ๋ HEAD๋ฅผ origin/main๊ณผ ๋น๊ตํ๊ณ , origin/main์ ์๋ก ๊ณ ์น๊ณ , ํผํฉ ๋ก๊ทธ ์ฝํผ์ค๋ฅผ ์์ฑํ๊ณ , ์ด์ /์ ์คํ ์์๋ฅผ ๋ฒ๊ฐ์ ๊ฐ๋ฉฐ ์ค์๊ฐ, p95, ์ต์/์ต๋ ๋ฐ MiB/s๋ฅผ ๋ณด๊ณ ํฉ๋๋ค:
BASE_REF=origin/main RUNS=9 LINES=500000 ./benchmark/run_benchmarks.sh
์ด ๋ช ๋ น์ ์ ์ฒด stdin-to-stdout CLI ๊ฒฝ๋ก๋ฅผ ์ธก์ ํฉ๋๋ค. ์ค์บ๋ ์ ์ฉ ๋ง์ดํฌ๋ก๋ฒค์น๋งํฌ๋ ๋ค์์ ์คํํ์ธ์:
go test -bench=. -benchmem ./pkg/scanner
Operator ํตํฉ ํ ์คํธ
Operator๋ ๋น ๋ฅธ ๋จ์ ํ ์คํธ๋ฅผ Kubernetes API ํตํฉ ํ ์คํธ์ ๋ถ๋ฆฌํ์ฌ ์ ์งํฉ๋๋ค. ์ผ๋ฐ Operator ํ ์คํธ๋ ๋ก์ปฌ API ์๋ฒ๋ฅผ ์์ํ์ง ์์ต๋๋ค:
cd operator
go test ./...
envtest ๊ธฐ๋ฐ ์ปจํธ๋กค๋ฌ ํตํฉ ์ค์ํธ๋ฅผ ์คํํ๋ ค๋ฉด:
./scripts/test-operator-integration.sh
์ด ํ
์คํธ๋ envtest๋ฅผ ํตํด ๋ก์ปฌ Kubernetes API ์๋ฒ์ etcd๋ฅผ ์์ํ๋ฏ๋ก 127.0.0.1์ ๋ฐ์ธ๋ฉํ ์ ์๋ ๊ถํ์ด ํ์ํฉ๋๋ค. ์ ํ๋ ์๋๋ฐ์ค์์๋ localhost ๋ฐ์ธ๋ฉ์ ํ์ฉํ๋ ๋ก์ปฌ ์
ธ, Docker ํ๊ฒฝ ๋๋ CI ๋ฌ๋์์ ์คํํ์ธ์.
์ง์
PII-Shield๋ ํ๋ผ์ด๋ฒ์ ๋ณดํธ ๋ก๊ทธ๋ฅผ ์ํ ์คํ์์ค ์ธํ๋ผ์ ๋๋ค. ์ด ํ๋ก์ ํธ๊ฐ ๊ทํ ๋๋ ๊ทํ์ ์กฐ์ง์ ์ ์ฉํ๋ค๋ฉด, GitHub Sponsors๋ฅผ ํตํด ๊ฐ๋ฐ์ ์ง์ํ ์ ์์ต๋๋ค.
๋ฆด๋ฆฌ์ค ๊ฒ์ฆ
๋ฆด๋ฆฌ์ค ์ฒดํฌ์ฌ ๋ฐ ์ด๋ฏธ์ง ๋ค์ด์ ์คํธ ๊ฒ์ฆ ์ง์นจ์ docs/release-verification.md์ ๋ฌธ์ํ๋์ด ์์ต๋๋ค. ์๋ช ๋ฐ ์ถ์ฒ(provenance) ๊ธฐ๋ฐ ๋ฆด๋ฆฌ์ค๋ ๊ณต๊ธ๋ง ๊ฐํ ๋ก๋๋งต์ ์ผ๋ถ๋ก ์ถ์ ๋ฉ๋๋ค.
๋ผ์ด์ ์ค
Apache 2.0 ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ LICENSE๋ฅผ ์ฐธ์กฐํ์ธ์.