๐ 2025๋ ์ pnpm
2025๋ ์ pnpm์๊ฒ ๋ณํ์ ํด์์ต๋๋ค. ์ ํฌ๋ ํจํค์ง ๊ด๋ฆฌ์ ๋ณด์ ๋ชจ๋ธ์ ์ฌ์ ์ํ๋ ๋ฐ ์ฃผ๋ ฅํ์ง๋ง, ์ฑ๋ฅ๊ณผ ๊ฐ๋ฐ์ ๊ฒฝํ์์๋ ์๋นํ ๊ฐ์ ์ ์ด๋ฃจ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์๋ช ์ฃผ๊ธฐ ์คํฌ๋ฆฝํธ๋ฅผ ์ฐจ๋จํ๋ ๊ฒ๋ถํฐ ์ ์ญ ๊ฐ์ ์คํ ์ด ๋์ ๊น์ง, 2025๋ ์ ์ถ์๋ ์ฃผ์ ๊ธฐ๋ฅ์ ๋์๋ด ๋๋ค.
์ฌ์ฉ#
๋ค์ด๋ก๋ ํต๊ณ์ ๋ฐ๋ฅด๋ฉด pnpm์ 2024๋ ๋ณด๋ค 2๋ฐฐ ๋ ๋ง์ด ๋ค์ด๋ก๋๋์์ต๋๋ค!

ํํ์ด์ง ๋ฆฌ๋์์ธ#
ํํ์ด์ง๊ฐ ์๋กญ๊ฒ ๋์์ธ๋ ๊ฒ์ ๋์น์ฑ์ จ์ ์๋ ์์ต๋๋ค! ์ด๋ฒ ๋ฆฌ๋์์ธ์ ์ ํฌ์ ๊ฐ์ฅ ์ฃผ์ํ ํ์์ฌ์ธ Bit.cloud ๋๋ถ์ ๊ฐ๋ฅํ์ต๋๋ค.
์ ํํ์ด์ง๋ Bit ์ปดํฌ๋ํธ๋ก ๊ตฌ์ถ๋์์ผ๋ฉฐ, ์์ ์ ์๋น ๋ถ๋ถ์ Bit์ AI ์์ด์ ํธ์ธ Hope AI๋ฅผ ์ฌ์ฉํด ์ด๋ฃจ์ด์ก์ต๋๋ค. ์ด์ ์ ํฌ๋ง์ ๋์์ธ ์์คํ ๋ ์์ต๋๋ค.
์ ๋ณด
์ ๋ Bit์์ ์ข ์์ฑ ๊ด๋ฆฌ ์ ๋ฌด๋ฅผ ํํ์์ผ๋ก ํ๊ณ ์์ต๋๋ค. ๋ด๋ถ์ ์ผ๋ก Bit๋ ์ค์น์ pnpm์ ์ฌ์ฉํฉ๋๋ค.
JSNation ๋ฐํ#
์ฌํด๋ ๊ฐ์ธ์ ์ผ๋ก ํฐ ์ด์ ํ๊ฐ ๋ ํด์์ต๋๋ค. ๋๊ท๋ชจ ๊ตญ์ ์ฝํผ๋ฐ์ค์์ ์ฒ์์ผ๋ก ํ์ฅ ๋ฐํ๋ฅผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ก 6์ ์์คํ ๋ฅด๋ด์์ ์ด๋ฆฐ JSNation์ ๋๋ค. ์ด๋ฐ ๋ฉ์ง ๊ธฐํ๋ฅผ ์ฃผ์ JSNation ํ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!

์ปค๋ฎค๋ํฐ์์ pnpm์ด ์ผ๋ง๋ ์ ์๋ ค์ ธ ์๋์ง, ๊ทธ๋ฆฌ๊ณ ์ผ๋ง๋ ๋ง์ ์ฌ๋์ด ์ ๋ฌด์์ ์ฌ์ฉํ๊ณ ์๋์ง ์๊ณ ๊ธฐ๋ถ ์ข๊ฒ ๋๋์ต๋๋ค!
์ ๋ฐํ ์ฃผ์ ๋ ๊ตฌ์ฑ ์ข ์์ฑ์์ผ๋ฉฐ, ๋ นํ๋ณธ์ ์ฌ๊ธฐ์์ ๋ณด์ค ์ ์์ต๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ#
์ด์ 2025๋ ๋์ pnpm v10์์ ์ถ์๋ ๊ฐ์ฅ ์ค์ํ ๋ณ๊ฒฝ ์ฌํญ์ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๊ธฐ๋ณธ ๋ณด์#
์ฌํด ๊ฐ์ฅ ํฐ ๋ณํ๋ pnpm์ด "๊ธฐ๋ณธ ๋ณด์"์ผ๋ก ์ ํํ ๊ฒ์ ๋๋ค. ์ด๋ฒ pnpm v10.0์์๋ ์ค์น๋ ํจํค์ง๋ฅผ ์๋ฌต์ ์ผ๋ก ์ ๋ขฐํ์ง ์๊ฒ ๋์์ต๋๋ค.
์๋ช ์ฃผ๊ธฐ ์คํฌ๋ฆฝํธ ์ฐจ๋จ(v10.0)#
์๋
๊ฐ pnpm install์ ์ ์ฒด ์ข
์์ฑ ํธ๋ฆฌ๊ฐ ์์์ ์ฝ๋๋ฅผ ์คํํ๋๋ก ์ ๋ขฐํ๋ค๋ ๊ฒ์ ์๋ฏธํ์ต๋๋ค. ์ด๋ฒ v10์์๋ ์ด๋ฅผ ๋นํ์ฑํํ์ต๋๋ค. pnpm์ ๋ ์ด์ ๊ธฐ๋ณธ์ ์ผ๋ก preinstall ๋๋ postinstall ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ์ง ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ๊ด๋ฒ์ํ ๊ณต๊ธ๋ง ๊ณต๊ฒฉ ๋ฒกํฐ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
์ด ์ ์ด๋ฅผ ์ธ๋ถํํ๊ธฐ ์ํด v10.26์์ allowBuilds๋ฅผ ๋์
ํ์ฌ, ์ด์ ์ onlyBuiltDependencies๋ฅผ ๋ ์ ์ฐํ ๊ตฌ์ฑ์ผ๋ก ๋์ฒดํ์ต๋๋ค:
allowBuilds:
esbuild: true
# ํน์ ๋ฒ์ ๋ง ํ์ฉ
nx@21.6.4: true
์ฌ์ธต ๋ฐฉ์ด(v10.16 & v10.21)#
์คํฌ๋ฆฝํธ์์ ๋ฉ์ถ์ง ์์์ต๋๋ค. ์ ์ฑ ํจํค์ง๊ฐ ๋์คํฌ์ ๋๋ฌํ๊ธฐ ์ ์ ์ก์๋ผ ์ ์๋๋ก ์ฌ๋ฌ ๊ฒน์ ๋ฐฉ์ด ๊ณ์ธต์ ์ถ๊ฐํ์ต๋๋ค:
minimumReleaseAge: "์ ๋ก๋ฐ์ด" ๋ฆด๋ฆฌ์ค(์: ๊ฒ์๋ ์ง 24์๊ฐ์ด ์ง๋์ง ์์ ํจํค์ง)๋ฅผ ์ฐจ๋จํ์ฌ ์ปค๋ฎค๋ํฐ๊ฐ ์ ์ฑ ์ ๋ฐ์ดํธ๋ฅผ ์ ๊ณ ํ ์๊ฐ์ ํ๋ณดํฉ๋๋ค.trustPolicy: no-downgrade: ์ด์ ๋ฒ์ ๋ณด๋ค ์ถ์ฒ ์ฆ๋ช ์ด ์ฝํ ์ ๋ฐ์ดํธ(์: CI/CD ๊ฒ์ฆ ์์ด ๊ฒ์๋ ๋ฒ์ )์ ์ค์น๋ฅผ ๋ฐฉ์งํฉ๋๋ค.blockExoticSubdeps: ์ ๋ขฐํ ์ ์๋ ์ข ์์ฑ์ด ์ ๋ขฐํ ์ ์๋ ์์ค์ ์ ์ด ์ข ์์ฑ์ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
์ ์ญ ๊ฐ์ ์คํ ์ด(v10.12)#
์ด์ฐฝ๊ธฐ pnpm์ ํ์ ์ค ํ๋๋ ํ์ผ ์ค๋ณต์ ์ ๊ฑฐํ์ฌ ๋์คํฌ ๊ณต๊ฐ์ ์ ์ฝํ๋ ์ฝํ ์ธ ์ฃผ์ ์ง์ ์คํ ์ด์์ต๋๋ค. ์ด๋ฒ v10.12์์๋ **์ ์ญ ๊ฐ์ ์คํ ์ด**๋ก ์ด๋ฅผ ํ ๋จ๊ณ ๋ ๋ฐ์ ์์ผฐ์ต๋๋ค.
์ด์ ์๋ ํ๋ก์ ํธ๋ง๋ค ์์ฒด node_modules ๊ตฌ์กฐ๊ฐ ์์์ต๋๋ค. ์ด์ enableGlobalVirtualStore: true๋ฅผ ์ฌ์ฉํ๋ฉด pnpm์ด ๋์คํฌ์ ์ค์ ์์น์์ ํ๋ก์ ํธ๋ก ์ข
์์ฑ์ ์ง์ ๋งํฌํ ์ ์์ต๋๋ค. ์ด๋ ๋ค์์ ์๋ฏธํฉ๋๋ค:
- ๋๊ท๋ชจ ๋์คํฌ ์ ์ฝ: ๋์ผํ ์ข ์์ฑ ๊ทธ๋ํ๊ฐ ํ๋ก์ ํธ ๊ฐ์ ๊ณต์ ๋ฉ๋๋ค.
- ๋ ๋น ๋ฅธ ์ค์น:
react@19๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ ํธ๊ฐ 10๊ฐ ์์ด๋ pnpm์ ์ด๋ฅผ ์ ์ญ์ ์ผ๋ก ํ ๋ฒ๋ง ๋งํฌํ๋ฉด ๋ฉ๋๋ค.
๋ค์ดํฐ๋ธ JSR ์ง์(v10.9)#
์๋ก์ด JSR ๋ ์ง์คํธ๋ฆฌ๋ฅผ ๋ค์ดํฐ๋ธ๋ก ์ง์ํ๊ฒ ๋์์ต๋๋ค. ์ด์ jsr: ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ JSR์์ ํจํค์ง๋ฅผ ์ง์ ์ค์นํ ์ ์์ต๋๋ค:
pnpm add jsr:@std/collections
์ด๋ package.json์ ์ฌ๋ฐ๋ฅด๊ฒ ๋งคํ๋๋ฉฐ, npm ์ข
์์ฑ๊ณผ ํจ๊ป JSR ํจํค์ง ๊ณ ์ ์ ํด์ ๊ท์น์ ๋งค๋๋ฝ๊ฒ ์ฒ๋ฆฌํฉ๋๋ค.
๊ตฌ์ฑ ์ข ์์ฑ(v10.0)#
๋ชจ๋ ธ๋ ํฌ์ ๋ณต์กํ ์ค์ ์ ์ํด **๊ตฌ์ฑ ์ข ์์ฑ**์ ๋์ ํ์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ํ , ํจ์น, ๋น๋ ๊ถํ๊ณผ ๊ฐ์ pnpm ๊ตฌ์ฑ์ ์ฌ๋ฌ ํ๋ก์ ํธ์์ ๊ณต์ ํ๊ณ ์ค์์์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๊ตฌ์ฑ ์ข
์์ฑ์ ์ฃผ ์ข
์์ฑ ๊ทธ๋ํ๊ฐ ํด์๋๊ธฐ ์ ์ node_modules/.pnpm-config์ ์ค์น๋ฉ๋๋ค. ์ฆ, ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์์ ํ ์ ์์ต๋๋ค:
- ์ฌ๋ฌ ์ ์ฅ์์์
.pnpmfile.cjsํ ์ ๊ณต์ ํฉ๋๋ค. - ํจ์น ํ์ผ์
patchedDependencies์ฉ์ผ๋ก ์ค์์์ ๊ด๋ฆฌํฉ๋๋ค. - ๋น๋ ์คํฌ๋ฆฝํธ ์คํ์ด ํ์ฉ๋ ํจํค์ง์ ๊ณต์ ๋ชฉ๋ก์
allowBuilds์ฉ์ผ๋ก ์ ์งํฉ๋๋ค.
configDependencies:
pnpm-plugin-my-company: "1.0.0+sha512-..."
์ด๋ฅผ ํตํด pnpm ๊ตฌ์ฑ์ด ๋ฒ์ ๊ด๋ฆฌ๋๊ณ ์ผ๊ด๋๋ฉฐ, ํจํค์ง ๊ด๋ฆฌ์๊ฐ ํ์๋ก ํ๋ ๋ฐ๋ก ๊ทธ ์์ ์ ์ฌ์ฉํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
์๋ JavaScript ๋ฐํ์ ๊ด๋ฆฌ(v10.14 & v10.21)#
์ ํฌ๋ ๊ฝค ์ค๋์ ๋ถํฐ Node.js ๋ฐํ์ ๊ด๋ฆฌ๋ฅผ ์ง์ํด ์์ต๋๋ค. 2025๋ ์๋ ์ด๋ฅผ ํ์ฅํ์ฌ Deno์ Bun ๊ฐ์ ๋ค๋ฅธ ๋ฐํ์๋ ์ง์ํ๊ฒ ๋์์ต๋๋ค.
์ด์ devEngines.runtime์ ํตํด package.json์ ํ์ํ ๋ฐํ์์ ์ง์ ํ ์ ์์ต๋๋ค:
{
"devEngines": {
"runtime": {
"name": "node",
"version": "24.6.0"
}
}
}
pnpm์ ํด๋น ํ๋ก์ ํธ์ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ๋ ๊ทธ ํน์ ๋ฒ์ ์ ๋ฐํ์์ ์๋์ผ๋ก ๋ค์ด๋ก๋ํ์ฌ ์ฌ์ฉํฉ๋๋ค. ์ด๋ก์จ "์ ์ปดํจํฐ์์๋ ์ ๋๋๋ฐ์"๋ ์๋ง์ด ๋ฉ๋๋ค. ํ์ ๋ชจ๋๊ฐ pnpm์ด ์ ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ์์ ํ ๋์ผํ ๋ฐํ์์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์์ผ๋ก์ ๊ณํ#
์ ํฌ๋ ์ด๋ฏธ pnpm v11.0 ์์ ์ ์์ํ์ผ๋ฉฐ, ์ฌ๊ธฐ์๋ ๋์ ๋๋ ์ฑ๋ฅ ๊ฐ์ ์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ ์ญ ๊ฐ์ ์คํ ์ด๋ ์์ง ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ง ์์ต๋๋ค. ํฅํ ๋ฉ์ด์ ๋ฆด๋ฆฌ์ค์์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํํ ์ ์๋๋ก ๋ฒ๊ทธ ์์ ๊ณผ ๋๋ฝ๋ ๊ธฐ๋ฅ ์์ ์ ์งํํ ์์ ์ ๋๋ค.