JS/Node.js

4.17.20๋ฒ„์ „๊ณผ 4.17.21๋ฒ„์ „์€ ๋ฌด์Šจ ์ฐจ์ด..? ์œ ์˜์  ๋ฒ„์ „ (SemVer)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž ๐Ÿ‘€

yunieyunie 2022. 11. 4. 15:37

๐Ÿ‘€ ์œ ์˜์  ๋ฒ„์ „ (SemVer)

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ํŒจํ‚ค์ง€, ๋˜๋Š” ๋‹ค์–‘ํ•œ ํˆด๋“ค์„ ์„ค์น˜ํ•  ๋•Œ ๊ฐ€๋” ๋’ค์— ์ˆซ์ž๊ฐ€ ๋ถ™๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
์ด๋Š” ์œ ์˜์  ๋ฒ„์ „ (Semantic Versioning) ์œผ๋กœ ๋ฒ„์ „์— ์˜๋ฏธ๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ ์ˆซ์ž์™€ ๋งˆ์นจํ‘œ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค. (ex. 4.17.20)


์ˆซ์ž๋Š” ์ˆœ์„œ๋Œ€๋กœ Major.Minor.Patch ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.


  • Major๋Š” ๊ธฐ์กด ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์ƒˆ๋กœ์šด ๋ฒ„์ „์„ ๋œปํ•œ๋‹ค.
  • Minor๋Š” ๊ธฐ์กด ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋œ ๋ฒ„์ „์„ ๋งํ•œ๋‹ค.
  • Patch๋Š” ๊ธฐ์กด ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜๋Š” ๋ฒ„๊ทธ ๋ฐ ์˜คํƒ€ ๋“ฑ์ด ์ˆ˜์ •๋œ ๋ฒ„์ „์„ ๋งํ•œ๋‹ค.
  • ์บ๋Ÿฟ๊ธฐํ˜ธ ^๋Š” Major ์•ž์— ๋ถ™๋Š”๋ฐ Major ๋ฒ„์ „ ์•ˆ์—์„œ ๊ฐ€์žฅ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด,
13.2.1์€ 12.2.1์™€๋Š” ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์ƒˆ๋กœ์šด ๋ฒ„์ „์ด์ง€๋งŒ, 13.3.1์€ ํ˜ธํ™˜๊ฐ€๋Šฅ ํ•˜๋ฉด์„œ๋„ 13.2.1๋ณด๋‹ค ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋œ ๋ฒ„์ „์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
13.2.2๋Š” 13.2.1๊ณผ ํ˜ธํ™˜๋˜๋ฉด ๋ฒ„๊ทธ๊ฐ€ ์ˆ˜์ •๋œ ๋ฒ„์ „์ด๋ผ ํ•  ์ˆ˜ ์žˆ๊ณ , ^13.2.1์€ 13๋ฒ„์ „์—์„œ๋„ ๊ฐ€์žฅ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋œป์ด๋‹ค.


๐Ÿ”Ž lodash์˜ ๋ฒ„์ „์œผ๋กœ ์ข€ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž

vscode์—์„œ ์‹ค์ œ ํŒจํ‚ค์ง€ lodash์˜ ๋ฒ„์ „์„ ์•Œ์•„๋ณด์ž (์„ค์น˜๋œ ๋ฒ„์ „์€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ)

  1. package.json ํŒŒ์ผ์„ ์—ด์–ด๋ณด๋ฉด dependencies์—์„œ lodash์˜ ๋ฒ„์ „์ด ^4.17.21์ธ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. ํ„ฐ๋ฏธ๋„์—์„œ npm info lodash๋ฅผ ์ž…๋ ฅํ•˜๋ฉด latest: 4.17.21์ด ๋ณด์ด๋Š”๋ฐ ์„ค์น˜๋œ ๋ฒ„์ „๊ณผ ์ผ์น˜ํ•จ์œผ๋กœ lodash๊ฐ€ ๊ฐ€์žฅ ์ตœ์‹  ๋ฒ„์ „์ž„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  3. ๊ทธ๋Ÿฐ๋ฐ package.json์— ๋ช…์‹œ๋˜์–ด ์žˆ๋Š” ๋ฒ„์ „๊ณผ ์‹ค์ œ๋กœ ์„ค์น˜๋œ ๋ฒ„์ „์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.
    ์ด๋Š” node_modules -> lodash -> package.json ํŒŒ์ผ์„ ์—ด์–ด์„œ version (์‹ค์ œ ์„ค์น˜๋œ ๋ฒ„์ „)์„ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค.

๐Ÿค” ๋ฒ„์ „์„ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ค๋ฉด?

๋งŒ์•ฝ ํ„ฐ๋ฏธ๋„์—์„œ npm install lodash@๋‹ค๋ฅธ๋ฒ„์ „ (ex. npm install lodash@4.17.20)์„ ํ•˜๋ฉด package.json์˜ lodash์™€ lodash์˜ package.json์—์„œ๋„ version์ด "^4.17.20"๋กœ ๋ฐ”๋€Œ์–ด์ ธ ์žˆ๋‹ค.
๋งŒ์•ฝ ์บ๋Ÿฟ๊ธฐํ˜ธ ^๋ฅผ ์ง€์šฐ๊ณ  ์ €์žฅํ•˜๋ฉด ํ•ญ์ƒ 4.17.20 ๋ฒ„์ „์„ ์œ ์ง€ํ•˜๊ฒŒ ๋˜๋ฉฐ npm install lodash@4.17.21๋ฅผ ํ•˜๋ฉด ์—…๋ฐ์ดํŠธ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค.


์บ๋Ÿฟ ๊ธฐํ˜ธ๊ฐ€ ๋ถ™์–ด ์žˆ์œผ๋ฉด ์ƒํ™ฉ์— ๋”ฐ๋ผ ํŽธ๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์›ํ•˜์ง€ ์•Š๋Š” ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์ž๋™ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๊ธฐ๋„ ํ•˜๋‹ค.
์บ๋Ÿฟ ๊ธฐํ˜ธ๋Š” ์„ค์น˜ํ•  ๋•Œ ์ž๋™์œผ๋กœ ๋ถ™๊ธฐ๋„, ์•ˆ๋ถ™๊ธฐ๋„ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋‚ด๊ฐ€ ์ ์ ˆํ•˜๊ฒŒ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•˜๊ฒ ๋‹ค.