Skip to content

front_end_develoment_1

paul edited this page Jun 28, 2017 · 1 revision

ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ ์‹œ์ž‘ํ•˜๊ธฐ

TECH@NAVER_009 ๋„ค์ด๋ฒ„์—์„œ ์ถœ๊ฐ„ํ•œ ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ ์‹œ์ž‘ํ•˜๊ธฐ ์ฑ… ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ๋‹ค.
์ฑ… ์ถœ๊ฐ„์ผ์ด 2014๋…„ 9์›”์ด๋ผ ํ˜„์žฌ๋Š” ๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‚ด์šฉ๋„ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.

ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์˜ ์ดํ•ด

ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ด๋ž€

๊ตญ๋‚ด์—์„œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘ํ•˜๋Š” ์˜์—ญ์˜ ๊ฐœ๋ฐœ์„ HTML ์ฝ”๋”ฉ, ์›น ํผ๋ธ”๋ฆฌ์‹ฑ, UI ๊ฐœ๋ฐœ, RIA ๊ฐœ๋ฐœ๋“ฑ ์—ฌ๋Ÿฌ ๋‹จ์–ด๋กœ ์ •์˜ํ•˜๋ฉฐ ์—…๊ณ„๋งˆ๋‹ค ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ๊ฐœ๋ฐœ ์˜์—ญ์„ ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘ํ•˜๋Š” ์˜์—ญ์˜ ์ง‘ํ•ฉ์„ ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์—ฌ๋Ÿฌ ๊ฐœ๋…์„ ํ•ฉ์น˜๋‹ค๋ณด๋‹ˆ ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ํ•œ๋งˆ๋”” ์ •์˜ํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š๋‹ค.

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

IDE์™€ ์—๋””ํ„ฐ

์œ ๋ช…ํ•œ ์—๋””ํ„ฐ

์ดํด๋ฆฝ์Šค, ์•ฑํƒ€๋‚˜ ์ŠคํŠœ๋””์˜ค, ์„œ๋ธŒ๋ผ์ž„ ํ…์ŠคํŠธ, ์›น์Šคํ†ฐ

์›น์Šคํ†ฐ์„ ์ฑ„ํƒํ•œ ์ด์œ 

๋„ค์ด๋ฒ„์—์„œ ์›น์Šคํ†ฐ์„ ์ฑ„ํƒํ•˜๋Š” ๋ฐ ์ฃผ์š”ํ•œ ์—ญํ•  ํ•œ ๊ธฐ๋Šฅ ๋ช‡ ๊ฐ€์ง€

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ฝ”๋“œ ํžŒํŒ… ๊ธฐ๋Šฅ
  • ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฆฌํŒฉํ„ฐ ๊ธฐ๋Šฅ
  • ์ •์  ๋ถ„์„ ๊ธฐ๋Šฅ
  • ์•ˆ์ •์ ์ธ ์†๋„

์ฝ”๋“œ ํ’ˆ์งˆ ๊ด€๋ฆฌ

์ฝ”๋“œ ํ’ˆ์งˆ ๊ฒ€์ฆ ๋„๊ตฌ

JSHint, JSLint

JSHint

2011๋…„ ์•ˆํ†ค ์ฝ”๋ฐœ์š”ํ”„๊ฐ€ JSLint๋ฅผ ํฌํฌํ•ด์„œ ๋งŒ๋“ค์—ˆ๋‹ค. JSLint์˜ ๋”๊ธ€๋ผ์Šค ํฌ๋ฝํฌ๋“œ์˜ ์Šคํƒ€์ผ์„ ๊ฐ•์š”ํ•˜๋„๋ก ๋ณ€ํ•ด ๋ฒ„๋ ค JSHint๋ฅผ ๋งŒ๋“ค๊ธฐ๋กœ ๊ฒฐ์‹ฌํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค. JSHint๋Š” Node.js์™€ ์›น์œผ๋กœ ์ง€์›ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, JSLint๋ณด๋‹ค ์œ ์—ฐํ•˜๊ฒŒ ์˜ต์…˜์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๊ณ , ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํƒ€์ž…์„ typeof ์—ฐ์‚ฐ์ž๋กœ ๊ฒ€์‚ฌํ•˜๋Š” ๊ฒฝ์šฐ๋‚˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋‚ด์žฅ ๊ฐ์ฒด์— ํ”„๋กœํ† ํƒ€์ž…์„ ์ ์šฉํ•œ ๊ฒฝ์šฐ ๋“ฑ๊ณผ ๊ฐ™์€ JSLint์—์„œ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒ€์‚ฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

JSLint

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

JSLint๋Š” ์†Œ์Šค ์ฝ”๋“œ์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•™ ์•ˆํ‹ฐ ํŒจํ„ด์ด๋‚˜ ๊ตฌ๋ฌธ ์˜ค๋ฅ˜, ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ณ€์ˆ˜, ์„ ์–ธํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜ ์‚ฌ์šฉ๊ณผ ๊ฐ™์€ ์ž ์žฌ์ ์ธ ์œ„ํ—˜ ์š”์†Œ๊นŒ์ง€ ๋ฐœ๊ฒฌํ•ด ๊ฒฝ๊ณ ํ•ด์ค€๋‹ค.

ํ…Œ์ŠคํŠธ ๋„๊ตฌ

QUint

QUint์€ jQuery ๊ฐœ๋ฐœ์ž๋กœ ์ž˜ ์•Œ๋ ค์ง„ ์กด ๋ ˆ์‹๊ณผ ์กด ์ œํ”„๋Ÿฌ๊ฐ€ jQuery๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ํ”„๋ ˆ์ž„์›Œํฌ๋‹ค. ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•๊ณผ ๋ฉ”์„œ๋“œ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋น„๋™๊ธฐ ํ…Œ์ŠคํŠธ์—๋„ ๋Œ€์‘ํ•˜๊ณ  ์žˆ๋‹ค. ์›น ์„œ๋ฒ„ ์—†์ด๋„ ํ…Œ์ŠคํŠธ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์›น ํŽ˜์ด์ง€์—์„œ ๋ณผ ์ˆ˜ ์žˆ๊ณ  QUnit-TAP(Test Anything Protocol)์„ ์ด์šฉํ•˜๋ฉด ๋ช…๋ น ์ค„์—์„œ๋„ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

์นด๋ฅด๋งˆ

2012๋…„ ๊ตฌ๊ธ€์˜ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด์ธ ๋ณด์ดํƒ€ ์ง€๋‚˜๊ฐ€ AngularJS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๋ ค๊ณ  Testacular๋ฅผ ๊ฐœ๋ฐœํ–ˆ๊ณ  ์˜คํ”ˆ ์†Œ์Šคํ™”ํ–ˆ๋‹ค. Testacular๋Š” ๋งค์šฐ ๊ฐ€๋ฒผ์šฐ๋ฉฐ Node.js, Socket.IO๋ฅผ ์ด์šฉํ•ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ฐ์‹œํ•˜๊ณ  ์ˆ˜์ •ํ•  ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ํ…Œ์ŠคํŠธํ•ด์„œ ๊ฒฐ๊ณผ๋ฅผ PC์— ์„ค์น˜๋œ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค. Testacular์˜ ํ”„๋กœ์ ํŠธ๋ช…์ด ์นด๋ฅด๋งˆ๋กœ ๋ฐ”๋€Œ๋ฉด์„œ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ์นด๋ฅด๋งˆ๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์•Œ๋ ค์กŒ๋‹ค. ์ด ๋„๊ตฌ ์ž์ฒด๋Š” ํ…Œ์ŠคํŠธ ์‹คํ–‰ ํ™˜๊ฒฝ์ด๋ฏ€๋กœ Jasmine์ด๋‚˜ Mocha, Qunit๋“ฑ์˜ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•ด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ ๋„๊ตฌ

๋งˆํฌ์—… ๊ฐœ๋ฐœ ๋„๊ตฌ

LESS

Less๋Š” CSS์˜ ๋‹จ์ ์„ ๊ทน๋ณตํ•˜๊ณ ์ž ๊ฐœ๋ฐœ๋œ CSS ๋ฉ”ํƒ€ ์–ธ์–ด(๋˜๋Š” CSS ์ „์ฒ˜๋ฆฌ)๋‹ค. CSS์—๋Š” ์—†๋Š” ๋ณ€์ˆ˜, ๋ฏน์Šค์ธ, ์—ฐ์‚ฐ์ž, ํ•จ์ˆ˜ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. Less๋ฅผ ์ด์šฉํ•ด ์ฝ”๋“œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ  ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์Šคํƒ€์ผ ์ •์˜์˜ ํšจ์œจ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. Less๋Š” ๋‹ค์–‘ํ•œ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉ๋๋Š”๋ฐ ๋Œ€ํ‘œ์ ์ธ ์‚ฌ๋ก€๊ฐ€ ํŠธ์œ„ํ„ฐ์˜ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํ”„๋กœ์ ํŠธ๋‹ค. "Less is more"๋Š” Less์˜ ์ฒ ํ•™์ด๋‹ค.

Less๋กœ ์ž‘์„ฑํ•œ ์Šคํƒ€์ผ์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 3๊ฐ€์ง€๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ Less ํŒŒ์ผ์„ ๋กœ๋“œํ•œ ๋‹ค์Œ Less ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“ˆ์„ ์ด์šฉํ•ด ๋™์ ์œผ๋กœ CSS๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๊ณ  ๋‘ ๋ฒˆ์งธ๋Š” ์ž๋™์œผ๋กœ Less๋ฅผ CSS๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์„œ๋ฒ„๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์„ธ ๋ฒˆ์งธ๋Š” ํŒŒ์ผ์„ ๊ฐ์‹œํ•˜๊ณ  ์žˆ๋‹ค๊ฐ€ Node.js๋ฅผ ์ด์šฉํ•ด Less๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์›น์Šคํ†ฐ์—์„œ๋Š” ์„ธ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Emmet

Emmet๋Š” ํŽธ์ง‘๊ธฐ์—์„œ HTML๊ณผ CSS๋ฅผ ๋น ๋ฅด๊ฒŒ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ๋„๊ตฌ๋‹ค. ์ฒ˜์Œ์—๋Š” ์   ์ฝ”๋”ฉ์ด๋ผ๋Š” ํ”„๋กœ์ ํŠธ๋ช…์œผ๋กœ ์‹œ์ž‘ํ–ˆ๋‹ค๊ฐ€ Emmet๋ผ๋Š” ํ”„๋กœ์ ํŠธ๋ช…์œผ๋กœ ๋ฐ”๋€Œ์—ˆ๊ผฌ 2013๋…„ 2์›” 24์ผ ์ •์‹์œผ๋กœ ์ถœ์‹œ๋๋‹ค. ์›น์Šคํ†ฐ์—์„œ๋Š” Emmet์„ ๋‚ด์žฅํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์„œ๋ธŒ๋ผ์ž„ ํ…์ŠคํŠธ, ์•ฑํƒ€๋‚˜ ์ŠคํŠœ๋””์˜ค, ์ดํด๋ฆฝ์Šค ๋“ฑ์˜ IDE์—์„œ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ˜•ํƒœ๋กœ ์ง€์›ํ•œ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐœ๋ฐœ ๋„๊ตฌ

Bower

Bower๋Š” ํŠธ์œ„ํ„ฐ์—์„œ ๋งŒ๋“  ํ”„๋ŸฐํŠธ์—”๋“œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋กœ Node.js์˜ npm์—์„œ ๋งŽ์€ ์˜ํ–ฅ์„ ๋ฐ›์•„ ๊ตฌํ˜„๋๋‹ค. npm์€ ์˜์กด ๋ชจ๋“ˆ์„ package.json์— ๋ช…์‹œํ•˜๋Š” ๋ฐ˜๋ฉด Bower๋Š” bower.json์— ๋ช…์‹œํ•œ๋‹ค.

JSDoc3 ์• ๋„ˆํ…Œ์ด์…˜

์• ๋„ˆํ…Œ์ด์…˜์ด๋ž€ ์‚ฌ์ „์  ์˜๋ฏธ๋กœ๋Š” ์ฃผ์„์„ ๋œปํ•˜์ง€๋งŒ ๋‹จ์ˆœํžˆ ์ฃผ์„์ด ๋‚˜๋‹ˆ ๋ฐ์ดํ„ฐ์˜ ๋ฉ”ํƒ€ ์ •๋ณด๋‚˜ ๊ฐ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„ ์ •๋ณด ๊ฐ™์ด ํŠน์ˆ˜ํ•œ ์˜๋ฏธ๋ฅผ ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑํ•œ ์ฃผ์„์„ ๋งํ•œ๋‹ค.

๋””๋ ‰ํ„ฐ๋ฆฌ ์Šค์บํด๋”ฉ

Grunt-init

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

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Grunt-init์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Grunt-init์€ Grunt์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ค‘ ํ•˜๋‚˜๋กœ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์ด ์ƒ˜ํ”Œ ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์ฃผ ๋ชฉ์ ์ด์—ˆ์ง€๋งŒ ์ง€๊ธˆ์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๋‚˜ ์žฌ๋ฃŒ๋ฅผ ์Šค์บํด๋”ฉํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

๋นŒ๋“œ ๋ฐ ํƒœ์Šคํฌ ์ž๋™ํ™” ๋„๊ตฌ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋นŒ๋“œํ•˜๋ ค๋ฉด ์ฝ”๋“œ ํ’ˆ์งˆ ๊ฒ€์ฆ, ๋ฌธ์„œํ™”, ํŒŒ์ผ ์••์ถ• ๋“ฑ์„ ํ•ด์•ผ ํ•œ๋‹ค. ๋งŒ์•ฝ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด ํ…Œ์ŠคํŠธ ์—ญ์‹œ ํ•„์ˆ˜๋กœ ํ•ด์•ผ ํ•œ๋‹ค.

๋นŒ๋“œ ๋„๊ตฌ

Uglify.js

Uglify.js๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์••์ถ•, ๋‚œ๋…ํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋ฉฐ ์›น์—์„œ๋„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

JSDoc3 ๋ฌธ์„œํ™”

JSDoc3๋Š” ๋ฌธ์„œํ™” ๋„๊ตฌ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ๋ฐ, JavaDoc๊ณผ ๋น„์Šทํ•œ ํ˜•์‹์˜ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ์„œํ™” ๋„๊ตฌ๋‹ค. ์ด ๋„๊ตฌ๋Š” Netscap Communications Coporation์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๊ณ  ๋ชจ์งˆ๋ผ ์žฌ๋‹จ์—์„œ ์ด์–ด๋ฐ›์•„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์˜คํ”ˆ ์†Œ์Šค ๊ตฌํ˜„์ฒด ํ”„๋กœ์ ํŠธ Rhino์—์„œ 1999๋…„ ์ฒ˜์Œ ๊ณต๊ฐœํ–ˆ๋‹ค. ์ตœ์ดˆ์˜ JSDoc์€ JavaDoc์˜ ๊ตฌ๋ฌธ๊ณผ ๊ฑฐ์˜ ๋น„์Šทํ–ˆ์œผ๋‚˜ ์ ์  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋™์ ์ธ ๋™์ž‘์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํŠนํ™”๋˜๋ฉด์„œ ๋งŽ์€ ๋ถ€๋ถ„์ด ๋‹ฌ๋ผ์กŒ๋‹ค.

ํƒœ์Šคํฌ ์ž๋™ํ™” ๋„๊ตฌ

Grunt

Grunt๋Š” ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ ๋ถ„์•ผ์—์„œ๋Š” ์ž˜ ์•Œ๋ ค์ง„ ํƒœ์Šคํฌ ์ž๋™ํ™” ๋„๊ตฌ๋‹ค. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๋ถ€ํ„ฐ ๋นŒ๋“œ ๋ฐฐํฌ๊นŒ์ง€ ๋Œ€๋ถ€๋ถ„์˜ ์ž‘์—…์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค€๋‹ค. Node.js ๊ธฐ๋ฐ˜์ด๋ฉฐ ์ˆ˜๋งŽ์€ Grunt ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ด์šฉํ•ด ์†์‰ฝ๊ฒŒ ํƒœ์Šคํฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

Clone this wiki locally