์ด Yarn.lock ํฌ๋งทํฐ๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ฅ
- Yarn ์ธ์ ํ์๋ฅผ ์ฌ์ฉํ์ฌ Yarn v1โv4(ํด๋์ ๋ฐ Berry/๋ชจ๋)์ yarn.lock ํ์ผ์ ์์ ํ๊ฒ ์ฌ์ถ๋ ฅ
- ๋ค์ฌ์ฐ๊ธฐ, ๊ฐ๊ฒฉ, ๋ธ๋ก ์์๋ฅผ ์ ๊ทํํ์ฌ Git diff ๋ ธ์ด์ฆ๋ฅผ ์ค์ ๋๋ค
- ๋ฒ์ , ํด๊ฒฐ๋ URL, ๋ฌด๊ฒฐ์ฑ ํด์, ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ์ ํํ ๋ณด์กดํฉ๋๋ค
- yarn.lock ๋ด์ฉ์์ ์ง์ ์๋ํฉ๋๋ค(ํฌ๋งท ์ ๋ฆฌ๋ฅผ ์ํด yarn install์ ์คํํ ํ์ ์์)
- .lock ํ์ผ์ ๋ํ ๋๋๊ทธ ์ค ๋๋กญ ์ง์ ๋ฐ ๊ตฌ๋ฌธ ๊ฐ์กฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
- lockfile ๊ตฌ์กฐ๋ฅผ ๊ฒ์ฆํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ฉํ ์์์ํค์ง ์๊ณ ๊ตฌ๋ฌธ ๋ถ์ ์ค๋ฅ๋ฅผ ํ๋ฉดํํฉ๋๋ค
- ์์ ์ ์ํ ์๊ฒฉํ ํฌ๊ธฐ ์ ํ๊ณผ ํ์์์์ด ์๋ ์์ ํ ์๋ฒ ์ธก ํฌ๋งทํฐ ์๋ํฌ์ธํธ ์ฌ์ฉ
๐ ๏ธ ์จ๋ผ์ธ์์ Yarn.lock ํ์ผ ์ ๊ทํํ๋ ๋ฐฉ๋ฒ for yarn-formatter
1. yarn.lock ๋ถ์ฌ๋ฃ๊ธฐ ๋๋ ์ ๋ก๋
ํ๋ก์ ํธ์ **yarn.lock** ํ์ผ์ ์ด๊ณ , ๋ด์ฉ์ ํธ์ง๊ธฐ์ ๋ณต์ฌํ๊ฑฐ๋ ํ์ผ์ ๋๋๊ทธ ์ค ๋๋กญํ์ธ์. ์ด ๋๊ตฌ๋ v1๋ถํฐ v4๊น์ง์ Yarn lockfile์ ์ธ์ํฉ๋๋ค.
2. ํฌ๋งทํฐ ์คํ
**Format** ๋ฒํผ์ ํด๋ฆญํ์ธ์. ๋ฐฑ์๋๊ฐ Yarn ์ธ์ ๋ก์ง์ผ๋ก lockfile์ ํ์ฑํ๊ณ ํ์คํ๋ ์ ๊ท ํ์์ผ๋ก ์ฌ์์ฑํฉ๋๋ค.
3. ์ถ๋ ฅ ๊ฒฐ๊ณผ ๊ฒํ
ํฌ๋งท๋ yarn.lock์ ๊ฒ์ฌํ์ธ์. ๋ฒ์ , ํด๊ฒฐ๋ URL, ๋ฌด๊ฒฐ์ฑ ํด์, ๋ฉํ๋ฐ์ดํฐ๋ ๋์ผํด์ผ ํ๋ฉฐ ๊ณต๋ฐฑ๊ณผ ์์๋ง ์ ๋ฆฌ๋ฉ๋๋ค.
4. ๋ณต์ฌ ๋๋ ๋ค์ด๋ก๋ ํ ์ปค๋ฐ
์ ๊ทํ๋ lockfile์ ํ๋ก์ ํธ์ ๋ค์ ๋ณต์ฌํ๊ฑฐ๋ ๋ค์ด๋ก๋ํ์ฌ ์๋ณธ์ ๊ต์ฒดํ์ธ์. ํฅํ diff๋ฅผ ์์ ํํ๊ธฐ ์ํด ์ ๋ฐ์ดํธ๋ฅผ ์ปค๋ฐํ์ธ์.
๊ธฐ์ ์ ์ธ๋ถ์ฌํญ
Yarn.lock ๋ฐ ๋ฒ์ ์ง์
์ด ๋๊ตฌ๋ Yarn lockfile์๋ง ์ง์คํ๋ฉฐ ํด๋์ ๋ฐ ๋ชจ๋ lockfile ํ์์ ๋ชจ๋ ์ดํดํฉ๋๋ค.
| Lockfile ์ ํ | ์ง์ | ์ฐธ๊ณ ์ฌํญ |
|---|---|---|
| Yarn v1 (ํด๋์) | โ ์ ์ฒด | ํค๋ ์ฃผ์์ด ์๋ ์๋ ํค/๊ฐ lockfile ํ์์ ์ง์ํฉ๋๋ค. |
| Yarn v2โv4 (Berry/๋ชจ๋) | โ ์ ์ฒด | ์๋ก์ด YAML ์คํ์ผ lockfile ๋ ์ด์์๊ณผ ๋ฉํ๋ฐ์ดํฐ ๋ธ๋ก์ ์ดํดํฉ๋๋ค. |
| ๋น-Yarn .lock ํ์ผ | โ ๏ธ ๋ณด์ฅ๋์ง ์์ | ๋ค๋ฅธ lock ํ์(npm, pnpm ๋ฑ)์ ์ด ํฌ๋งทํฐ์์ ๊ณต์์ ์ผ๋ก ์ง์๋์ง ์์ต๋๋ค. |
| package.json | โ ๋ฒ์ ์ธ | ๋์ JSON ํฌ๋งทํฐ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ package.json์ ํฌ๋งทํ์ธ์. |
ํฌ๋งทํ ๋์
์ด ํฌ๋งทํฐ๋ **์์ ํ๊ณ ๋ฉฑ๋ฑ์ฑ**์ ๋ชฉํ๋ก ํฉ๋๋ค: ์ฌ๋ฌ ๋ฒ ์คํํด๋ ๋ฝํ์ผ์ ์์ ์ ์ผ๋ก ์ ์งํ๋ฉด์ ์์กด์ฑ ์๋ฏธ๋ฅผ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค.
| ํญ๋ชฉ | ๋์ | ์ํฅ |
|---|---|---|
| ํค๋ ์ฃผ์ | ์๋ณธ ๊ทธ๋๋ก ๋ณด์กด | ํ์ค ์๋ ์์ฑ ํ์ผ ๊ฒฝ๊ณ ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ์ ์งํฉ๋๋ค. |
| ์์กด์ฑ ํญ๋ชฉ | Yarn ์ธ์ ํ๋ฆฐํฐ๋ก ์ฌ์ถ๋ ฅ | ๋ฒ์ ์ ๋ณ๊ฒฝํ์ง ์๊ณ ๊ฐ๊ฒฉ๊ณผ ์์๋ฅผ ์์ ํํฉ๋๋ค. |
| ๊ณต๋ฐฑ ๋ฐ ๋ค์ฌ์ฐ๊ธฐ | ์ ๊ทํ๋จ | ์ผ๊ด์ฑ ์๋ ๊ฐ๊ฒฉ์ ์ ๊ฑฐํ๊ณ , ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ ๋ ฌํ๋ฉฐ, ๋น ์ค์ ํ์คํํฉ๋๋ค. |
| ํ๋ ์์ | Yarn ๊ท์น์ ๋ฐ๋ฅธ ํ์ค ์์ | ํค๋ฅผ ์ผ๊ด๋ ์์๋ก ์ ์งํ์ฌ ๋ถํ์ํ diff๋ฅผ ์ค์ ๋๋ค. |
| ๋คํธ์ํฌ ํธ์ถ | ์์ | ํฌ๋งทํฐ๋ ๋ ์ง์คํธ๋ฆฌ์ ์ ์ํ๊ฑฐ๋ node_modules ํธ๋ฆฌ๋ฅผ ์์ ํ์ง ์์ต๋๋ค. |
์ ํ, ์ฑ๋ฅ ๋ฐ ์์ ์ฑ
์ค์ ๋ฝํ์ผ๊ณผ ํจ๊ป ๋น ๋ฅธ ์ํธ์์ฉ ์ฌ์ฉ์ ์ํด ์ค๊ณ๋์์ผ๋ฉฐ ์๋ฒ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ณดํธํฉ๋๋ค.
| ๋งค๊ฐ๋ณ์ | ๊ฐ | ์ฐธ๊ณ |
|---|---|---|
| ์ต๋ ํ ์คํธ ํฌ๊ธฐ | โ 2,000,000 ๋ฌธ์ | ํฌ๋งทํฐ ์๋ํฌ์ธํธ ํธ์ถ ์ ์ ์ฉ๋๋ ํ๋ ์์ ์ ํ. |
| ์ต๋ ํ์ผ ํฌ๊ธฐ | ~5 MB | ๊ทน๋จ์ ์ธ ๊ฒฝ์ฐ๋ฅผ ํผํ๊ธฐ ์ํ ์ ๋ก๋ UI ์์ค ์ ์ฝ. |
| ํ์์์ | ~25์ด | ๋๋ฌด ์ค๋ ๊ฑธ๋ฆฌ๋ ์์ฒญ์ ๋ช ํํ ์ค๋ฅ ๋ฉ์์ง์ ํจ๊ป ์ค๋จ๋ฉ๋๋ค. |
| ์ฒ๋ฆฌ ์์น | ์๋ฒ ์ธก | ํฌ๋งทํ ์ Yarn ์ธ์ ๋ก์ง์ ์ฌ์ฉํ๋ ์์ ํ ๋ฐฑ์๋์์ ์คํ๋ฉ๋๋ค. |
| ์ง์์ฑ | ์ฅ๊ธฐ ์ ์ฅ ์์ | Lockfile ๋ด์ฉ์ ํ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด ์ผ์์ ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. |
Yarn.lock ์ ๋ฆฌ๋ฅผ ์ํ CLI ๋์
๋๊ท๋ชจ ์ ์ฅ์๋ ์๋ํ๋ ์ํฌํ๋ก์ฐ์ ๊ฒฝ์ฐ, lockfile ์ ๊ทํ๋ฅผ ๊ธฐ์กด Yarn/Node.js ๋๊ตฌ ์ฒด์ธ ๋ด์์ ์ ์งํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค.
๋ฆฌ๋ ์ค / ๐ macOS / ๐ช Windows (Node.js)
yarn.lock์ ์ฒ์๋ถํฐ ๋ค์ ์์ฑ
rm yarn.lock && yarn installYarn์ด package.json๊ณผ ํ์ฌ ๋ ์ง์คํธ๋ฆฌ ์ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก lockfile์ ์ฌ์์ฑํ๋๋ก ํฉ๋๋ค.
Prettier๋ก lockfile๊ณผ JSON ๋งค๋ํ์คํธ ํ์ํ
npx prettier "**/yarn.lock" "**/package.json" --writePrettier๋ฅผ ์ฌ์ฉํ์ฌ lockfile๊ณผ ํจํค์ง ๋งค๋ํ์คํธ์ ๊ณต๋ฐฑ์ ์ ๊ทํํฉ๋๋ค.
๋ ์์ diff๋ฅผ ์ํด package.json ํ๋ ์ ๋ ฌ
npx sort-package-jsondependencies ๋ฐ scripts์ ๊ฐ์ package.json ์น์ ์ ์ผ๊ด๋๊ฒ ์ ๋ ฌ๋ ์ํ๋ก ์ ์งํฉ๋๋ค.
์ค์ฉ์ ์ธ ์ฌ์ฉ ์ฌ๋ก
์ง์ ๋ถํ Git Diff ์ ๋ฆฌ
ํ ๋ฆฌํ์คํธ์์ lockfile ๊ด๋ จ ๋ ธ์ด์ฆ๋ฅผ ์ค์ ๋๋ค.
- ๊ฐ๊ฒฉ๊ณผ ์์๊ฐ ์ผ๊ด๋์ง ์๊ฒ ๋ ๋ณต์กํ ๋ณํฉ ํ yarn.lock์ ์ ๊ทํํฉ๋๋ค.
- PR์ ์ด๊ธฐ ์ ์ ํฌ๋งทํฐ๋ฅผ ์คํํ์ฌ ์์กด์ฑ ๋ณ๊ฒฝ ์ฌํญ์ ๋ ์ฝ๊ฒ ๊ฒํ ํ ์ ์๋๋ก ํฉ๋๋ค.
- lockfile ํ์ํ๋ฅผ ์์ ํํ์ฌ ํฅํ diff๊ฐ ์ค์ ๋ฒ์ ๋ณ๊ฒฝ์ ์ง์คํ ์ ์๋๋ก ํฉ๋๋ค.
๋ชจ๋ ธ๋ ํฌ & ๋ค์ค ๋ธ๋์น ํ๋ก์ ํธ
ํ๊ณผ ๋ธ๋์น ๊ฐ์ lockfile์ ๊ฐ๋ ์ฑ ์๊ณ ์์ ์ ์ผ๋ก ์ ์งํฉ๋๋ค.
- ๋ธ๋์น ๋ฆฌ๋ฒ ์ด์ค๋ ์ฅ๊ธฐ ์คํ ๊ธฐ๋ฅ ๋ธ๋์น ํ lockfile ํ์ํ๋ฅผ ๋ง์ถฅ๋๋ค.
- ๋ ํ๋์ ์ธ ์ํฌํ๋ก์ฐ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ๋ ์ค๋๋ Yarn v1 ์์ฑ lockfile์ ์ ๊ทํํฉ๋๋ค.
- lockfile ์ถฉ๋์ด ๊ณ์ ์ฌ๋ฐํ ๋ ๋๊ตฌ๋ฅผ ์ง๋จ ๋ณด์กฐ ์๋จ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
๊ต์ก & ์จ๋ณด๋ฉ
์๋ก ์จ ์ฌ๋๋ค์ด ์ง์ ๋ถํ ์ถ๋ ฅ์ ์๋๋์ง ์๊ณ yarn.lock์ด ๋ฌด์์ ํ๋์ง ์ดํดํ๋๋ก ๋์ต๋๋ค.
- Yarn์ด ์ ํํ ์์กด์ฑ ํธ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ์ถ์ ํ๋์ง ์ค๋ช ํ๊ธฐ ์ํด before/after lockfile์ ๋ณด์ฌ์ค๋๋ค.
- ์์์ ์ด๊ณ ์ง์ ๋ถํ lockfile ๋์ ๋ฌธ์ํ ๋ฐ ์ํฌ์ต์์ ์ ๊ทํ๋ lockfile์ ์ฌ์ฉํฉ๋๋ค.
- lockfile์ด ๋ค๋ฅธ ์์ค ํ์ผ์ฒ๋ผ ์ปค๋ฐ๋๊ณ ๊ฒํ ๋์ด์ผ ํ๋ ์ด์ ๋ฅผ ์์ฐํฉ๋๋ค.
โ Frequently Asked Questions
๐งพ์ด ๋๊ตฌ๋ก ์ด๋ค ํ์ผ์ ํ์ํํ ์ ์๋์?
JSON ํฌ๋งทํฐ๋ฅผ ์ฌ์ฉํ์ธ์.๐ง ํฌ๋งทํฐ๊ฐ ๋ด ์์กด์ฑ์ ๋ณ๊ฒฝํ๋์?
๐๋น๊ณต๊ฐ ํ๋ก์ ํธ์์ ์ด ๋๊ตฌ๋ฅผ ์ฌ์ฉํด๋ ์์ ํ๊ฐ์?
โ๏ธpackage.json๋ ์ฌ๊ธฐ์ ํฌ๋งทํ ์ ์๋์?
JSON ํฌ๋งทํฐ๋ `"**/package.json" --write` ์ต์
์ ์ฌ์ฉํ Prettier๋ฅผ ์ฌ์ฉํ์ธ์. ์ ๊ธ ํ์ผ๊ณผ ๋งค๋ํ์คํธ ํฌ๋งทํ
์ ์ผ์น์ํค๋ ๊ฒ์ diff ๋
ธ์ด์ฆ๋ฅผ ์ค์ด๋ ์ข์ ๋ฐฉ๋ฒ์
๋๋ค.๐ซyarn.lock ํ์ผ์ด ์์๋์๊ฑฐ๋ Yarn ํ์ผ์ด ์๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ๋๋์?
๐ํฌ๋งทํฐ๋ ๋ฉฑ๋ฑ์ฑ(idempotent)์ ๊ฐ์ง๋์?
Pro Tips
ํ ๋ฆฌํ์คํธ๋ฅผ ์ด๊ธฐ ์ ์ yarn.lock์ ์ ๊ทํํ์ฌ ๊ฒํ ์๊ฐ ๊ณต๋ฐฑ ๋ ธ์ด์ฆ ๋์ ์ค์ ๋ฒ์ ๋ณ๊ฒฝ์ ์ง์คํ ์ ์๋๋ก ํ์ธ์.
์ด ์จ๋ผ์ธ ํฌ๋งทํฐ๋ฅผ ์ ๊ธ ํ์ผ์์ Yarn์ด๋ Prettier๋ฅผ ์คํํ๋ pre-commit ํ ๋๋ CI ๋จ๊ณ์ ํจ๊ป ์ฌ์ฉํ์ฌ ์๋ํฌ์๋ ์ผ๊ด์ฑ์ ํ๋ณดํ์ธ์.
์์กด์ฑ ๋ฌธ์ ๋ฅผ ๋๋ฒ๊น ํ ๋๋ ์ ๋ฆฌ๋ ์ ๊ธ ํ์ผ์ ์ด์ ๋ณด๊ณ ์์ ์ฌ์ฉํ์ฌ ์ ์ง ๊ด๋ฆฌ์๊ฐ ์ฝ๊ฒ ์ค์บํ ์ ์๋๋ก ํ์ธ์.
์ ๊ธ ํ์ผ์ด ์์ฌ์ค๋ฌ์ ๋ณด์ด๋ ๊ฒฝ์ฐ(๋ณํฉ ์ถฉ๋ ๋ง์ปค, ๋ถ๋ถ์ ๋ด์ฉ), ๋ ๊น์ ๋ฌธ์ ๋ฅผ ์จ๊ธฐ์ง ์๋๋ก ํฌ๋งทํ ํ๊ธฐ ์ ์ Yarn์ผ๋ก ์ฌ์์ฑํ์ธ์.
Additional Resources
Other Tools
- CSS ์ ๋ฆฌ ๋๊ตฌ
- HTML ์ ๋ฆฌ ๋๊ตฌ
- ์๋ฐ์คํฌ๋ฆฝํธ ์ ๋ฆฌ ๋๊ตฌ
- PHP ์ ๋ฆฌ ๋๊ตฌ
- ์์ ์ ํ๊ธฐ
- ์คํ๋ผ์ดํธ ์ถ์ถ๊ธฐ
- Base64 ๋์ฝ๋
- Base64 ์ธ์ฝ๋
- C# ํฌ๋งทํฐ
- CSV ํฌ๋งทํฐ
- Dockerfile Formatter
- Elm ํฌ๋งทํฐ
- ENV ํฌ๋งทํฐ
- Go ํฌ๋งทํฐ
- GraphQL ํฌ๋งทํฐ
- HCL ํฌ๋งทํฐ
- INI ํฌ๋งทํฐ
- JSON ํฌ๋งทํฐ
- LaTeX ํฌ๋งทํฐ
- ๋งํฌ๋ค์ด ํฌ๋งทํฐ
- Objective-C ํฌ๋งทํฐ
- Php Formatter
- ํ๋กํ ์ฝ ๋ฒํผ ํฌ๋งทํฐ
- Python ํฌ๋งทํฐ
- Ruby ํฌ๋งทํฐ
- Rust ํฌ๋งทํฐ
- Scala ํฌ๋งทํฐ
- ์ ธ ์คํฌ๋ฆฝํธ ํฌ๋งทํฐ
- SQL ํฌ๋งทํฐ
- SVG ํฌ๋งทํฐ
- Swift ํฌ๋งทํฐ
- TOML ํฌ๋งทํฐ
- Typescript Formatter
- XML ํฌ๋งทํฐ
- YAML ํฌ๋งทํฐ
- CSS ์์ถ๊ธฐ
- Html Minifier
- Javascript Minifier
- JSON ์์ถ๊ธฐ
- XML ์ต์ํ ๋๊ตฌ
- HTTP ํค๋ ๋ทฐ์ด
- PDF ํ ์คํธ ๋ณํ
- ์ ๊ท์ ํ ์คํฐ
- ๊ฒ์ ์์ ํ์ธ๊ธฐ
- Whois ์กฐํ