Underscore: ๋ฐ‘์ค„์€ SemVer๋ฅผ ๋”ฐ๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2014๋…„ 06์›” 14์ผ  ยท  32์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: jashkenas/underscore

Underscore๊ฐ€ Semantic Versioning ์„ ๋”ฐ๋ž๋‹ค๋ฉด ๋งค์šฐ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฃผ์š” ๋ฒ„์ „ ์ถฉ๋Œ ์—†์ด _break_ bindAll ๋ฐ _removing_ unzip ์™€ ๊ฐ™์€ ์ผ์ด ๋ฐœ์ƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์†Œ๋น„์ž๋Š” ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ์ฝ”๋“œ ์†์ƒ์— ๋Œ€ํ•œ ๋‘๋ ค์›€ ์—†์ด ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

duplicate

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

Lo-Dash๋Š” ๋Œ€๋ถ€๋ถ„ Underscore๊ฐ€ ํฌ์žฅํ•œ ์ข์€ ๊ธธ์„ ๊ณ ์ˆ˜ํ•˜๋ฏ€๋กœ Underscore ๋ฆด๋ฆฌ์Šค๊นŒ์ง€ ๋ณด๋ฅ˜ํ•˜์—ฌ ๊ธฐ๋Šฅ ํŒจ๋ฆฌํ‹ฐ๋ฅผ ์œ„ํ•œ ๋ฒ„์ „ ๋ฒ”ํ”„๋ฅผ ํ‘ธ์‹œํ•˜๋Š” ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ‘์ค„๊ณผ์˜ ์ฐจ์ด์ ์€ ํ–ฅ์ƒ ๋ฒ”์ฃผ์—์„œ ๋” ๋งŽ๊ณ  ์ค‘์š”ํ•œ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ์€ ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Underscore์˜ ๋ฒ„์ „ ์ „๋žต๊ณผ ์–ด๋–ค ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๊นŒ? Lo-Dash๋Š” semver ์ดํ›„ ๋ฒ„์ „์„ ์ถฉ๋Œ์‹œํ‚ค๋ฏ€๋กœ v2.x์—์„œ v3.x๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

Lo-Dash๋Š” ์ฝ”๋“œ ํ˜ผ๋ž€์„ ํฌ์ƒ์‹œํ‚ค๋ฉด์„œ bc์— ๋Œ€ํ•ด ํ›จ์”ฌ ๋” ๋งŽ์€ ๋ณดํ˜ธ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ˜๋ฉด Underscore๋Š” ๊ฐ„๊ฒฐํ•จ์„ ์œ„ํ•ด ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€๋“œ ์ฝ”๋“œ๋‚˜ ๊ฐ„๊ฒฐํ•จ์ด ๋ฒ„์ „ ์ „๋žต๊ณผ ์–ด๋–ค ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋” ํด ๋•Œ ๋ช‡ ์ค„์˜ ์ถ”๊ฐ€ ์ฝ”๋“œ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค(Lo-Dash๋Š” 8.7k ๋ผ์ธ์—์„œ ์‹œ์ž‘ํ•˜๊ณ  Underscore์—์„œ๋Š” 1.4k ๋ผ์ธ์—์„œ ํด๋Ÿญ).

Lo-Dash์—๋Š” ์ธ๋ผ์ธ ๋ฌธ์„œ๊ฐ€ ์žˆ์œผ๋ฉฐ LOC๋Š” ๋ฒ„์ „ ๊ด€๋ฆฌ์™€ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

๋กœ์ง์˜ ๋งŽ์€ ๋ถ€๋ถ„์ด ๋‚ด๋ถ€์ ์ด๊ธฐ ๋•Œ๋ฌธ์— Lo-Dash์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋‚ด๋ถ€ mucking์ด ํ›จ์”ฌ ๋” ๋งŽ์Šต๋‹ˆ๋‹ค.

Underscore๋„ ๋งˆ์ฐฌ๊ฐ€์ง€ ์•„๋‹๊นŒ์š”?

๋˜ํ•œ ํ•œ ๊ธฐ์—ฌ์ž(๊ท€ํ•˜)๊ฐ€ ๋ถˆ๊ท ํ˜•์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ๋ฐ˜๋ฉด Underscore์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ํ›จ์”ฌ ๋” ๋‹ค์–‘ํ•œ ๊ธฐ์—ฌ์ž ์ง‘ํ•ฉ์—์„œ ์˜ค๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ถœ์‹œ ์ผ์ •.

์ด๊ฒƒ์ด Underscore์— ์œ ์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์ˆ˜๋ฝ/๊ฑฐ๋ถ€ ๋˜๋Š” ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค๊นŒ์ง€ ๋ฏธ๋ฃจ๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.
๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ ๋ฒ„์ „ ๊ด€๋ฆฌ์™€ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

์ผํ™”์ ์œผ๋กœ ์ €๋Š” Underscore๊ฐ€ Lo-Dash๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์€ ์ดˆ๋ณด์ž ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค๋Š” ๋Š๋‚Œ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Lo-Dash์—๋Š” ์ˆ˜์ฒœ ๋ช…์˜ ๋ถ€์–‘ ๊ฐ€์กฑ์ด ์žˆ์œผ๋ฉฐ ๋ชจ๋‘ ์ „๋ฌธ๊ฐ€๊ฐ€ ๋  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๊ณ ๊ธ‰ ๊ฐœ๋ฐœ์ž๋Š” ๋ธŒ๋ ˆ์ดํ‚น ์ฒด์ธ์ง€์—์„œ ์˜ค๋Š” ์—ฌํŒŒ์— ๋” ํŽธ์•ˆํ•˜๊ฒŒ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ทธ๋“ค์˜ ์ถ”๋ก ์„ ์กฐ๊ธˆ ๋” ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Lo-Dash๋Š” semver๋ฅผ ๋”ฐ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๋Š” ์ฃผ์š” ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ๋กœ ์ด๋™ํ•  ๋•Œ๊นŒ์ง€ ๋‚™์ง„์„ ์ฒ˜๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. Underscore์™€ ๋‹ฌ๋ฆฌ Lo-Dash๋Š” ํŒจํ‚ค์ง€ ๋ฒ„์ „ ๋ฒ”์œ„์— ~ ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ ์•„๋ž˜์—์„œ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, Exoskeleton์˜ ๊ณต๋™ ์ €์ž์ด์ž ์ˆ˜์„ ๊ธฐ๊ณ ์ž๋กœ์„œ ์ €๋Š” ์šฐ๋ฆฌ๋„ semver๋ฅผ ํŒ”๋กœ์šฐํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ฐ€์žฅ ๋จผ์ € ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋งˆ์ผ€ํŒ…์—์„œ ์ด๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Underscore๊ฐ€ semver๋ฅผ ๋ชป ๋”ฐ๋ผ๊ฐˆ ์ด์œ ๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฅผ ๋”ฐ๋ฅด์ง€ ์•Š๋Š” ๊ฒƒ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‹ค๋ก€์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  32 ๋Œ“๊ธ€

์ธ์šฉ https://github.com/jashkenas/backbone/issues/2888#issuecomment -29076249:

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ "์˜๋ฏธ๋ก ์ " ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ์—„๊ฒฉํ•˜๊ฒŒ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์€ Backbone์—์„œ ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ฑฐ์˜ ๋ชจ๋“  ํ‘œ๋ฉด์ ์ด๋ฉฐ ๋‚ด๋ถ€๊ฐ€ ๊ฑฐ์˜ ์—†๋‹ค๋Š” ์ ์„ ๊ฐ์•ˆํ•  ๋•Œ Backbone์— ๋Œ€ํ•œ ๊ฑฐ์˜ ๋ชจ๋“  ๋ณ€๊ฒฝ(ํŒจ์น˜, ํ’€ ์š”์ฒญ)์€ ์ด์ „์— ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘์— ์˜์กดํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋งŒ ํ•ด๋‹นํ•˜๋”๋ผ๋„ ์•ฝ๊ฐ„์˜ ๋ฐฉ์‹์œผ๋กœ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ๊นจ๋œจ๋ฆฝ๋‹ˆ๋‹ค.

๋™์˜ํ•˜์ง€ ์•Š๋”๋ผ๋„ ๋‚˜๋จธ์ง€ ์˜๊ฒฌ๋„ ์ฝ์„ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

@akre54 Lo-Dash(Underscore ๋Œ€์•ˆ) ๋ฐ ExosJS(Backbone ๋Œ€์•ˆ)์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๊ฐ€ semver๋ฅผ ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

๊ทธ ๋“œ๋กญ์ธ ๊ต์ฒด๊ฐ€ _semver๋ฅผ ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—_ Underscore/Backbone ์ฝ”์–ด๊ฐ€ ๋ฐ€์–ด๋ถ™์ด๋Š” ๋ณ€๋ช…์— ๊ทธ๋Ÿฐ ์ข…๋ฅ˜์˜ ๋ Œ์น˜๋ฅผ ๋˜์ง€์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

๋ช‡ ๊ฐ€์ง€.

Lo-Dash๋Š” ๋Œ€๋ถ€๋ถ„ Underscore๊ฐ€ ํฌ์žฅํ•œ ์ข์€ ๊ธธ์„ ๊ณ ์ˆ˜ํ•˜๋ฏ€๋กœ Underscore ๋ฆด๋ฆฌ์Šค๊นŒ์ง€ ๋ณด๋ฅ˜ํ•˜์—ฌ ๊ธฐ๋Šฅ ํŒจ๋ฆฌํ‹ฐ๋ฅผ ์œ„ํ•œ ๋ฒ„์ „ ๋ฒ”ํ”„๋ฅผ ํ‘ธ์‹œํ•˜๋Š” ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ‘์ค„๊ณผ์˜ ์ฐจ์ด์ ์€ ํ–ฅ์ƒ ๋ฒ”์ฃผ์—์„œ ๋” ๋งŽ๊ณ  ์ค‘์š”ํ•œ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ์€ ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Lo-Dash๋Š” ์ฝ”๋“œ ํ˜ผ๋ž€์„ ํฌ์ƒ์‹œํ‚ค๋ฉด์„œ bc์— ๋Œ€ํ•ด ํ›จ์”ฌ ๋” ๋งŽ์€ ๋ณดํ˜ธ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ˜๋ฉด Underscore๋Š” ๊ฐ„๊ฒฐํ•จ์„ ์œ„ํ•ด ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋” ํด ๋•Œ ๋ช‡ ์ค„์˜ ์ถ”๊ฐ€ ์ฝ”๋“œ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋…ผ๋ฆฌ์˜ ๋งŽ์€ ๋ถ€๋ถ„์ด ๋‚ด๋ถ€์— ์žˆ์œผ๋ฏ€๋กœ ๋Œ€์‹œํ•˜์„ธ์š”.

๋˜ํ•œ ํ•œ ๊ธฐ์—ฌ์ž (๊ท€ํ•˜)๊ฐ€ ๋ถˆ๊ท ํ˜•์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ๋ฐ˜๋ฉด Underscore์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ํ›จ์”ฌ ๋” ๋‹ค์–‘ํ•œ ๊ธฐ์—ฌ์ž ์ง‘ํ•ฉ์—์„œ ์˜ค๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ถœ์‹œ ์ผ์ •.

์ผํ™”์ ์œผ๋กœ, ์ €๋Š” Underscore๊ฐ€ Lo-Dash๋ณด๋‹ค ๋” ๋งŽ์€ ์ดˆ๋ณด์ž ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค๋Š” ๋ฆด๋ฆฌ์Šค ์ผ์ •์˜ ๋‹จ์ ์ด ์žˆ๋‹ค๋Š” ๋Š๋‚Œ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๊ณ ๊ธ‰ ๊ฐœ๋ฐœ์ž๋Š” ๋ธŒ๋ ˆ์ดํ‚น ์ฒด์ธ์ง€์—์„œ ์˜ค๋Š” ์—ฌํŒŒ์— ๋” ํŽธ์•ˆํ•˜๊ฒŒ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ทธ๋“ค์˜ ์ถ”๋ก ์„ ์กฐ๊ธˆ ๋” ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, Exoskeleton์˜ ๊ณต๋™ ์ €์ž์ด์ž ์ˆ˜์„ ๊ธฐ๊ณ ์ž๋กœ์„œ ์ €๋Š” ์šฐ๋ฆฌ๋„ semver๋ฅผ ํŒ”๋กœ์šฐํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ฐ€์žฅ ๋จผ์ € ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ์œ„์—์„œ ์„ค๋ช…ํ•œ Lo-Dash์˜ ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Lo-Dash๋Š” ๋Œ€๋ถ€๋ถ„ Underscore๊ฐ€ ํฌ์žฅํ•œ ์ข์€ ๊ธธ์„ ๊ณ ์ˆ˜ํ•˜๋ฏ€๋กœ Underscore ๋ฆด๋ฆฌ์Šค๊นŒ์ง€ ๋ณด๋ฅ˜ํ•˜์—ฌ ๊ธฐ๋Šฅ ํŒจ๋ฆฌํ‹ฐ๋ฅผ ์œ„ํ•œ ๋ฒ„์ „ ๋ฒ”ํ”„๋ฅผ ํ‘ธ์‹œํ•˜๋Š” ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ‘์ค„๊ณผ์˜ ์ฐจ์ด์ ์€ ํ–ฅ์ƒ ๋ฒ”์ฃผ์—์„œ ๋” ๋งŽ๊ณ  ์ค‘์š”ํ•œ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ์€ ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Underscore์˜ ๋ฒ„์ „ ์ „๋žต๊ณผ ์–ด๋–ค ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๊นŒ? Lo-Dash๋Š” semver ์ดํ›„ ๋ฒ„์ „์„ ์ถฉ๋Œ์‹œํ‚ค๋ฏ€๋กœ v2.x์—์„œ v3.x๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

Lo-Dash๋Š” ์ฝ”๋“œ ํ˜ผ๋ž€์„ ํฌ์ƒ์‹œํ‚ค๋ฉด์„œ bc์— ๋Œ€ํ•ด ํ›จ์”ฌ ๋” ๋งŽ์€ ๋ณดํ˜ธ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ˜๋ฉด Underscore๋Š” ๊ฐ„๊ฒฐํ•จ์„ ์œ„ํ•ด ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€๋“œ ์ฝ”๋“œ๋‚˜ ๊ฐ„๊ฒฐํ•จ์ด ๋ฒ„์ „ ์ „๋žต๊ณผ ์–ด๋–ค ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋” ํด ๋•Œ ๋ช‡ ์ค„์˜ ์ถ”๊ฐ€ ์ฝ”๋“œ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค(Lo-Dash๋Š” 8.7k ๋ผ์ธ์—์„œ ์‹œ์ž‘ํ•˜๊ณ  Underscore์—์„œ๋Š” 1.4k ๋ผ์ธ์—์„œ ํด๋Ÿญ).

Lo-Dash์—๋Š” ์ธ๋ผ์ธ ๋ฌธ์„œ๊ฐ€ ์žˆ์œผ๋ฉฐ LOC๋Š” ๋ฒ„์ „ ๊ด€๋ฆฌ์™€ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

๋กœ์ง์˜ ๋งŽ์€ ๋ถ€๋ถ„์ด ๋‚ด๋ถ€์ ์ด๊ธฐ ๋•Œ๋ฌธ์— Lo-Dash์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋‚ด๋ถ€ mucking์ด ํ›จ์”ฌ ๋” ๋งŽ์Šต๋‹ˆ๋‹ค.

Underscore๋„ ๋งˆ์ฐฌ๊ฐ€์ง€ ์•„๋‹๊นŒ์š”?

๋˜ํ•œ ํ•œ ๊ธฐ์—ฌ์ž(๊ท€ํ•˜)๊ฐ€ ๋ถˆ๊ท ํ˜•์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ๋ฐ˜๋ฉด Underscore์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ํ›จ์”ฌ ๋” ๋‹ค์–‘ํ•œ ๊ธฐ์—ฌ์ž ์ง‘ํ•ฉ์—์„œ ์˜ค๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ถœ์‹œ ์ผ์ •.

์ด๊ฒƒ์ด Underscore์— ์œ ์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์ˆ˜๋ฝ/๊ฑฐ๋ถ€ ๋˜๋Š” ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค๊นŒ์ง€ ๋ฏธ๋ฃจ๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.
๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ ๋ฒ„์ „ ๊ด€๋ฆฌ์™€ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

์ผํ™”์ ์œผ๋กœ ์ €๋Š” Underscore๊ฐ€ Lo-Dash๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์€ ์ดˆ๋ณด์ž ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค๋Š” ๋Š๋‚Œ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Lo-Dash์—๋Š” ์ˆ˜์ฒœ ๋ช…์˜ ๋ถ€์–‘ ๊ฐ€์กฑ์ด ์žˆ์œผ๋ฉฐ ๋ชจ๋‘ ์ „๋ฌธ๊ฐ€๊ฐ€ ๋  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๊ณ ๊ธ‰ ๊ฐœ๋ฐœ์ž๋Š” ๋ธŒ๋ ˆ์ดํ‚น ์ฒด์ธ์ง€์—์„œ ์˜ค๋Š” ์—ฌํŒŒ์— ๋” ํŽธ์•ˆํ•˜๊ฒŒ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ทธ๋“ค์˜ ์ถ”๋ก ์„ ์กฐ๊ธˆ ๋” ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Lo-Dash๋Š” semver๋ฅผ ๋”ฐ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๋Š” ์ฃผ์š” ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ๋กœ ์ด๋™ํ•  ๋•Œ๊นŒ์ง€ ๋‚™์ง„์„ ์ฒ˜๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. Underscore์™€ ๋‹ฌ๋ฆฌ Lo-Dash๋Š” ํŒจํ‚ค์ง€ ๋ฒ„์ „ ๋ฒ”์œ„์— ~ ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ ์•„๋ž˜์—์„œ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, Exoskeleton์˜ ๊ณต๋™ ์ €์ž์ด์ž ์ˆ˜์„ ๊ธฐ๊ณ ์ž๋กœ์„œ ์ €๋Š” ์šฐ๋ฆฌ๋„ semver๋ฅผ ํŒ”๋กœ์šฐํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ฐ€์žฅ ๋จผ์ € ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋งˆ์ผ€ํŒ…์—์„œ ์ด๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Underscore๊ฐ€ semver๋ฅผ ๋ชป ๋”ฐ๋ผ๊ฐˆ ์ด์œ ๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฅผ ๋”ฐ๋ฅด์ง€ ์•Š๋Š” ๊ฒƒ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‹ค๋ก€์ž…๋‹ˆ๋‹ค.

npm์ด๋‚˜ bower์— ํฌํ•จ๋˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๋ฉด ํ† ๋ก ์˜ ๋Œ€์ƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. semver๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์€ semver๋ฅผ ๋”ฐ๋ฅด๊ฒ ๋‹ค๋Š” ์•”๋ฌต์ ์ธ ์•ฝ์†์„ ํ•˜๊ณ  ์žˆ๊ณ , ๊ทธ๋ ‡๊ฒŒ ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฒฝ๊ณ  ์—†์ด ์‚ฌ๋žŒ๋“ค์˜ ์ฝ”๋“œ๋ฅผ ๊นจ๋œจ๋ฆฌ๊ณ  ๊ฑฐ์˜ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋ˆˆ์‚ด์„ ์ฐŒํ‘ธ๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ƒ์‚ฐ ์ฝ”๋“œ๋ฅผ ๊นจ๋Š” ์„ ํƒ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚จ์˜ ์‹œ๊ฐ„๊ณผ ๋ˆ์„ ๊ฐ€์ง€๊ณ  ์กฐ์žกํ•œ ๊ฒŒ์ž„์„ ํ•˜๋Š” ๊ฒƒ์€ ์ฟจํ•˜์ง€ ๋ชปํ•˜๋‹ค.

์ฆ‰, ๋ฒ„์ „ ๋ฒˆํ˜ธ๊ฐ€ ๋” ๋นจ๋ฆฌ ์ปค์ง‘๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฌด์—‡? ๊ทธ๊ฒƒ์€ ์ˆซ์ž์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ˆ„๊ตฐ๊ฐ€์˜ ์ƒ์‚ฐ ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ๊นจ๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋‚ซ์Šต๋‹ˆ๋‹ค.

์…ˆ๋ฒ„์˜ ๊ฒฝ์šฐ +1

๊ฐœ์ธ์ ์œผ๋กœ, ๋‚˜๋Š” ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ์—์„œ _personal_์„ ์–ป๋Š” ๊ฒƒ์ด "๋ฉ‹์ง€๋‹ค"๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜๋ฏธ๋ก ์  ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ๋”ฐ๋ฅด๊ฑฐ๋‚˜ ๋”ฐ๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์พ…, ์พ…, ์พ… -- ๊ทธ๋ ‡๊ฒŒ ๋œ๋‹ค๋ฉด ๋” ๋‚˜์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์พ…, ์พ…--์œ ์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ semver์™€ ์ผ์น˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค.

๊ทธ ํ›„๋Š” ์œ ์ง€ ๋ณด์ˆ˜์˜ ๋ชซ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์˜ ์ž…์žฅ์— ๋™์˜ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์‚ฌ์šฉํ•  ๋Œ€์ฒด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ํฌํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ). ์›ํ•˜๋Š” ๋Œ€๋กœ ๊ฐœ์ธ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์‹œ๋ฏผ์  ์˜๊ฒฌ ๋ถˆ์ผ์น˜๋ฅผ ์‹œ๋„ํ•ฉ์‹œ๋‹ค.

@raganwald๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ฐ€ ์‚ฌ์ ์ธ๊ฐ€?

๋‚˜๋Š” ๋ˆ„๊ตฌ๋ฅผ ๊ณต๊ฒฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. semver๋Š” npm์ด๋‚˜ bower์— ํŒจํ‚ค์ง€๋ฅผ ๊ฒŒ์‹œํ•  ๋•Œ ์ฒด๊ฒฐํ•˜๋Š” API ๊ณ„์•ฝ์˜ ์ผ๋ถ€๋ผ๋Š” ์ ์„ ์ง€์ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ๊ณ„์•ฝ์„ ์–ด๊ธฐ๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ๋„ ๊นจ์ง‘๋‹ˆ๋‹ค. ๋ฉ‹์ง€์ง€ ์•Š์•„.

npm์€ ์šฐ๋ฆฌ ๋ชจ๋“ˆ์ด ์„œ๋กœ ์ž˜ ์ž‘๋™ํ•˜๋„๋ก ์œ ์ง€ํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๊ทœ์น™์— ๋ชจ๋‘ ๋™์˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ง ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ทœ์น™์„ ์–ด๊ธฐ๋ฉด ๋‹น์‹ ๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋Š” ๋‹ค๋ฅธ ๋ชจ๋“ˆ๋„ ๊นจ์ง‘๋‹ˆ๋‹ค. ์ฝ”๋“œ์— ์˜์กดํ•˜๋Š” ํ”„๋กœ๋•์…˜ ์•ฑ์„ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค.

์งˆ๋ฌธ์€ "semver๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?"๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” "์šฐ๋ฆฌ๊ฐ€ ์ด ์ƒํƒœ๊ณ„์—์„œ ์ข‹์€ ์‹œ๋ฏผ์ด ๋˜๊ธฐ๋ฅผ ์›ํ•˜๋Š”๊ฐ€?"์ž…๋‹ˆ๋‹ค.

์š”์ ์€ Underscore์™€ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ์—์„œ _๋ชจ๋“ _ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. _.extend ์—์„œ null ๊ฐ€๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด(์ž„์˜์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ) ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋ฒ„๊ทธ๋ฅผ ์ผ์œผํ‚ค๊ณ  ๋‹ค๋ฅธ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ๋Š” ๋ฒ„๊ทธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŒจ์น˜์ธ๊ฐ€์š”? ๋งˆ์ด๋„ˆ ๋ฒ„์ „์ธ๊ฐ€์š”? ์ฃผ์š”ํ•œ?

Underscore ๋ฐ Backbone์˜ ๊ฒฝ์šฐ ์ข…์†์„ฑ์„ ๊ณ ์ •ํ•˜๋Š” ๊ฒƒ์ด ๋ถ€๋‹นํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ semver๋Š” ํŒจํ‚ค์ง€ ํ”„๋กœ๊ทธ๋žจ์— ๊ฒŒ์‹œํ•˜๊ธฐ ์œ„ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์•„๋‹™๋‹ˆ๋‹ค.

์š”์ ์€ Underscore์™€ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ์—์„œ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ๋‹น์‹ ์˜ ์ž…์žฅ์„ ์ •๋‹นํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ทน๋‹จ์œผ๋กœ ๋›ฐ์–ด์˜ค๋ฅด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์‹ค์€ ๊ท ํ˜•์ž…๋‹ˆ๋‹ค. ์ธ๊ธฐ ์žˆ๋Š” API, ์—ฃ์ง€ ์ผ€์ด์Šค ๋ฐ ๋ฌธ์„œํ™”๋œ ๋™์ž‘์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฉ”์ด์ € ๋ฒ„์ „๊ณผ ์ถฉ๋Œํ•˜์ง€ ์•Š๊ณ  ์‹œ๊ฐ„์„ ์—ฐ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋Š” ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ์ƒ๊ฐํ•˜๊ณ  ๊ณ„ํšํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ๊นจ๋œจ๋ฆฌ์ง€ ์•Š๊ณ ๋Š” ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๊ธฐ๋Šฅ์ด๋‚˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋กœ๋“œ๋งต์„ ๋งŒ๋“ค์–ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Underscore๋Š” ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค๋ฅผ ํ™•์žฅํ•˜๊ณ  ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ด€๋ฆฌ์ž๊ฐ€ ์™„์ „ํžˆ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Underscore ๋ฐ Backbone์˜ ๊ฒฝ์šฐ ์ข…์†์„ฑ์„ ๊ณ ์ •ํ•˜๋Š” ๊ฒƒ์ด ๋ถ€๋‹นํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฌธ์„œ์— ํ™•์‹คํžˆ ๋ฉ”์‹œ์ง€/๊ฒฝ๊ณ ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@akre54 _ ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์€_ ๊ธฐ๋Šฅ ๋˜๋Š” _๋ฌธ์„œํ™”๋˜์ง€ ์•Š์€ ๋ฒ„๊ทธ_๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์ด์— ์˜์กดํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์ค‘๋‹จ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์‚ฌ์šฉ์ž๋Š” ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์€ ๊ธฐ๋Šฅ๊ณผ ๋ฒ„๊ทธ์— ์˜์กดํ•˜์—ฌ ์œ„ํ—˜์„ ๊ฐ์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

semver๋ฅผ ๋ฌด์‹œํ•˜๋ฉด API์˜ _๋ชจ๋“  ์‚ฌ์šฉ์ž_๊ฐ€ ์œ„ํ—˜์— ์ฒ˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ ํ•ญ์ƒ semver๋ฅผ ๋”ฐ๋ฅด๋Š” ๋Œ€๊ทœ๋ชจ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์—์„œ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜์ง€๋งŒ _npm ์ƒํƒœ๊ณ„์—์„œ ํฐ ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ๋ณด๋Š” ๊ฒƒ์€ ์ •๋ง ๋“œ๋ญ…๋‹ˆ๋‹ค_.

์™œ ๊ทธ๋Ÿฐ ๊ฒ๋‹ˆ๊นŒ?

_๋ชจ๋“  ์ข‹์€ API๋Š” ๊ฐœ๋ฐฉ/ํ์‡„ ์›์น™_(ํ™•์žฅ์€ ๊ฐœ๋ฐฉ, ๋ณ€๊ฒฝ์€ ํ์‡„)์„ ์ตœ๋Œ€ํ•œ ๊ฐ€๊น๊ฒŒ ๋”ฐ๋ฅด๋ฏ€๋กœ ์‚ฌ์šฉ์ž๊ฐ€ API๋ฅผ ๋”ฐ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๊ณ  ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด ๊ธฐ์กด ์ฝ”๋“œ๊ฐ€ ์†์ƒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ผํ™”์— ์ถ”๊ฐ€ํ•˜์ž๋ฉด, ๋‚ด ์ฝ”๋“œ๋Š” ๊ณผ๊ฑฐ์— Underscore ๋ฒ”ํ”„๋กœ ์ธํ•ด ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. --save --save-exact ๊ฐ€ ์ž˜๋ฆฌ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด node_modules ์ปค๋ฐ‹์— ์˜์กดํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ˆ˜์ค€ ์ข…์†์„ฑ์ด Underscore์— ์˜์กดํ•˜๊ณ  ^x.y.z ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์•ฑ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์†์ƒ๋ฉ๋‹ˆ๋‹ค.

์ง„ํ–‰ ์ƒํ™ฉ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฒ„์ „ ๋ฒˆํ˜ธ๋Š” ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฒ„์ „ 2.1.3 ๋˜๋Š” 143.3.2๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋ณ„ ์ฐจ์ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ง„ํ–‰ ์ƒํ™ฉ๊ณผ ์™„์„ฑ๋„๋Š” ๋ฒ„์ „ ๋ฒˆํ˜ธ๋กœ ์ธก์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ underscore@^x.y.z ์— ์˜์กดํ•˜๋Š” ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ผ์š”์ผ ์˜คํ›„์— ์ „ํ™”๋ฅผ ๊ฑธ๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

:์—„์ง€์†๊ฐ€๋ฝ: ๋„ค. @braddunbar ๋Š” ๋‚ด๊ฐ€ ์•„์ง ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ์ ์„ ์ง€์ ํ•ฉ๋‹ˆ๋‹ค. semver๋ฅผ ๋ฌด์‹œํ•˜๋ฉด ํŒจํ‚ค์ง€๊ฐ€ ์œ„ํ—˜ํ•˜๊ณ  ์น˜๋ช…์ ์ธ ํŒจํ‚ค์ง€๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด _์–ด๋””์„œ๋“ _ ๋‚จ์•„ ์žˆ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ๊นจ์ง„ ํŒจํ‚ค์ง€์— ์˜์กดํ•˜๋Š” ํƒ€์‚ฌ ์ฝ”๋“œ์˜ ์ค‘๋‹จ์„ ์ถ”์ ํ•˜๋„๋ก ๊ฐ•์ œํ•˜๋Š” ๊ฒƒ์€ _ํ™•์‹คํžˆ ํž˜๋“  ์š”๊ตฌ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

IMO, ์‹ค์ œ ๋„์„œ๊ด€ ์ง„ํ–‰ ์ƒํ™ฉ ๋ฐ ์„ฑ์ˆ™๋„๋Š” ์‹ ๋ขฐ์„ฑ์œผ๋กœ ์ธก์ •๋˜๋ฉฐ semver๋Š” ๊ทธ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋จผ ๊ธธ์„ ๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์„œ์— ํ™•์‹คํžˆ ๋ฉ”์‹œ์ง€๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ถ„๋ช…ํžˆ. ๊ทธ๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ๊ฒฐ์ •ํ•œ๋‹ค๋ฉด ํ•˜๋‚˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค.

์ €๋Š” ๋” ๋‚˜์€ ๋ฆด๋ฆฌ์Šค ์‹œ์Šคํ…œ์— ๋ฐ˜๋Œ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ฃผ๋‹˜์€ ์ž‘์€ ๋ฒ„๊ทธ ์ˆ˜์ •์ด ๋ฐฐํฌ๋˜๊ธฐ๊นŒ์ง€ ๋ช‡ ๋‹ฌ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์ด ๊ณ ํ†ต์Šค๋Ÿฝ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค). ๊ทธ๋Ÿฌ๋‚˜ "semver๋ฅผ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค"๊ฐ€ ํ•˜๋‚˜์˜ ์ •๋‹ต์ธ์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ์€ ํ•˜๋‚˜์˜ ์ •๋‹ต์ด์–ด๋„ ์ƒ๊ด€์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ˆ˜๋ฝํ•œ ๋‹ต๋ณ€์ž…๋‹ˆ๋‹ค.

"semver๋ฅผ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค"๊ฐ€ ๋” ๋‚˜์€ ๋ฆด๋ฆฌ์Šค ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ •๋‹ต์ด๋ผ๊ณ  ์•„๋ฌด๋„ ๋งํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋งํ•œ ๊ฒƒ์€ npm API ๊ณ„์•ฝ์ด๋ฉฐ ํ•ด๋‹น ๊ณ„์•ฝ์„ ์œ„๋ฐ˜ํ•˜๋ฉด ์†์ƒ์„ ์ž…ํž ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@jdalton ๋ฐ @dilvie ๋ฆด๋ฆฌ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๊ธฐ๋Šฅ์„ ์ˆ˜๋ฝํ•˜๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? "Use semver"๋Š” ์‹ค์ œ๋กœ ์šฐ๋ฆฌ์—๊ฒŒ ์•„๋ฌด ๊ฒƒ๋„ ์•Œ๋ ค์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋ฒ„๊ทธ ์ˆ˜์ •์„ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์žˆ๋„๋ก _.matches ์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๋ช‡ ๊ฐœ์›” ๋’ค๋กœ ๋ฏธ๋ฃจ์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ์ง€๊ธˆ ์ถœ์‹œํ•˜์—ฌ ์‚ฌ๋žŒ๋“ค์ด ๊ตฌํ˜„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋‚˜๋Š” semver๊ฐ€ ์—ฌ๊ธฐ์— ์™„์ „ํžˆ ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ป”๋ป”ํ•œ ์ž๊ธฐ ํ™๋ณด: next-update https://github.com/bahmutov/next-update ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ์ค‘๋‹จ ์—†์ด ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋จผ์ € ํ…Œ์ŠคํŠธํ•˜์‹ญ์‹œ์˜ค. *.*.x ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ ๊ณ„์†ํ•ด์„œ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์œผ๋ฏ€๋กœ ์ด์ œ ์ž์ฒด ์„ ์–ธ๋œ ๋ฒ„์ „์„ ์‹ ๋ขฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ˆˆ์†ก์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ? Lo-Dash๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Underscore++์ด๋ฉฐ, @jdalton์€ semver๋ฅผ ๋”ฐ๋ผ๊ฐ€๋„ ๋ฌธ์ œ ์—†์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ˆ˜๋ฝ:

๊ธฐ์กด API ๊ณ„์•ฝ์„ ์œ„๋ฐ˜ํ•ฉ๋‹ˆ๊นŒ?

๋„ค? - ๋ฒ”ํ”„ ๋ฉ”์ด์ € ๋ฒ„์ „ ๋ฒˆํ˜ธ.
์•„๋‹ˆ์š”? - ๋ฒ”ํ”„ ๋งˆ์ด๋„ˆ ๋ฒ„์ „ ๋ฒˆํ˜ธ.

๋ฒ„๊ทธ ์ˆ˜์ •/๋งˆ์ด๋„ˆ ํŒจ์น˜ ์ˆ˜๋ฝ:

๊ธฐ์กด API ๊ณ„์•ฝ์„ ์œ„๋ฐ˜ํ•ฉ๋‹ˆ๊นŒ?

๋„ค? - ๋ฒ”ํ”„ ๋ฉ”์ด์ € ๋ฒ„์ „ ๋ฒˆํ˜ธ.
์•„๋‹ˆ์š”? - ๋ฒ”ํ”„ ํŒจ์น˜ ๋ฒ„์ „ ๋ฒˆํ˜ธ.

๊ณต์‹ ๋ฆด๋ฆฌ์Šค ์ผ์ •์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ „์ ์œผ๋กœ ๊ท€ํ•˜์—๊ฒŒ ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ๋ฅผ ์†์ƒ์‹œํ‚ค์ง€ ์•Š๋„๋ก ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ semver์™€ ํ˜ธํ™˜๋˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

https://github.com/jashkenas/underscore/compare/1.3.3...1.4.0 ๊ณผ ๊ฐ™์ด @dilvie ์— ๋™์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ํฌ์†Œ ๋ฐฐ์—ด์— ๋Œ€ํ•œ ์ง€์›์„ ์ค‘๋‹จํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์•„๋งˆ๋„ ํฐ ๋ฌธ์ œ๊ฐ€ ๋˜์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ฒ„์ „์€ lookupIterator ๋ฅผ ํ†ตํ•ด ๋งŽ์€ ์–‘์˜ ์ƒˆ๋กœ์šด ์„คํƒ•์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๊ธฐ๋ณธ ๋ฐ˜๋ณต์ž๋ฅผ ์‚ญ์ œํ•˜๋ฏ€๋กœ ํฐ ๋ณ€ํ™”๊ฐ€ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ์˜ ๋ฌธ์„œ๊ฐ€ ๋ช…๋ฐฑํžˆ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

์˜ฌํ•ด JSconf์—์„œ ์ด์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ํ† ๋ก ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ž์„ธํžˆ ์„ค๋ช…ํ•  ์‹œ๊ฐ„์ด ์—†์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ธ๊ฐ„์ด ๋Œ€๋ฉดํ•˜๋Š” "๋ฒ„์ „ ๊ด€๋ฆฌ"์™€ ์ปดํ“จํ„ฐ ๋Œ€๋ฉด(๋˜๋Š” ์‹ค์ œ๋กœ๋Š” ๋นŒ๋“œ ์‹œ์Šคํ…œ ๋Œ€๋ฉด) "API ํ˜ธํ™˜์„ฑ"์„ ํ˜ผ๋™ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๊ทธ๋ƒฅ ๋ฉˆ์ถฐ.

๋ฒ„์ „: "๋‚ด๊ฐ€ ์ข‹์•„ํ•˜๋Š” ์ด ๊ธฐ๋Šฅ์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์žˆ๊ฑฐ๋‚˜ ์‹œ๊ฐ„์ด ์žˆ์„ ๋•Œ ๊ด€์‹ฌ์„ ๊ฐ€์ ธ์•ผ ํ•  ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค." ์ƒˆ๋กœ์šด ์•„์ดํฐ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด OS X๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด Ember๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์–ธ์–ด ์ฒด๊ณ„์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ์ˆ˜์ • ๋ณด๊ณ ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

API ํ˜ธํ™˜์„ฑ: โ€œ์ด๊ฒƒ์€ ์ˆ˜์ •ํ•˜๋„๋ก ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.๋ฌธ์ œ, ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ๊ธธ์„ ๊นฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๊ทธ๋Ÿฐ ๊ฑธ ์—ฐ์Šตํ•ด.โ€ iPhone์˜ ์ „์› ํ”Œ๋Ÿฌ๊ทธ๊ฐ€ ๊ต์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. OS X์—์„œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฆฌ์†Œ์Šค ํฌํฌ. Ember๋Š” ์ž‘์—… ์ด๋ฆ„ ์Šคํƒ€์ผ์„ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด์ œ ์Šคํ‚ค๋งˆ๋Š” ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

ํ›„์ž๋Š” ์ „์ž๋ฅผ _์ค‘์—_ ๋˜๋Š” _์˜†์—์„œ_ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ „์ž๊ฐ€ ๋ฐ˜๋“œ์‹œ ํ›„์ž์— ์˜์กดํ•˜๊ฑฐ๋‚˜ ๊ด€๋ จ์ด ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์€ ์ถ”์ ๋˜์–ด์•ผ ํ•˜๊ณ  (์ •๋ง๋กœ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ _์ง€์ •_ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ) ๋ณ„๋„๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (JS ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ธ๊ธฐ ์žˆ๋Š” '์‹œ๋งจํ‹ฑ ๋ฒ„์ „ ๊ด€๋ฆฌ'์˜ ๊ฐœ๋…์€ _ํŠนํžˆ_ ๋‘”ํ•˜๊ณ  ๋”์ฐํ•˜์ง€๋งŒ, ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ Issue comment-thread์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ณ  ์‹ถ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.)

tl;dr: ๊ทธ๋“ค์€ ์ž์‹ ์˜ ๊ธธ์„ ์„ ํƒํ•˜์—ฌ ์ƒํƒœ๊ณ„๋ฅผ ๋ง์น˜๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (_ํŠนํžˆ_ ๊ทธ ๊ฒฝ๋กœ์— ์‹ฌ๊ฐํ•œ ๊ฒฐํ•จ์ด ์žˆ๋Š” ๊ฒฝ์šฐ.) ๋” ๋งŽ์€ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์—ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ์–‘์ด ๋„ˆ๋ฌด ๊ตฌ๋ถ€๋ ค์ง€๋ฉด ๋‹ค๋ฅธ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

@elliottcable - ์‚ฌ๋žŒ ๋Œ€๋ฉด ๋Œ€ ์ปดํ“จํ„ฐ ๋Œ€๋ฉด์— ๋Œ€ํ•ด ๋™์˜ํ–ˆ์Šต๋‹ˆ๋‹ค ... ์‚ฌ๋žŒ ๋Œ€๋ฉด์ด ์ปดํ“จํ„ฐ ๋Œ€๋ฉด์ฒ˜๋Ÿผ ๋ณด์ด์ง€ ์•Š๋Š” ํ•œ ์œตํ•ฉ์ด ๋œ ๋ฌธ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์‚ฌ๋žŒ์„ ํ–ฅํ•œ ๋ฆด๋ฆฌ์Šค๋ฅผ nnn ๋Œ€์‹  "๋ˆˆ์†ก์ด"๋ผ๊ณ  ๋ถ€๋ฅผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์— ์™„์ „ํžˆ ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. API ๊ณ„์•ฝ์„ ๋”ฐ๋ฅด๋Š” ์ฒ™ํ•˜๋‹ค๊ฐ€ ์ด๋ฅผ ์–ด๊ธฐ๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์‹ค์ œ ์‹œ๊ฐ„๊ณผ ์‹ค์ œ ๋ˆ์„ ์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ‘์ค„๋งŒํผ ์ธ๊ธฐ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž ์žฌ์ ์œผ๋กœ ๋งŽ์€ ์‹ค์ œ ํ”ผํ•ด๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด API ๊ณ„์•ฝ์„ ์œ„๋ฐ˜ํ•ฉ๋‹ˆ๊นŒ?

์ด ์Šค๋ ˆ๋“œ์˜ ๋งจ ์ฒ˜์Œ ์ธ์ˆ˜๋ฅผ ๋‹ค์‹œ ์‚ดํŽด๋ณด์„ธ์š”. "Underscore์˜ ๋ชจ๋“  ๊ฒƒ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ‘œ๋ฉด์ ์ž…๋‹ˆ๋‹ค." ์ฆ‰, ๋ฌธ์„œํ™”๋˜๊ณ  ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์€ ๋ชจ๋“  ๊ฒƒ์ด API ๊ณ„์•ฝ์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ๋ณ€ํ™”๋Š” ๋ชจ๋‘๋ฅผ ์œ„ํ•œ ๋ณ€ํ™”์ž…๋‹ˆ๋‹ค.

"Underscore++"์ธ Lo-Dash๋Š” ์ฃผ์š” ๊ธฐ๋Šฅ์„ ์ž‘์—…ํ•  ๋•Œ Underscore ๋’ค์— ์•ˆ์ „ํ•˜๊ฒŒ ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋Šฅ์˜ ๊ฑฐ์˜ ๋งŽ์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Lo-Dash์˜ ๊ฐœ์„  ์‚ฌํ•ญ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ธฐ๋Šฅ์„ ์žฌ๊ณ ํ•˜์ง€ ์•Š๊ณ  ์ฃผ๋กœ ๋‚ด๋ถ€์— ์žˆ๊ฑฐ๋‚˜ ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@akre54

๋ฆด๋ฆฌ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๊ธฐ๋Šฅ์„ ์ˆ˜๋ฝํ•˜๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? "Use semver"๋Š” ์‹ค์ œ๋กœ ์šฐ๋ฆฌ์—๊ฒŒ ์•„๋ฌด ๊ฒƒ๋„ ์•Œ๋ ค์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ƒˆ API ๋˜๋Š” ๊ธฐ์กด API์— ๋Œ€ํ•œ ์ผ๋ถ€ ๊ฐœ์„  ์‚ฌํ•ญ์„ ์ˆ˜๋ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด API ๋˜๋Š” ๊ฐœ์„  ์‚ฌํ•ญ(ํ˜ธํ™˜์„ฑ์„ ์†์ƒ์‹œํ‚ค์ง€ ์•Š๋Š”)์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ ๋งˆ์ด๋„ˆ ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋ฒ„๊ทธ ์ˆ˜์ •์„ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์žˆ๋„๋ก _.matches ์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๋ช‡ ๊ฐœ์›” ๋’ค๋กœ ๋ฏธ๋ฃจ์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ์ง€๊ธˆ ์ถœ์‹œํ•˜์—ฌ ์‚ฌ๋žŒ๋“ค์ด ๊ตฌํ˜„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

_.matches ๋Š” ๊ฝค ์ง๊ด€์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•ญ์ƒ ๋ฒ„๊ทธ ์ˆ˜์ •์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” semver๊ฐ€ ์—ฌ๊ธฐ์— ์™„์ „ํžˆ ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ก  ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ semver์™€ ๋ณ„๊ฐœ์ธ ๋ฆด๋ฆฌ์Šค ์ฃผ๊ธฐ ๋ฌธ์ œ๋กœ ๊ธฐ์–ด๊ฐ€๊ธฐ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ, ์ €๋Š” ๋‹น์‹ ์„ ๋”ฐ๋ผ๊ฐˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@dilvie : ๋‚˜๋จธ์ง€ ์ธ์ˆ˜์—์„œ ๋ฒ—์–ด๋‚˜์ง€๋งŒ ์ด๊ฒƒ์„ ๋˜์ง€๋ฉด '๋ฒ„์ „ ์ด๋ฆ„' ๊ทœ์น™์„ ๋”ฐ๋ฅด๋ผ๋Š” ์ œ์•ˆ์ด ์ •๋ง ์ •๋ง ์ข‹์Šต๋‹ˆ๋‹ค. (=

์‚ฌ๋žŒ์„ ๋Œ€๋ฉดํ•˜๋Š” ๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์ €๋Š” less ์Šคํƒ€์ผ ๋ฒ„์ „ ๊ด€๋ฆฌ์˜ ์—ด๋ ฌํ•œ ํŒฌ์ž…๋‹ˆ๋‹ค.

> less --version
less 418
Copyright (C) 1984-2007 Mark Nudelman

less comes with NO WARRANTY, to the extent permitted by law.
For information about the terms of redistribution,
see the file named README in the less distribution.
Homepage: http://www.greenwoodsoftware.com/less

... ์šฐ๋ฆฌ๊ฐ€ API ํ˜ธํ™˜์„ฑ์ด ์•„๋‹ˆ๋ผ "ํฅ๋ฏธ๋กœ์›€" ๋ฒ„์ „์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์˜ˆ์œ ์ด๋ฆ„๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ์„ฑ๊ณต์ ์ธ ์ฝค๋ณด๋ฅผ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋ฐ‘์ค„ 42์˜ ๊ฒฝ์šฐ +1: "๋ฐ”๋ณด ๊ฐ™์€ ์…ธํ‹ฐ"

(๋นŒ๋“œ ์‹œ์Šคํ…œ์ด ์ง๋ฉดํ•˜๋Š” ๋ถ€๋ถ„์— ๊ด€ํ•ด์„œ๋Š” ์ž๋™ํ™”๋œ ์ƒ์„ฑ API ํ˜ธํ™˜์„ฑ์— ๋Œ€ํ•ด ๋…ผ๋ž€์˜ ์—ฌ์ง€๊ฐ€ ์žˆ๋Š” ๊ฒฌํ•ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” ์œ ์ง€ ๊ด€๋ฆฌ์ž์˜ ์†์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์ •์  ๋ถ„์„ ๋˜๋Š” ๋™์  ํฌ๋กค๋ง์œผ๋กœ ๊ณต๊ฒฉํ•ฉ์‹œ๋‹ค.)

@akre54

"Underscore++"์ธ Lo-Dash๋Š” ์ฃผ์š” ๊ธฐ๋Šฅ์„ ์ž‘์—…ํ•  ๋•Œ Underscore ๋’ค์— ์•ˆ์ „ํ•˜๊ฒŒ ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋Šฅ์˜ ๊ฑฐ์˜ ๋งŽ์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒŒ ๋ฌด์Šจ ๋œป์ด์•ผ? Lo-Dash๋Š” _์ถ”๊ฐ€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ_์„ ์ฒ˜๋ฆฌํ•˜๊ณ  Underscore์™€ ๋ณ„๋„๋กœ ์ž์ฒด ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. Lo-Dash๋Š” ๋„ˆ๋ฌด ๋งŽ์ด ๋ณ€๊ฒฝ๋˜์–ด ๋“œ๋กญ์ธ ๊ต์ฒด ์ง€์›์„ ๊ณ„์†ํ•˜๊ธฐ ์œ„ํ•ด Underscore ํ˜ธํ™˜ ๋นŒ๋“œ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋‹ค๋ฅธ ๊ธฐ๋Šฅ , ๋ฐฉ๋ฒ• ๋ฐ ๋‹ค๋ฅธ API ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Lo-Dash์˜ ๊ฐœ์„  ์‚ฌํ•ญ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ธฐ๋Šฅ์„ ์žฌ๊ณ ํ•˜์ง€ ์•Š๊ณ  ์ฃผ๋กœ ๋‚ด๋ถ€์— ์žˆ๊ฑฐ๋‚˜ ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ๋„ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Lo-Dash๋Š” ๋” ๋น ๋ฅธ ์†๋„๋กœ ์›€์ง์ด๋ฉฐ ๋” ์ž์ฃผ ๋ฐฑ ์ปดํผํŠธ์— ๋งž์„œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ~v3.x์—์„œ ~v2.x๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. Lo-Dash๋Š” ๋ฐ‘์ค„๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. Lo-Dash๊ฐ€ semver๋ฅผ ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ๋‹ค๋ฉด Underscore๋„ ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ง€๊ธˆ ~ 2 ๋…„ ๋™์•ˆ ๊ทธ๊ฒƒ์„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ์ฃผ์žฅ์€ ํ˜„์‹ค ์•ž์—์„œ ๊ทธ๋ƒฅ ๋ฌด๋„ˆ์ง‘๋‹ˆ๋‹ค.

์ „์—๋„ ์ด ๊ธธ์„ ๊ฑธ์–ด๋ณธ ์ ์ด ์žˆ์œผ๋ฏ€๋กœ ์—ฌ๋Ÿฌ๋ถ„๋„ ๊ฑฐ๊ธฐ์— ๊ฐ€๋Š” ๊ฒƒ์„ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์šฐ์„ , ๋‹ค์Œ Underscore ๋ฆด๋ฆฌ์Šค๋Š” ํ›Œ๋ฅญํ•œ 2.0์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋‘๊ฐ€ "๋ธŒ๋ ˆ์ดํ‚น ์ฒด์ธ์ง€"๋ฅผ ์–ด๋–ป๊ฒŒ ์ •์˜ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ๋ฐ‘์ค„์— ๋Œ€ํ•œ _๋ชจ๋“ _ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๋ณ€๊ฒฝ์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ์žˆ์–ด ํš๊ธฐ์ ์ธ ๋ณ€๊ฒฝ์ž…๋‹ˆ๋‹ค.

_.each ์— ๋Œ€ํ•œ ๋ชจ๋“  ์ตœ๊ทผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์˜ˆ๋กœ ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์›๋ž˜ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด _.each ์˜ ๋ฐ˜ํ™˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ๋•Œ ์ถฉ๋Œํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ๋ฒ„๊ทธํ”ฝ์Šค์ธ๊ฐ€์š”? ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ? ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ? ์ด์ „์— undefined ๋ฅผ ๋ฐ˜ํ™˜ํ–ˆ์œผ๋ฏ€๋กœ ๋ˆ„๊ตฐ๊ฐ€์˜ ์ฝ”๋“œ๋ฅผ ๊นจ๋œจ๋ ธ์„ ๊ฐ€๋Šฅ์„ฑ์€ ์—†์Šต๋‹ˆ๋‹ค.

๋‚ด๋ถ€ each ๋„์šฐ๋ฏธ๊ฐ€ ์™ธ๋ถ€์ ์œผ๋กœ ์žฌํ• ๋‹น ๋˜๋„๋ก ํ—ˆ์šฉํ•  ๋•Œ ์ถฉ๋Œํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ๋ˆ„๊ตฐ๊ฐ€์˜ ์ฝ”๋“œ๊ฐ€ ์†์ƒ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ณต๊ฐœ API๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

ํฌ์†Œ ๋ฐฐ์—ด์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด _.each ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ๊ธฐ๋ณธ forEach ๋Œ€์‹  for ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ถ„๋ช…ํžˆ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€๋งŒ ํฌ์†Œ ๋ฐฐ์—ด์ด ์ฃฝ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ˆ„๊ฐ€ ์‹ ๊ฒฝ์„ ์“ฐ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋ฉ”์ด์ € ๋ฒ„์ „์„ ๋ฐ€์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๋ฒ„๊ทธํ”ฝ์Šค์ธ๊ฐ€์š”?

๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ฉ”์ด์ € ๋ฒ„์ „์„ ๊ธฐํ•œ์ด ๋„˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค( 219๊ฐœ์˜ ์ปค๋ฐ‹ ์—์„œ ๋งŽ์€ ์ผ์ด ์ผ์–ด๋‚ฌ๋‹ค). 2.0 ๋ฆด๋ฆฌ์Šค์™€ ๋ฒ„์ „ ์ •์ฑ…์˜ ๊ฐ•ํ™”๋Š” ์—ฌ๊ธฐ์—์„œ ๋จผ ๊ธธ์„ ๊ฐˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@akre54

Underscore์— ๋Œ€ํ•œ ๋ชจ๋“  ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๋ณ€๊ฒฝ์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ํš๊ธฐ์ ์ธ ๋ณ€๊ฒฝ์ž…๋‹ˆ๋‹ค.

๋ฐ˜๋“œ์‹œ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด _.each์— ๋Œ€ํ•œ ๋ชจ๋“  ์ตœ๊ทผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์›๋ž˜ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด _.each์˜ ๋ฐ˜ํ™˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ๋•Œ ์ถฉ๋Œํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ๋ฒ„๊ทธํ”ฝ์Šค์ธ๊ฐ€์š”?

๋ฒ„๊ทธ ์ˆ˜์ •์ด ์•„๋‹ˆ๋ผ ๊ฐœ์„  ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ๋น„ํ•ตํ™”์ž…๋‹ˆ๊นŒ?-- _.each ์˜ ๋ฐ˜ํ™˜ ๊ฐ’์ด ์˜์กดํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€ Lo-Dash๋กœ ์ „ํ™˜ํ•  ๋•Œ ์žฅ์• ๋ฌผ๋กœ ๋ณด๊ณ ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „ํ•œ ๋ณ€๊ฒฝ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŒŒ์†์ด ์˜์‹ฌ๋˜๋Š” ๊ฒฝ์šฐ RC ๋ฆด๋ฆฌ์Šค๋กœ ๋ฌผ์„ ํ…Œ์ŠคํŠธํ•˜์‹ญ์‹œ์˜ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด _.each ์—์„œ ์ผ์ฐ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋ผ๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ CoffeeScript๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํ•ด๋‹น ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ์ง๋ฉดํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ ํ™•์‹คํžˆ ํš๊ธฐ์ ์ธ ๋ณ€๊ฒฝ์ด๋ผ๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋‚ด๋ถ€์˜ ๊ฐ ๋„์šฐ๋ฏธ๋ฅผ ์™ธ๋ถ€์ ์œผ๋กœ ์žฌํ• ๋‹นํ•  ๋•Œ ์ถฉ๋Œํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ๋ˆ„๊ตฐ๊ฐ€์˜ ์ฝ”๋“œ๊ฐ€ ์†์ƒ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ณต๊ฐœ API๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์€ ๊ตฌํ˜„ ์„ธ๋ถ€ ์‚ฌํ•ญ์— ํ•ด๋‹นํ•œ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. Underscore๋Š” ์—ฌ์ „ํžˆ ๊ธฐ๋ณธ ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ๋ถ„๊ธฐ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์ƒˆ๋กœ์šด ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ 1.6.0 ์ดํ›„์˜ ๋” ํฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๊ทธ๋ฃน์— ์†ํ•˜๋ฏ€๋กœ 2.0์— ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํฌ์†Œ ๋ฐฐ์—ด์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด _.each ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ๋„ค์ดํ‹ฐ๋ธŒ forEach ๋Œ€์‹  for ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ถ„๋ช…ํžˆ ์ผ๋ถ€์—๊ฒŒ๋Š” ๋ฌธ์ œ๊ฐ€ ๋˜์ง€๋งŒ ํฌ์†Œ ๋ฐฐ์—ด์ด ์ฃฝ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ˆ„๊ฐ€ ์‹ ๊ฒฝ์„ ์“ฐ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋ฉ”์ด์ € ๋ฒ„์ „์„ ๋ฐ€์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๋ฒ„๊ทธํ”ฝ์Šค์ธ๊ฐ€์š”?

๋ฒ„๊ทธ ์ˆ˜์ •์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ ํ™•์‹คํžˆ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ฐœ๋ฐœ์ž ๊ฐ€ Lo-Dash๋กœ ์ „ํ™˜ํ•  ๋•Œ ๊ฒช๋Š” ์ผ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. Underscore๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹ ๋•Œ๋ฌธ์— ํฌ์†Œ ๋ฐฐ์—ด ์‚ฌ์šฉ์„ ๋งˆ์Šคํฌํ•˜๊ณ  ๊ฐœ๋ฐœ์ž๋Š” ์ด์ „ ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ…Œ์ŠคํŠธํ•œ ๊ฒฝ์šฐ์—๋งŒ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ณ€๊ฒฝ์œผ๋กœ ๊ฐœ๋ฐœ์ž๋Š” ์ตœ์‹  ๋ธŒ๋ผ์šฐ์ €์—์„œ ํฌ์†Œ ๋ฐฐ์—ด ์‚ฌ์šฉ์— ๋Œ€ํ•ด ๋” ๋นจ๋ฆฌ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›๊ฒŒ ๋˜๋ฏ€๋กœ ์ด์ „์— ์ž‘์—…ํ•œ ์ฝ”๋“œ๊ฐ€ ๊ฑธ๋ฆผ๋Œ์— ๋ถ€๋”ชํž ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋ฉ”์ด์ € ๋ฒ„์ „์„ ๊ธฐํ•œ์ด ๋„˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(219๊ฐœ์˜ ์ปค๋ฐ‹์—์„œ ๋งŽ์€ ์ผ์ด ์ผ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค). 2.0 ๋ฆด๋ฆฌ์Šค์™€ ๋ฒ„์ „ ์ •์ฑ…์˜ ๊ฐ•ํ™”๋Š” ์—ฌ๊ธฐ์—์„œ ๋จผ ๊ธธ์„ ๊ฐˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

:+1:

์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ(๋ณต์ˆ˜ํ˜• ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ)

(์ปดํ“จํŒ…) ์ž ์žฌ์ ์œผ๋กœ ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์‹คํŒจํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์˜ ํ•œ ๋ถ€๋ถ„์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ์˜ ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ๊ฐ€์žฅ ์ž์ฃผ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
"์ค‘๋‹จ ๋ณ€๊ฒฝ ์—†์ด๋Š” ์ด์ „ ํ•ญ๋ชฉ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ด์ „ ํ•ญ๋ชฉ์„ ์ƒˆ ํ•ญ๋ชฉ์œผ๋กœ ๋‹ค์‹œ ๋งคํ•‘ํ•˜์‹ญ์‹œ์˜ค."

์ด๊ฒƒ ์ค‘ ์ผ๋ถ€๋Š” ์•ฝ๊ฐ„์˜ ์ƒ๊ฐ๊ณผ ํŒ๋‹จ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ณ€๊ฒฝ์ด ๋ˆ„๊ตฐ๊ฐ€์˜ ์ฝ”๋“œ๋ฅผ ๊นจ๋œจ๋ฆฌ๋Š” ๊ฒƒ์€ ์‚ฌ์‹ค์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ชจ๋“  ์ฐธ๊ฐ€์ž๊ฐ€ ๊ฐœ๋ฐฉ/ํ์‡„ ์›์น™์„ ์œ„๋ฐ˜์„ ๊ตฌ์„ฑํ•˜๋Š” ์ง€์นจ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ๋™์˜ํ•˜๋ฉด ๋ชจ๋“  ์‚ฌ๋žŒ์˜ ์‚ถ์ด ๋” ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ API์— ์†์„ฑ์ด๋‚˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์•„๋‹™๋‹ˆ๋‹ค(API๋Š” ํ™•์žฅ์„ ์œ„ํ•ด ์—ด๋ ค ์žˆ์ง€๋งŒ ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ซํ˜€ ์žˆ์Œ).

ํ•จ์ˆ˜ ์„œ๋ช…์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ๋” ๋งŽ์€ ์ƒ๊ฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์›๋ž˜ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด _.each์˜ ๋ฐ˜ํ™˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ๋•Œ ์ถฉ๋Œํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์–ด๋–ค ์šฉ๋„๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ์„œํ™”๋œ API ๊ธฐ๋Šฅ์ด์—ˆ์Šต๋‹ˆ๊นŒ? ์˜ˆ๋ฅผ ๋“ค์–ด, ์ผ๋ถ€ ํ•จ์ˆ˜๋Š” ์ „๋‹ฌ๋œ ์ž…๋ ฅ์ด ์ ์ ˆํ•œ ์ถœ๋ ฅ์„ ๋‚ณ์ง€ ์•Š์„ ๋•Œ undefined๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. each ์˜ ๊ฒฝ์šฐ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค ... ๋”ฐ๋ผ์„œ ์•„๋งˆ๋„ ๊นจ์ง€์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด์— ํฌ์†Œ ๋ฐฐ์—ด์„ ํ”ผํ•˜๋Š” ๊ฒƒ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜์กดํ•˜๋Š” ๋ฐ˜ํ™˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋” ํฌ๋ฏ€๋กœ ๋ถ„๋ช…ํžˆ ์ด๋Š” ํš๊ธฐ์ ์ธ ๋ณ€๊ฒฝ์ด๋ฉฐ ํฌ์†Œ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์€ ๊ด€์‹ฌ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.

ํฌ์†Œ ๋ฐฐ์—ด์€ ES6์—์„œ ์‚ด์•„๋‚จ์ง€ ๋ชปํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์•„์ง ์ฃฝ์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค.

@akre54
๋•Œ๋•Œ๋กœ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ค‘๋‹จ๋˜๋Š”์ง€ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ๋Œ€๋‹ต์€ ๊ฐ„๋‹จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ์ปจํ…์ŠคํŠธ, ๊ธฐ๋ก ๋ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์šด์ด ์ข‹๊ฒŒ๋„ Lo-Dash๋ฅผ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์žฅ์†Œ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  Underscore์—์„œ ์˜ค๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์–ด๋–ค ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Underscore๋Š” ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝ์˜ ์˜ํ–ฅ์— ๋Œ€ํ•ด ์ •๋ณด์— ์ž…๊ฐํ•œ ๊ฒฐ์ •์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์†Œํ•œ ๋‹ค์Œ semver๋Š” ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค์— ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์˜ ์˜ํ–ฅ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๋„๋ก ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‘์—๊ฒŒ ์Šน๋ฆฌ์ž…๋‹ˆ๋‹ค.

@jdalton , ์ง‘๋‹จ ํ–‰์œ„. :)

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰