Node Package Manager์˜ ์•ฝ์ž์ธ NPM์€ ์›น ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ํ•„์ˆ˜์ ์ธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์›๋ž˜ Node.js์šฉ์œผ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์ง€๋งŒ ์ ์ฐจ JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋ฌผ๋ก  ๊ธฐํƒ€ ์ตœ์‹  ์›น ๊ธฐ์ˆ ์— ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ์ค‘ ํ•˜๋‚˜๋กœ ์„ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์ •์˜์— ๋”ฐ๋ฅด๋ฉด NPM์€ ๋‹ค์–‘ํ•œ ํŒจํ‚ค์ง€๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ์˜จ๋ผ์ธ ์ €์žฅ์†Œ์ด์ž Node.js ํ”„๋กœ์ ํŠธ์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๋Š” ๋ช…๋ น์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ์ž…๋‹ˆ๋‹ค. ๋ณธ์งˆ์ ์œผ๋กœ ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ์ „์ฒด ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ถ€ํ„ฐ ์†Œ๊ทœ๋ชจ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ธฐ๋Šฅ ๋˜๋Š” ๋ชจ๋“ˆ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ 'ํŒจํ‚ค์ง€'๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ฒ€์ƒ‰, ์„ค์น˜ ๋ฐ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

NPM์˜ ์ฃผ์š” ์ด์ ์€ ์˜คํ”ˆ ์†Œ์Šค ํŒจํ‚ค์ง€๋ฅผ ์ฐพ๊ณ , ํ™œ์šฉํ•˜๊ณ , ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ„์†Œํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž์˜ ์‚ถ์„ ๋‹จ์ˆœํ™”ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์›น ๊ฐœ๋ฐœ์˜ ๋งฅ๋ฝ์—์„œ ๊ท€์ค‘ํ•œ ๋„๊ตฌ๊ฐ€ ๋˜์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ AppMaster ํ”Œ๋žซํผ ๋‚ด์—์„œ ์ƒ์„ฑ๋œ ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๊ณต์œ  ๋ฆฌ์†Œ์Šค ๋ฐ ๊ธฐ์ˆ ์˜ ๋ฐฉ๋Œ€ํ•œ ์ƒํƒœ๊ณ„์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

์ตœ๊ทผ ํ†ต๊ณ„์— ๋”ฐ๋ฅด๋ฉด NPM์€ 160๋งŒ ๊ฐœ ์ด์ƒ์˜ ํŒจํ‚ค์ง€๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๊ณ  1,100๋งŒ ๋ช… ์ด์ƒ์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์„ธ๊ณ„ ์ตœ๋Œ€ ๊ทœ๋ชจ์˜ ํŒจํ‚ค์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์ž…๋‹ˆ๋‹ค. 2022๋…„ ํ˜„์žฌ NPM์€ ๋งค์›” 230์–ต ๊ฐœ๊ฐ€ ๋„˜๋Š” ํŒจํ‚ค์ง€ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. NPM์˜ ๊ด‘๋ฒ”์œ„ํ•œ ์ฑ„ํƒ์€ ์ถœ์‹œ ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ๋‹จ์ถ•ํ•˜๊ณ  ๊ฐœ๋ฐœ ๋น„์šฉ์„ ๋‚ฎ์ถ”๋ฉฐ ๋†’์€ ์ˆ˜์ค€์˜ ์†Œํ”„ํŠธ์›จ์–ด ํ’ˆ์งˆ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋ฏ€๋กœ ์›น ๊ฐœ๋ฐœ์— ๋งŽ์€ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

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

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

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

๊ตฌ์ฒด์ ์ธ ์˜ˆ๋กœ, ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๊ฐ€ ํ•„์š”ํ•œ AppMaster ์‚ฌ์šฉํ•˜์—ฌ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณ ๊ฐ์„ ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”. ์‚ฌ์šฉ์ž ์ •์˜ ์‚ฌ๋‚ด ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋งŒ๋“œ๋Š” ๋Œ€์‹  ๊ณ ๊ฐ์€ NPM์„ ์‚ฌ์šฉํ•˜์—ฌ D3.js, Chart.js ๋˜๋Š” HighCharts์™€ ๊ฐ™์€ ์„ฑ์ˆ™ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ…Œ์ŠคํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŒจํ‚ค์ง€๋Š” ์ตœ์ข… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ–ฅ์ƒ์‹œํ‚ฌ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์˜ ์ „์ฒด ๋น„์šฉ์„ ์ ˆ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ NPM์€ ํŠนํžˆ AppMaster ํ”Œ๋žซํผ์˜ ๋งฅ๋ฝ์—์„œ ํ˜„๋Œ€ ์›น ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ํ•„์ˆ˜์ ์ธ ๋„๊ตฌ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํŒจํ‚ค์ง€์˜ ๊ด‘๋ฒ”์œ„ํ•œ ์ €์žฅ์†Œ์™€ ์ด๋Ÿฌํ•œ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ช…๋ น์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ NPM์€ ๊ฐœ๋ฐœ์ž์˜ ์‚ถ์„ ํฌ๊ฒŒ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ์—…๊ณ„ ๋‚ด์—์„œ ๋ณด๋‹ค ํ˜‘๋ ฅ์ ์ธ ์˜คํ”ˆ ์†Œ์Šค ์‚ฌ๊ณ ๋ฐฉ์‹์„ ์กฐ์„ฑํ•ฉ๋‹ˆ๋‹ค. Node.js์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋กœ ์‹œ์ž‘ํ•˜์—ฌ NPM์€ ๋Š์ž„์—†์ด ์ง„ํ™”ํ•˜๋Š” ์›น ์‚ฌ์ดํŠธ ๊ฐœ๋ฐœ ์„ธ๊ณ„์—์„œ ์‹ ์†ํ•œ ๊ฐœ๋ฐœ, ๋น„์šฉ ํšจ์œจ์„ฑ ๋ฐ ๊ณ ํ’ˆ์งˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ณด์žฅํ•˜๋Š” ํ•„์ˆ˜ ์„œ๋น„์Šค๋กœ ๋ฐœ์ „ํ–ˆ์Šต๋‹ˆ๋‹ค.