๐Ÿ” [์ง๋ฌด ๊ด€๋ จ ์งˆ๋ฌธ] - 01. ํ”„๋ŸฐํŠธ์—”๋“œ ๋นŒ๋“œ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด๋ณด์„ธ์š”.

์กฐ์ค€ํ˜•ยท2021๋…„ 6์›” 18์ผ
3

interview

๋ชฉ๋ก ๋ณด๊ธฐ
6/20
post-thumbnail

๐Ÿ’ฌ Answer

๐ŸŒ ํ”„๋ŸฐํŠธ์—”๋“œ ๋นŒ๋“œ ์‹œ์Šคํ…œ

๐Ÿ‘‰ ๋ฐ”๋ฒจ์ด๋ž€?

  • ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ตœ์‹  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ด์„œ, babel์ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€ํ™˜ํ•ด ์ค๋‹ˆ๋‹ค.
  • ์ฆ‰, ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ํŒŒ์‹ฑ(Parsing) - ๋ณ€ํ™˜(Transforming) - ์ถœ๋ ฅ(Printing)๋‹จ๊ณ„๋กœ ๋นŒ๋“œ๋ฅผ ์ง„ํ–‰.
    ์ฝ”๋“œ๋ฅผ ์ฝ๊ณ , ์ถ”์ƒ ๊ตฌ๋ฌธํŠธ๋ฆฌ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ์ถ”์ƒ ๊ตฌ๋ฌธ ํŠธ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝ, ๊ทธ๋ฆฌ๊ณ  ๋ณ€๊ฒฝ๋œ ๊ฒฐ๊ณผ๋ฌผ์„ ์ถœ๋ ฅํ•œ๋‹ค.
  • ๋ฐ”๋ฒจ์€ ํŒŒ์‹ฑ๊ณผ ์ถœ๋ ฅ์„ ๋‹ด๋‹นํ•˜๊ณ , ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋ณ€ํ™˜์„ ๋‹ด๋‹น.
  • ๋ฐ”๋ฒจ ํ”Œ๋Ÿฌ๊ทธ์ธ(plugin)์€ ๋ฐ”๋ฒจ์ด ์–ด๋–ค ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ณ€ํ™˜ํ•  ์ง€์— ๋Œ€ํ•œ ๊ทœ์น™์„ ๋‚˜ํƒ€๋ƒ„.

๐Ÿ‘‰ ํด๋ฆฌํ•„์ด๋ž€?

  • ์ตœ์‹  ECMAScript ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ํ™˜๊ฒฝ์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋นŒํŠธ์ธ, ๋ฉ”์†Œ๋“œ ๋“ฑ์„ ์ถ”๊ฐ€ํ•˜๋Š” ์—ญํ• .
  • ๋ฐ”๋ฒจ์€ ES6+๋ฅผ ES5๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค๋งŒ ๋ณ€ํ™˜ํ•˜๋Š”๋ฐ, Promise๊ฐ™์ด ES5์— ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š”๊ฒŒ ์—†์œผ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
    => ์ด๋Ÿฐ ๊ฒฝ์šฐ ํด๋ฆฌํ•„์„ ํ†ตํ•ด ์ด์Šˆ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ES5๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜์—ฌ ํ•ด๊ฒฐ.

๐Ÿ‘‰ Node.js์ด๋ž€?

  • Javascript ๋Ÿฐํƒ€์ž„์ด๋‹ค.
  • ๋Ÿฐํƒ€์ž„์ด๋ž€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ๊ตฌ๋™๋˜๋Š” ํ™˜๊ฒฝ
  • REPL(Read, Eval, Print, Loop)์„ ํ†ตํ•ด์„œ ๋Ÿฐํƒ€์ž„์„ ์ œ๊ณตํ•œ๋‹ค.
    Read: ์œ ์ €์˜ ์ž…๋ ฅ ๊ฐ’์„ ๋ฐ›์•„์„œ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ
    Eval: ์ž…๋ ฅ ๊ฐ’์˜ ํ‰๊ฐ€, ์‹คํ–‰
    Print: Eval๋กœ ์ธํ•ด ๋ฐ˜ํ™˜๋œ ๊ฐ’์„ ์ถœ๋ ฅ
    Loop: 1~3์„ ๋ฐ˜๋ณต.
  • REPL๋ณด๋‹ค๋Š” ๋”ฐ๋กœ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉ.

๐Ÿ‘‰ NPM์ด๋ž€?

  • Node Package Manager
  • Node.js๋กœ ๋งŒ๋“ค์–ด์ง„ ๋ชจ๋“ˆ์„ ์›น์—์„œ ๋ฐ›์•„์„œ ์„ค์น˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ
  • package.jsonํŒŒ์ผ์—์„œ ์„ค์น˜๋œ ๋ชฉ๋ก ๋ฐ ๋ฒ„์ „ํ™•์ธ์ด ๊ฐ€๋Šฅ.

๐Ÿ‘‰ ESLint๋ž€?

  • JavaScript์ฝ”๋“œ์—์„œ ๋ฐœ๊ฒฌ๋œ ๋ฌธ์ œ ํŒจํ„ด์„ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์ •์  ์ฝ”๋“œ ๋ถ„์„ ๋„๊ตฌ.
  • ์˜ˆ๋ฅผ ๋“ค์–ด end-tag๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์•˜๋‹ค๋ฉด end-tag๋ฅผ ์ถ”๊ฐ€ํ•˜๋ผ๋Š” ๋ฉ”์„ธ์ง€๊ฐ€ ๋œฌ๋‹ค.
  • ์ฆ‰, ๋ฌธ๋ฒ•์— ๋งž๊ฒŒ ์ฝ”๋“œ๋ฅผ ์งค ์ˆ˜ ์žˆ๋„๋ก ๋„์›€๋ง ์—ญํ• ์„ ํ•ด์ค€๋‹ค.

๐Ÿ‘‰ Prettier๋ž€?

  • VSCode Extension์ค‘ ํ•˜๋‚˜.
  • ์ •ํ•ด์ง„ ๊ทœ์น™์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ์ฝ”๋“œ ์Šคํƒ€์ผ์„ ์ •๋ฆฌ ํ•ด์ฃผ๋Š” ๋„๊ตฌ.
  • ๊ณต๋ฐฑ์„ 4์นธ์œผ๋กœ ์„ค์ •ํ–ˆ๋‹ค๋ฉด tab๋ˆ„๋ฅผ ์‹œ 4์นธ์”ฉ ์ด๋™ํ•จ.

๐Ÿ‘‰ ์›น ํƒœ์Šคํฌ ๋งค๋‹ˆ์ €๋ž€?

  • ์ฝ”๋“œ ์ˆ˜์ •๋’ค ์ €์žฅํ•˜๊ณ , ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ƒˆ๋กœ๊ณ ์นจ์„ ๋ˆŒ๋Ÿฌ์•ผ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
  • ์›น ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ๋ฐฐํฌ์‹œ html, css, js๋“ฑ ํŒŒ์ผ์„ ์••์ถ•ํ•˜๊ฑฐ๋‚˜ ๋ณ€ํ™˜ํ•ด์•ผ ํ–ˆ๋‹ค.
    => ์ด๋Ÿฌํ•œ ์ผ์„ ์ž๋™ํ™” ํ•ด์ฃผ๋Š” ๋„๊ตฌ
  • Grunt์™€ Gulp๊ฐ™์€ ๋„๊ตฌ๋“ค.

๐Ÿ“˜ ์ฐธ๊ณ 

https://devowen.com/293
https://perfectacle.github.io/2017/06/18/what-is-node-js/
https://m.blog.naver.com/magnking/220961896609
https://velog.io/@bab_bury/React-ESLint-Prettier-์„ค์น˜-๋ฐ-์„ค์ •
https://joshua1988.github.io/webpack-guide/motivation/why-webpack.html#ํŒŒ์ผ-๋‹จ์œ„์˜-์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ-๋ชจ๋“ˆ-๊ด€๋ฆฌ

profile
๊นƒํ—ˆ๋ธŒ : github.com/JuneHyung

1๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2021๋…„ 12์›” 6์ผ

ํ”„๋ก ํŠธ์—”๋“œ ๋ฉด์ ‘ ์ค€๋น„ ์ค‘์ธ๋ฐ ์ž˜ ๋ณด๊ณ  ๊ฐ‘๋‹ˆ๋‹ค~

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ