๐Ÿ“
til
  • TIL(Today I Learned)
  • javascript
    • value-number-string-boolean-null-undefined
    • primitive-reference
    • Hoisting
    • Prototypes in Javascript
    • this
    • prototype
    • ์ฝœ๋ฐฑํ•จ์ˆ˜ (Callback function)
    • ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ
    • ์ž๋ฃŒ๊ตฌ์กฐ new keyword
    • closure
    • Promise
    • event-loop
    • array-object
    • ๊ฐ์ฒด
    • Arguments
    • higher order function
    • operators-function-control-flow
    • ๊ฐ์ฒด ์ƒ์„ฑ ํŒจํ„ด 3๊ฐ€์ง€
    • Javascript scopes
    • Functional Programming
    • Design Patterns
    • ๋ฐ์ดํ„ฐ ํƒ€์ž…
    • Object ๊ฐ์ฒด
    • ํ‘œ์ค€ ๋‚ด์žฅ ๊ฐ์ฒด์˜ ํ™•์žฅ
    • ์ฐธ์กฐ
    • ํ•จ์ˆ˜
    • ์ƒ์†(Inheritance)
    • this - 'this'๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ '์–ด๋–ป๊ฒŒ' ์‹คํ–‰ํ•˜๋А๋ƒ์— ๋”ฐ๋ฅธ 4๊ฐ€์ง€ this ์ •์˜
    • ์ „์—ญ๊ฐ์ฒด(Global object)
    • ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    • The 'new' keyword - Object Creation in JavaScript
  • javascript-api
    • Number
      • Number.MAX_VALUE
      • Number.isInteger
      • Number.NEGATIVE_INFINITY
      • Number.isNaN()
      • Number.POSITIVE_INFINITY
      • Number.parseFloat
      • Number.EPSILON
      • number.toExponential
      • Number.MAX_SAFE_INTEGER
      • Number1 - ์ž์—ฐ์ˆ˜, ์ •์ˆ˜, 10์ง„์ˆ˜, 2์ง„์ˆ˜, ๋ถ€๋™์†Œ์ˆ˜์ , ์‹ค์ˆ˜
      • Number.isSafeInteger()
      • Number.MIN_VALUE
      • Number.parseInt
      • Number.NaN
      • Number.isFinite()
      • Number.MIN_SAFE_INTEGER
      • toFixed
    • string.split
    • String.fromCodePoint
    • string.trimEnd
    • string.padStart
    • string.@@iterator
    • String.fromCharCode
    • string.toUpperCase
    • string.codePointAt
    • string.toLowerCase()
    • string.toString
    • string.includes
    • string.replace()
    • string.charAt
    • String.lastIndexOf
    • string.slice
    • string.search
    • string.padEnd
    • string.substring
    • string.length
    • string.trim
    • string.localeCompare
    • String.indexOf
    • string.endsWith
    • string.valueOf
    • String.raw
    • string.matchAll()
    • string.repeat
    • string.match
    • String.prototype
    • string.startsWith
    • string.charCodeAt
    • string.trimStart
    • string.concat
    • string.toLocaleUpperCase()
    • string.toLocaleLowerCase
    • String
  • learn-node
    • debugger
    • Tip
  • schema-design
    • Database Schema Design
    • Database Schema Design
  • react
    • LifeCycle
    • redux
    • Context API
    • ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์™€ ํด๋ž˜์Šค, ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์กด์žฌํ• ๊นŒ?
    • Hooks๊ณผ useEffect ์‚ฌ์šฉํ•ด ๋ณด๊ธฐ
    • Route
    • async wait ์‚ฌ์šฉํ•˜๊ธฐ
    • Hooks API Reference
    • context
    • npm uninstall ํ•˜๋Š”๋ฒ•
    • test ๋งŒ๋“ค๊ธฐ
  • tip
    • ํด๋ฆฐ์ฝ”๋“œ
    • BxSlider๋กœ ํ…์ŠคํŠธ ํ๋ฅด๋Š” ํšจ๊ณผ ๋งŒ๋“ค๊ธฐ
  • javascript30
    • Event Capture, Propagation, Bubbling and Once
    • Object and Arrays - Reference VS Copy
  • typescript
    • ์šฐ์•„ํ•œ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ 2๋ถ€
    • The Basic Cheatsheet
    • TypeScript
    • Type Guards and Differnetiating Types
    • ์šฐ์•„ํ•œ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ
    • Generics
  • git-from-the-hell
    • git
    • init-status-add-commit-log-stage-repository
    • log-diff
    • ๋จธ์ง€ ํ›„ branch ์‚ญ์ œํ•˜๊ธฐ
    • ์ง€์˜ฅ์—์„œ ์˜จ Git
    • reset-revert
    • develop branch ๋ฅผ pull ํ•˜๊ณ  ์‹ถ์„๋•Œ
  • conference-and-seminar
    • ๋ชจ๋˜ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœํ™˜๊ฒฝ์˜ ์ดํ•ด
  • fire-base
    • Firebase .gitignore
  • vanillacoding
    • Data Structures
    • Sorting Algorithms - part 1
    • Promise
    • class
    • 04.quiz
    • 07.event-loop
    • Design Patterns
    • OOP (Object Oriented Programming)
  • etc
    • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋“œ๋ฆฌ๋ทฐ
    • ์Šค์Šค๋กœ ๊ณต๋ถ€ํ•˜๋Š” ๋ฒ•
    • ๋ฐ”๋‹๋ผ์ฝ”๋”ฉ ์ˆ˜๊ฐ• ํ›„๊ธฐ
    • async ๊ณผ์ œ ํ›„๊ธฐ - ๋น„๋™๊ธฐ, ๋™๊ธฐ, ํด๋กœ์ €, ๋ฐฐ์—ด๊ณผ ๊ฐ์ฒด
    • ์œ ์šฉํ•œ ์‚ฌ์ดํŠธ
  • algorithm
    • The Supermarket Queue
    • Find the odd int
    • The Office III - Broken Photocopier
    • Directions Reduction
    • The Office II - Boredom Score
    • Divisible Sum Pairs
    • Codewars ์ด์šฉ์ž ์†”๋ฃจ์…˜ ๋ชจ์Œ
    • Shortest Word
    • find key
    • Two Sum
    • Simple Pig Latin
  • Book
    • the essence of object-orientation
      • ํƒ€์ž…๊ณผ ์ถ”์ƒํ™”
      • ๊ฐ์ฒด ์ง€๋„
      • ์ด์ƒํ•œ ๋‚˜๋ผ์˜ ๊ฐ์ฒด
      • ์ถ”์ƒํ™” ๊ธฐ๋ฒ•
      • 05. ์ฑ…์ž„๊ณผ ๋ฉ”์‹œ์ง€
      • 07.ํ•จ๊ป˜ ๋ชจ์œผ๊ธฐ
      • 04. ์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ
      • ํ˜‘๋ ฅํ•˜๋Š” ๊ฐ์ฒด๋“ค์˜ ๊ณต๋™์ฒด
  • ecma-script2015
    • Object Literal Upgrades
    • default-parameter-template-literals-arrow-functions
    • spread-operator-rest-param
    • let-const-rest-parameter-spread-operator-destructuring
  • http
    • ์›น ๋ธŒ๋ผ์šฐ์ €์— URL์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ์›น ํŽ˜์ด์ง€๊ฐ€ ๋ณด์—ฌ์งˆ๊นŒ?
  • jest
    • toThrow(error?)
  • data-structures
    • Data Structures
  • express
    • express generator
    • CORS
  • css-flexible-box-layout
    • flex ํ•ด๋ฒ„๋ ธ์ง€ ๋ญ์•ผ
  • git
    • Git
  • mongodb
    • MongoDB
  • markdown
    • use-markdown
  • cmder
    • cmd ๋ช…๋ น์–ด ๋ชจ์Œ
  • debug
    • trackClicksEx function error
  • npm
    • NPM TOKEN ์„ค์ •ํ•˜๊ธฐ
  • storybook
    • Storybook
  • sort
    • Sorting Algorithms - part 1
  • javascript-koans
    • Javascript Koans ์˜ค๋‹ต๋…ธํŠธ
  • rxjs
    • Rx.js
  • dom-elements
    • HTML Element
  • redux-toolkit
    • Redux Toolkit
  • github-actions
    • GitHub Actions
  • redux-middleware
    • redux middleware
  • rest
    • rest
  • css-rendering
    • ์ฝ”๋“œ ์Šคํ”ผ์ธ  - CSS Rendering 1ํšŒ์ฐจ 2/2
    • ์ฝ”๋“œ ์Šคํ”ผ์ธ  - CSS Rendering 1ํšŒ์ฐจ 1/2
  • you-dont-know-js
    • ํƒ€์ž…
  • server
    • # shutdown local server
  • semantic-versioning
    • Semantic Versioning 2.0.0
Powered by GitBook
On this page
  • Versions
  • Semantic Versioning Specification (SemVer)
  • Version Range
  • Prerelease Tags
  • Advanced Range Syntax
  • ๊ฒฐ๋ก 
  • TIP

Was this helpful?

  1. semantic-versioning

Semantic Versioning 2.0.0

Previoussemantic-versioning

Last updated 5 years ago

Was this helpful?

์†Œํ”„ํŠธ์›จ์–ด ๋ฆด๋ฆฌ์ฆˆ ๋ฒ„์ „ ๋„˜๋ฒ„์— ๋Œ€ํ•œ ๋„ค์ด๋ฐ ์‹œ์Šคํ…œ์ด๋‹ค. ๊ทธ๋ผ๋ฐ”ํƒ€(Gravatars)์˜ ์ฐฝ์‹œ์ž์ด์ž ๊นƒํ—™(GitHub)์˜ ๊ณต๋™์ฐฝ์—…์ž์ธ ํ†ฐ ํ”„๋ ˆ์Šคํ„ด-๋ฒ ๋ฅด๋„ˆ(Tom Preston-Werner)๊ฐ€ ์ž‘์„ฑํ–ˆ์œผ๋ฉฐ, ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. npm ๋“ฑ api ๊ฐœ๋ฐœ ์Šค์ผ€์ฅด์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„  ์•Œ์•„๋‘ฌ์•ผ ํ•˜๋ฉฐ, ๋ฒ„์ „์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ด package (api)๊ฐ€ ์–ด๋–ค์‹์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”๊ฐ€๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

Versions

  • MAJOR Version: ๊ธฐ์กด api๊ฐ€ ๋ณ€๊ฒฝ / ์‚ญ์ œ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— update ํ•˜๋ฉด ๋™์ž‘ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒฝ๊ณ ์˜ ์˜๋ฏธ

  • MINOR Version: ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ API๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์œผ๋‹ˆ ์‚ดํŽด๋ณด๋ผ๋Š” ์˜๋ฏธ

  • PATCH Version: ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •์„ ํ–ˆ์„ ๊ฒฝ์šฐ

Semantic Versioning Specification (SemVer)

  • SemVer(์œ ์˜์ ๋ฒ„์ „)์„ ์“ฐ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋ฐ˜๋“œ์‹œ ๊ณต๊ฐœ API๋ฅผ ์„ ์–ธํ•œ๋‹ค. ์ฝ”๋“œ์ž์ฒด๋กœ ์„ ์–ธํ•˜๊ฑฐ๋‚˜, ๋ฌธ์„œ๋กœ ์—„๊ฒฉํ•˜๊ฒŒ ๋ช…์‹œํ•ด์•ผ ํ•œ๋‹ค. (์ฑ…์ž„๊ฐ ์žˆ๋Š” ๊ฐœ๋ฐœ์ž..)

  • Normal Version์€ ๋ฐ˜๋“œ์‹œ X.Y.Z ํ˜•ํƒœ์ด๋ฉฐ ์Œ์ˆ˜๊ฐ€ ์•„๋‹Œ ์ •์ˆ˜์—ฌ์•ผ ํ•˜๋ฉฐ ์ ˆ๋Œ€ ์•ž์— 0์ด ๋ถ™์œผ๋ฉด ์•ˆ๋˜๊ณ  ๊ฐ ์ˆ˜๋Š” ์ฆ๊ฐ€ํ•˜๋Š” ์ˆ˜์—ฌ์•ผ ํ•œ๋‹ค.

  • ๋ฐฐํฌํ•˜๋ฉด ๊ทธ ๋ฒ„์ „์˜ ๋‚ด์šฉ์€ ์ ˆ๋Œ€ ๋ณ€๊ฒฝํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค. ๐Ÿ˜ฑ

  • 0(0.y.z)์€ ์ดˆ๊ธฐ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด์„œ ์“ด๋‹ค. ์•„๋ฌด ๋•Œ๋‚˜ ๋งˆ์Œ๋Œ€๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.

  • 1.0.0 ๋ฒ„์ „์€ ๊ณต๊ฐœ API๋ฅผ ์ •์˜ํ•œ๋‹ค. ์ดํ›„ ๋ฒ„์ „์€ ๋ฐฐํฌํ•œ ๊ณต๊ฐœ API์—์„œ ์–ด๋–ป๊ฒŒ ๋ฐ”๋€Œ์—ˆ๋Š”์ง€์— ๋”ฐ๋ผ ์˜ฌ๋ฆฐ๋‹ค.

  • MAJOR Version์ด ์˜ฌ๋ผ๊ฐ€๋ฉด MINOR Version๊ณผ PATCH Version์€ 0์ด ๋˜์•ผํ•˜๊ณ 

    MINOR Version์ด ์˜ฌ๋ผ๊ฐ€๋ฉด PATCH Version์ด 0์ด ๋ฐ˜๋“œ์‹œ ๋˜์–ด์•ผ ํ•œ๋‹ค.

  • ์ •์‹ ๋ฐฐํฌ๋ฅผ ์•ž๋‘” pre-release version์€ MINOR Version ๋ฐ”๋กœ ๋’ค์— ๋ถ™์ž„ํ‘œ(-)์™€ ๋งˆ์นจํ‘œ(.)๋กœ ๊ตฌ๋ถ„๋œ ์‹๋ณ„์ž๋ฅผ ๋”ํ•ด์„œ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹๋ณ„์ž๋Š” ๋ฐ˜๋“œ์‹œ ์•„์Šคํ‚ค(ASCII) ๋ฌธ์ž, ์ˆซ์ž, ๋ถ™์ž„ํ‘œ๋กœ๋งŒ ๊ตฌ์„ฑํ•œ๋‹ค[0-9A-Za-z-]. ์‹๋ณ„์ž๋Š” ๋ฐ˜๋“œ์‹œ ํ•œ ๊ธ€์ž ์ด์ƒ์œผ๋กœ ํ•œ๋‹ค. ์ˆซ์ž ์‹๋ณ„์ž์˜ ๊ฒฝ์šฐ ์ ˆ๋Œ€ ์•ž์— 0์„ ๋ถ™์ธ ์ˆซ์ž๋กœ ํ‘œ๊ธฐํ•˜์ง€ ์•Š๋Š”๋‹ค.

    ์˜ˆ) 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92.

    ์šฐ์„ ์ˆœ์œ„๋Š” 1.0.0-alpha < 1.0.0.

  • Build metadata๋Š” ์ˆ˜๋ฒ„์ „์ด๋‚˜ ์ •์‹๋ฐฐํฌ ์ „ ์‹๋ณ„์ž ๋’ค์— ๋”ํ•˜๊ธฐ(+) ๊ธฐํ˜ธ๋ฅผ ๋ถ™์ธ ๋’ค์— ๋งˆ์นจํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ์‹๋ณ„์ž๋ฅผ ๋ง๋ถ™์—ฌ์„œ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

    Build metadata.. Build metadata.. ??๐Ÿง

    ์˜ˆ) 1.0.0-alpha+001, 1.0.0+20130313144700, 1.0.0-beta+exp.sha.5114f85.

Version Range

์„ค์น˜๋œ ํŒจํ‚ค์ง€ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜๋Š” package.json์—์„œ ํŒจํ‚ค์ง€์˜ ๋ฒ„์ „ ํ‘œ์‹œ๋ฅผ ๋งŽ์ด ๋ดค์„ ๊ฒƒ์ด๋‹ค.

"devDependencies": {
  "@lunit/cornerstone-declarations": "^0.4.0",
  "react-test-renderer": "^16.13.0",
  "react-zeroconfig": "^3.27.2-alpha.2"
}

Strict constraint (or fully qualified constraint) are those constraints matching only one version. In most case it is a bad idea to use them.

Why? Because with them you are locking your dependency to a specific patch release which means you won't ever get bug fixes when updating your dependencies.

comparator

์—ฐ์‚ฐ์ž์™€ ๋ฒ„์ „์œผ๋กœ ํ‘œ์‹œ

ํ‘œ๊ธฐ๋ฒ•

์„ค๋ช…

version

๋ช…์‹œ๋œ version๊ณผ ์ผ์น˜

>version

๋ช…์‹œ๋œ version๋ณด๋‹ค ๋†’์€ ๋ฒ„์ „

>=version

๋ช…์‹œ๋œ version๊ณผ ๊ฐ™๊ฑฐ๋‚˜ ๋†’์€ ๋ฒ„์ „ ์˜ˆ์‹œ) >=1.2.7 ๋Š” 1.2.7๊ณผ 1.2.8๊ณผ 1.3.9๋Š” ํฌํ•จ๋  ์ˆ˜ ์žˆ์ง€๋งŒ 1.2.6์ด๋‚˜ 1.0.0 ๋ฒ„์ „์€ ๋งค์น˜๋˜์ง€ ์•Š๋Š”๋‹ค.

<version

๋ช…์‹œ๋œ version๋ณด๋‹ค ๋‚ฎ์€ ๋ฒ„์ „

<=version

๋ช…์‹œ๋œ version๊ณผ ๊ฐ™๊ฑฐ๋‚˜ ๋‚ฎ์€ ๋ฒ„์ „

comparator set

whitespace๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ &&์™€ ๊ฐ™๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ || ๋„ ๊ฐ™์ด ์“ฐ์ผ ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ์‹œ๋กœ ํ™•์ธํ•˜์Ÿˆ

  • >=1.2.7 <1.3.0 patch ์—…๋ฐ์ดํŠธ ํ—ˆ์šฉ

  • 1.2.7 || >=1.2.9 <2.0.0 1.2.7 ์ด๊ฑฐ๋‚˜ 1.2.9ํฌํ•จ minor๊ณผ patch ์—…๋ฐ์ดํŠธ ํ—ˆ์šฉ

Prerelease Tags

prerelease tag(์˜ˆ๋กœ, 1.2.3-alpha.3)๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ

> 1.2.3-alpha.3 [major, minor, patch] ์ „๋ถ€ ์ผ์น˜ํ•  ๊ฒฝ์šฐ 1.2.3์ผ ๊ฒฝ์šฐ prerelease tag๋„ ํ•จ๊ป˜ ํฌํ•จ๋œ๋‹ค. 1.2.3-alpha.4๋Š” ํฌํ•จ, 1.2.4๋„ ํฌํ•จ ๋˜์ง€๋งŒ 1.2.4-alpha.3์€ ํฌํ•จ๋˜์ง€ ์•Š๋Š”๋‹ค.

์ด๋ ‡๊ฒŒ ๋˜์–ด์žˆ๋Š” ๊ฑด 2๊ฐ€์ง€ ์ด์œ ๊ฐ€ ์žˆ๋‹ค.

  1. prerelease version์€ ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์—…๋ฐ์ดํŠธ ๋˜๊ธฐ ๋•Œ๋ฌธ์—, public consumption์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š๊ณ  ๋งŽ์€ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— range matching์—๋Š” ์ œ์™ธ๋œ๋‹ค.

  2. user๊ฐ€ prerelease version์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค๋ฉด ์œ„ํ—˜์„ ์ธ์‹ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— [major, minor, patch]๊ฐ€ ์ผ์น˜ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ํฌํ•จํ•˜์ง€๋งŒ, ๋‹ค์Œ prelease version๊นŒ์ง€๋Š” ๊ฐ์ˆ˜ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค.

๐Ÿคญ์™€์šฐ

Advanced Range Syntax

Hyphen Ranges X.Y.Z - A.B.C

  • 1.2.3 - 2.3.4 >=1.2.3 <=2.3.4

  • 1.2 - 2.3.4 ์ฒซ๋ฒˆ์งธ ๋ฒ„์ „์— ์ƒ๋žต์ด ์žˆ๋‹ค๋ฉด 0์„ ํฌํ•จ์‹œํ‚จ๋‹ค. >=1.2.0 <=2.3.4

  • 1.2.3 - 2.3

    ๋‘๋ฒˆ์งธ ๋ฒ„์ „์— ์ƒ๋žต์ด ์žˆ๋‹ค๋ฉด [major, minor] ๊ฐ€ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ๋งŒ ํฌํ•จ

    >=1.2.3 <2.4

  • 1.2.3 - 2

    ๋‘๋ฒˆ์งธ ๋ฒ„์ „์— ์ƒ๋žต์ด ์žˆ๋‹ค๋ฉด 2๋กœ ์‹œ์ž‘ํ•˜๋Š” [major] ๊ฐ€ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ๋งŒ ํฌํ•จ

    >=1.2.3 <3

X-Ranges 1.2.x 1.X 1.2.*

  • * >0.0.0 ๋ชจ๋“  ๋ฒ„์ „์— ์ถฉ์กฑ

  • 1.x

    marjor์™€ minor level์˜ ์—…๋ฐ์ดํŠธ ํ—ˆ์šฉ >=1.0.0 <2.0.0

  • 1.2.x

    patch level์˜ ์—…๋ฐ์ดํŠธ ํ—ˆ์šฉ >=1.2.0 <1.3.0

Tilde Ranges ~1.2.3 ~1.2 ~1

minor version์ด ์ง€์ •๋˜์–ด ์žˆ๋‹ค๋ฉด patch level ๋ณ€๊ฒฝ์„ ํ—ˆ์šฉํ•œ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ minor-level ๋ณ€๊ฒฝ์„ ํ—ˆ์šฉํ•œ๋‹ค.

  • ~1.2.3 minor version์ด ์ง€์ •๋˜์–ด ์žˆ์œผ๋‹ˆ patch level ๋ณ€๊ฒฝ ํ—ˆ์šฉ >=1.2.0 =1.2.0 <1.3.9

  • ~1.2 minor version์ด ์ง€์ •๋˜์–ด ์žˆ์œผ๋‹ˆ patch level ๋ณ€๊ฒฝ ํ—ˆ์šฉ (1.2.x์™€ ๊ฐ™๋‹ค) >=1.2.0 =1.2.0 <1.3.0

  • ~1 minor version์ด ์ง€์ •๋˜์–ด ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— minor-level ๋ณ€๊ฒฝ์„ ํ—ˆ์šฉ >=1.0.0 <(1+1).0.0 >=1.0.0 <2.0.0

  • ~3.10.0-alpha.1

    minor version์ด ์ง€์ •๋˜์–ด ์žˆ์œผ๋‹ˆ patch level ๋ณ€๊ฒฝ ํ—ˆ์šฉ 3.10.0 ์ด ์ผ์น˜ํ•˜๋Š” prerelease tag๋„ ํ•จ๊ป˜ ํฌํ•จ๋œ๋‹ค.

    >=3.10.0-alpha.1 <3.(10+1).0

    >=3.10.0-alpha.1 <3.11.0 3.10.0-alpha.2๋Š” ํฌํ•จ์ด ๋˜์ง€๋งŒ, 3.11.0-alpha.2๋Š” ํฌํ•จ๋˜์ง€ ์•Š๋Š”๋‹ค.

Caret Ranges ^1.2.3 ^0.2.5 ^0.0.4

[major, minor, patch]์—์„œ ๊ฐ€์žฅ ์™ผ์ชฝ์— ์žˆ๋Š” 0์ด ์•„๋‹Œ ์š”์†Œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ ํ—ˆ์šฉ 1.0.0 ๋ฒ„์ „์ด๋ผ๋ฉด minor์™€ patch ๋ฒ„์ „์„ ์—…๋ฐ์ดํŠธ๋ฅผ ํ—ˆ์šฉ 0.X ๋ฒ„์ „์ด๋ผ๋ฉด patch ์—…๋ฐ์ดํŠธ ํ—ˆ์šฉ 0.X.X ๋ฒ„์ „์ด๋ผ๋ฉด ์—…๋ฐ์ดํŠธ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

์˜คํ”ˆ์†Œ์Šค๋ฅผ ๋งŒ๋“  ๋งŽ์€ ์ €์ž๋“ค์€ 0.x version์˜ x๋ฅผ ํ˜ธํ™˜์„ฑ์ด ์†์ƒ๋˜๋Š” ๋ณ€๊ฒฝ(breaking-change) ์ง€ํ‘œ๋กœ ์—ฌ๊ธด๋‹ค.(?) -> ์ด ๋ง์—์„œ ์ƒ๊ฐ์ด ๋งŽ์•˜๋Š”๋ฐ 1.0.0 ๋ฐฐํฌ๋ฅผ ํ•˜์ง€ ์•Š์•˜์„ ๋•Œ๋ฅผ ๋งํ•˜๋Š”๊ฑฐ์˜€๋‹ค. ์œ„์˜ Semantic Versioning Specification๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด 0(0.y.z)์€ ์ดˆ๊ธฐ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด์„œ ์“ด๋‹ค. ์•„๋ฌด ๋•Œ๋‚˜ ๋งˆ์Œ๋Œ€๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. ๋ผ๊ณ  ์“ฐ์—ฌ์žˆ๋‹ค.

Caret ranges๋Š” ์ €์ž๋“ค์€ 0.2.4 ์—์„œ 0.3.0 ๋ฆด๋ฆฌ์ฆˆ ๋ฒ„์ „ ์‚ฌ์ด๋ฅผ ํ˜ธํ™˜์„ฑ์ด ์†์ƒ๋˜๋Š” ๋ณ€๊ฒฝ์ผ ๋•Œ ์ด์ƒ์ ์ด๋‹ค.(?) ๋‹จ 0.24์™€ 0.25๋Š” ํ˜ธํ™˜์„ฑ์„ ์†์ƒ๋˜๋Š” ๋ณ€๊ฒฝ์ด ์•„๋‹Œ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.(?)

Many authors treat a 0.x version as if the x were the major "breaking-change" indicator.

Caret ranges are ideal when an author may make breaking changes between 0.2.4 and 0.3.0 releases, which is a common practice. However, it presumes that there will not be breaking changes between 0.2.4 and 0.2.5. It allows for changes that are presumed to be additive (but non-breaking), according to commonly observed practices.

breaking-change.. ๐Ÿ™„..

  • ^1.2.3

    ์™ผ์ชฝ์—์„œ ๋งจ ์ฒ˜์Œ 0์ด ์•„๋‹Œ ์š”์†Œ๋Š” major ์ด๊ธฐ ๋•Œ๋ฌธ์— minor, patch ์—…๋ฐ์ดํŠธ๋ฅผ ํ—ˆ์šฉ

    >=1.2.3 < 2.0.0

  • ^0.2.3

    ์™ผ์ชฝ์—์„œ ๋งจ ์ฒ˜์Œ 0์ด ์•„๋‹Œ ์š”์†Œ๊ฐ€ minor ์ด๊ธฐ ๋•Œ๋ฌธ์— patch ์—…๋ฐ์ดํŠธ๋ฅผ ํ—ˆ์šฉ

    >=0.2.3 <0.3.0

  • ^0.0.3

    ์™ผ์ชฝ์—์„œ ๋งจ ์ฒ˜์Œ 0์ด ์•„๋‹Œ ์š”์†Œ๊ฐ€ patch์ด๊ธฐ ๋•Œ๋ฌธ์— ์—…๋ฐ์ดํŠธ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ

  • ^1.2.3-beta.2

    ์™ผ์ชฝ์—์„œ ๋งจ ์ฒ˜์Œ 0์ด ์•„๋‹Œ ์š”์†Œ๊ฐ€ major ์ด๊ธฐ ๋•Œ๋ฌธ์— minor, patch ์—…๋ฐ์ดํŠธ๋ฅผ ํ—ˆ์šฉํ•˜๊ณ 

    1.2.3 version ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ prerelease tag๋„ ํ•จ๊ป˜ ํฌํ•จ๋œ๋‹ค.

    >=1.2.3-beta.2 <2.0.0

  • ^0.0.3-beta

    0.0.3์˜ prerelease๋งŒ ํ—ˆ์šฉ๋œ๋‹ค. 0.0.3-pr.2๋Š” ํ—ˆ์šฉ์ด ๋œ๋‹ค.

patch ๊ฐ’์ด ๋ˆ„๋ฝ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ

0์œผ๋กœ ํ‘œ๊ธฐํ•˜์ง€๋งŒ, major์™€ minor version ๋‘˜ ๋‹ค 0์ธ ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฐ’ ๋‚ด์—์„œ ์œ ์—ฐ์„ฑ์ด ํ—ˆ์šฉ๋œ๋‹ค.

  • ^1.2.x

    0์ด ์•„๋‹Œ ๋งจ ์ฒ˜์Œ ์š”์†Œ๊ฐ€ major์ด๊ณ  0์œผ๋กœ ์ฑ„์›Œ์ง„๋‹ค.

    >=1.2.0 <2.0.0

  • ^0.0.x

    major์™€ minor ๋‘˜ ๋‹ค 0 ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น๊ฐ’ ๋‚ด์—์„œ ์œ ์—ฐ์„ฑ ํ—ˆ์šฉ

    >=0.0.0 <0.1.0

  • ^0.0

    major์™€ minor ๋‘˜ ๋‹ค 0 ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น๊ฐ’ ๋‚ด์—์„œ ์œ ์—ฐ์„ฑ ํ—ˆ์šฉ

    >=0.0.0 <0.1.0

minor๊ณผ patch ๊ฐ’ ๋ชจ๋‘ ๋ˆ„๋ฝ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ

0์œผ๋กœ ํ‘œ๊ธฐํ•˜์ง€๋งŒ major๋„ 0์ธ ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฐ’ ๋‚ด์—์„œ ์œ ์—ฐ์„ฑ์ด ํ—ˆ์šฉ๋œ๋‹ค.

  • ^1.x

    0์ด ์•„๋‹Œ ๋งจ ์ฒ˜์Œ ์š”์†Œ๊ฐ€ major์ด๊ณ  minor๊ณผ patch๋ฅผ 0์œผ๋กœ ํ‘œ๊ธฐ

    >=1.0.0 <2.0.0

  • ^0.x 0.0.0์ด ๋˜์–ด ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜์ง€ ๋ง์ž๋Š” ๋œป์ด ๋˜์–ด์•ผ ํ•˜๋Š”๋ฐ major๋„ 0์ธ ๊ฒฝ์šฐ๋Š” minor์™€ patch๊ฐ’ ๋‚ด์—์„œ ์œ ์—ฐ์„ฑ์ด ํ—ˆ์šฉ๋œ๋‹ค. >=0.0.0 <1.0.0

๊ฒฐ๋ก 

์ด์ œ pakage.json์˜ ํŒŒ์ผ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

"devDependencies": {
  "@lunit/cornerstone-declarations": "^0.4.0",
  "react-test-renderer": "^16.13.0",
  "react-zeroconfig": "^3.27.2-alpha.2"
}

ํ•˜๋‚˜์”ฉ ํ†บ์•„๋ณด๋ฉด

"@lunit/cornerstone-declarations": "^0.4.0",

^(Caret Ranges) ๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ณ  0์ด ์•„๋‹Œ ์ฒซ๋ฒˆ์งธ version์€ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— patch๋งŒ ๋ณ€๊ฒฝ๋œ๋‹ค. ๋˜ํ•œ ์•„์ง 1.0.0์ด ๋ฆด๋ฆฌ์ฆˆ ๋œ๊ฒŒ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— 0.4์™€ 0.5๊ฐ€ ํ˜ธํ™˜์„ฑ์ด ์†์ƒ๋˜๋Š” ๋ณ€๊ฒฝ(breaking-change) ์ผ ์ˆ˜ ์žˆ๋‹ค. 0(0.y.z)์€ ์ดˆ๊ธฐ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด์„œ ์“ด๋‹ค. ์•„๋ฌด ๋•Œ๋‚˜ ๋งˆ์Œ๋Œ€๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ ์ˆ˜๋„ ์žˆ๋‹ค. ๋Š”๊ฒƒ์„ ๋ช…์‹ฌํ•˜์Ÿˆ

"react-test-renderer": "^16.13.0",

0์ด ์•„๋‹Œ ์ฒซ๋ฒˆ์งธ ์ž๋ฆฌ๊ฐ€ major ์ด๊ธฐ ๋•Œ๋ฌธ์— >=16.13.0 <17.0.0 ๊นŒ์ง€ ์—…๋ฐ์ดํŠธ ๋  ์ˆ˜ ์žˆ๋‹ค.

"react-zeroconfig": "^3.27.2-alpha.2"

0์ด ์•„๋‹Œ ์ฒซ๋ฒˆ์งธ ์ž๋ฆฌ๊ฐ€ major ์ด๊ธฐ ๋•Œ๋ฌธ์— major๋Š” ์—…๋ฐ์ดํŠธ ํ•˜์ง€ ์•Š๋Š”๋‹ค. prerelease tag๊ฐ€ ๋ถ™์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— [3.27.2] ๋ฒ„์ „์€ prerelease version๋„ ํ•จ๊ป˜ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค. (3.27.2-alpha.3์€ ์—…๋ฐ์ดํŠธ์— ํฌํ•จ๋˜์ง€๋งŒ 3.27.3-alpha.2์€ ์—…๋ฐ์ดํŠธ์— ํฌํ•จ๋  ์ˆ˜ ์—†๋‹ค.)

>=3.27.2-alpha.2 <4.0.0

TIP

์ฐธ๊ณ 

๋ช…์„ธ์— ๊ด€ํ•ด์„œ๋Š” ํŽ˜์ด์ง€์—์„œ ํ™•์ธํ•˜๊ณ  ์—ฌ๊ธฐ์„  ๊ฐ„๋žตํ•˜๊ฒŒ๋งŒ ์ •๋ฆฌ / ์˜์–ด๋กœ ๋ณด๋ฉด ๊ฐ•์กฐํ‘œ์‹œ๊ฐ€ ๋” ์ž˜๋ณด์ธ๋‹ค.

^ ์™€ -alpha.2 ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, Node์—์„œ๋Š” ํŠนํžˆ ์ด๊ฐ™์€ Version Range๋ฅผ ๊ถŒ์žฅํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ์—„๊ฒฉํ•œ ์ œ์•ฝ์กฐ๊ฑด์€ ์˜ค์ง ํ•œ ๋ฒ„์ „๊ณผ ๋งค์นญํ•˜์—ฌ ํŠน์ • patch release์— ์˜์กดํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ„๊ทธ๊ฐ€ ์ˆ˜์ •๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. () ๋ง‰๋ฒˆ์—ญ..

()

์ฝ์–ด๋„ ํ—ท๊ฐˆ๋ฆด ๋•Œ๋Š” npm semver calculator ์ถ”์ฒœํ•œ๋‹ค. ํ•œ ๋ˆˆ์— ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ prerelease version์ด ์žˆ๋Š” react-zeroconfig๋กœ ํ™•์ธํ•˜๋Š”๊ฑธ ์ถ”์ฒœ

/

https://semver.org/lang/ko/
https://semver.org/
https://jubianchi.github.io/semver-check/#/
https://github.com/npm/node-semver#caret-ranges-123-025-004
https://semver.npmjs.com/
https://github.com/semver/semver/blob/master/semver.md
https://semver.org/
https://github.com/npm/node-semver#versions
https://blog.outsider.ne.kr/1041
Semver
page