๐Ÿคฎ ์ฝ”๋”ฉ์ดˆ์งœ ์ฝ”์นญ ํ”„๋กœ์ ํŠธ - (1) ์ปดํฌ๋„ŒํŠธ

Taurineยท2022๋…„ 1์›” 30์ผ

์‹œ์ž‘ํ•˜๋ฉฐ...

๊ฐฑ์ƒ ํƒ€๊ฒŸ

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

์‰ฝ์ง€ ์•Š๋„ค ๐Ÿ˜…๐Ÿ˜…๐Ÿ˜…

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

๋งˆ์ง€๋ง‰ ๋„์ „

  • ๊ทธ๋ž˜๋„ ๋งˆ์ง€๋ง‰ ๋„์ „์„ ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค!
  • ํŽ˜์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ์•„๋‹ˆ๋ผ ์ข€๋น„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ... ํ•ด๋ณด๊ธฐ๋กœ
    (์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋‚ด๊ฐ€ ์˜†์—์„œ ์ž…์ฝ”๋”ฉํ•˜๊ณ , ์‚ฌ์ดŒํ˜•์ด ์†์ฝ”๋”ฉํ•˜๋Š” ๋ฐฉ์‹)
  • ๋งŒ์•ฝ ์ด๊ฒƒ๋งˆ์ ธ ์•ˆ๋˜๋ฉด ์•„๋งˆ๋„ ์ฒ˜์Œ์ด์ž ๋งˆ์ง€๋ง‰ ํฌ์ŠคํŒ…์ด ๋  ๋“ฏ... ใ…‹ใ…‹ใ…‹

์žฌ๋„์ „ ์ „์— ํ–ˆ๋˜ ๊ณ ๋ฏผ๋“ค

  • ์ง€๊ธˆ ๋‹น์žฅ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ด๋ก ์€ ์•Œ๋ ค์ฃผ์ง€ ์•Š๋Š”๋‹ค..
    (์ด๋ก  ์ฃผ์ž…์€ ํฅ๋ฏธ๋ฅผ ๋–จ์–ด๋œจ๋ฆฌ๊ณ  ์ŠคํŠธ๋ ˆ์Šค๋ฅผ ๋ถ€๊ณผํ•จ.)
  • ์ตœ๋Œ€ํ•œ ๋ฐ”๋กœ๋ฐ”๋กœ ์จ๋จน์„ ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋งŒ ์ œ๊ณต!
    (์—ฐ๊ฒฐ์ง€์–ด์„œ ์ดํ•ด์‰ฌ์šด ์ •๋ณด ๊ทธ๋•Œ๊ทธ๋•Œ ์ œ๊ณตํ•˜๊ธฐ~)
    (ํƒ€์ด๋ฐ๋„ ์ค‘์š”ํ•˜๊ณ , ๋ถ„๋Ÿ‰๋„ ์ค‘์š”ํ•˜๋‹ค. ์ ์ ˆํ•œ ํƒ€์ด๋ฐ์— ์ ์ ˆํ•œ ๋ถ„๋Ÿ‰์„)
  • ์š” ๋‘๊ฐ€์ง€ ๊ณ ๋ฏผ์„ ์ปค๋ฆฌํ˜๋Ÿผ์— ๋ฐ˜์˜ํ•ด์„œ ๊ณ ์•ˆํ•œ ๊ฒƒ์ด ์ข€๋น„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ. ๋‚ด๊ฐ€ ๋งŒ๋“œ๋Š” ๊ณผ์ •์„ ์ž…์œผ๋กœ ์ „๋‹ฌํ•˜๊ณ  ์‚ฌ์ดŒํ˜•์ด ์ดํ•ดํ•ด์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ.
  • ์ค‘์š”ํ•œ๊ฑด ์ง€์‹์„ ์ „๋‹ฌํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋Š” ๊ทผ์œก์„ ๊ธธ๋Ÿฌ์ฃผ๋Š” ๊ฒƒ์ด๊ณ , ๊ฑฐ๊ธฐ์— ๋‚˜์˜ ์ข‹์€ ์Šต๊ด€๋“ค์„ ์ถ”๊ฐ€์ ์œผ๋กœ ์ด์‹ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•œ๊ฒƒ! ๊ทธ๋ ‡๋‹ค๋ฉด ๋‚ด๊ฐ€ ํ•˜๋Š” ๊ทธ๋Œ€๋กœ ํ•œ๋‹ฌ์—ฌ๊ฐ„ ๋ญ”๊ฐ€๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š”๊ฒŒ ์ตœ์„ ์˜ ๋ฐฉ๋ฒ•์ด ์•„๋‹๊นŒ ํ•˜๋Š” ์ƒ๊ฐ. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฑธ๋กœ ์–ด๋–ป๊ฒŒ ์ด์ฐฉ๋ฅ  ํ• ๊ฑด์ง€๋Š” ๋‹ค์Œ๋‹จ๊ณ„!



์ˆ˜์—… ์‹œ์ž‘~!

๋“ค์–ด๊ฐ€๊ธฐ

  • ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ• (react)
  • ๋ฒ„ํŠผ, ์ž…๋ ฅ์ฐฝ, ํ…์ŠคํŠธ ๋งŒ๋“ค์–ด๋ณด๊ธฐ

node

  • ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œ์ผœ์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ (aka ๋Ÿฐํƒ€์ž„)
    (์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” JavaScript๋ผ๋Š” ์ฝ”๋“œ)
  • ์š”๋ฆฌ๋กœ ์ ‘์† => https://nodejs.org/ko/
  • lts ๋ฒ„์ „ ๋‹ค์šด๋กœ๋“œ, ์••์ถ•ํ’€๊ณ , pkgํŒŒ์ผ ์„ค์น˜ํ•ด๋ผ
  • terminal ์—ด์–ด์„œ, node -v ์ž…๋ ฅํ•ด์„œ ์„ค์น˜ํ™•์ธ

npm

  • ๋‹ค์–‘ํ•œ ๊ฐœ๋ฐœ์— ๋„์›€๋˜๋Š” ๋„๊ตฌ๋“ค ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Œ (aka ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €)
  • ํ„ฐ๋ฏธ๋„ ์—ด๊ณ 
    • sudo npm install -g create-react-app
      : ๋ฆฌ์•กํŠธ ์•ฑ ๋งŒ๋“ค์–ด์ฃผ๋Š” ํŒจํ‚ค์ง€ ์„ค์น˜
    • create-react-app -V
      : ์„ค์น˜ ํ™•์ธ
  • ๊ฐœ๋ฐœ ์ง„ํ–‰ํ•  ํด๋” ๋งŒ๋“ค๊ณ  ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ ์ด๋™
    • cd
      : change directory (๊ฒฝ๋กœ์ด๋™)
    • ls
      : list segments (ํŒŒ์ผ๋ชฉ๋ก)
    • create-react-app .
      : ๊ฐœ๋ฐœ ์ง„ํ–‰ํ•  ํด๋”์— ๋ฆฌ์•กํŠธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ดˆ๊ธฐํ™”

VS Code

  • ์ฝ”๋“œ ์ž‘์„ฑ, ์‹คํ–‰, ๋””๋ฒ„๊ทธ, ๋ฐฐํฌ ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ (aka ํ†ตํ•ฉ๊ฐœ๋ฐœํ™˜๊ฒฝ ~ IDE)
    • ์š”๊ธฐ๋กœ ์ ‘์† => https://code.visualstudio.com/
    • ์„ค์น˜ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ ํด๋” ์—ด๊ธฐ
    • ํ„ฐ๋ฏธ๋„ ์—ด๊ณ  npm start, ์›น ๊ฐ€๋™์‹œ์ผœ๋ณด๊ธฐ

react

  • ํŽ˜์ด์Šค๋ถ์ด ์›นํŽ˜์ด์ง€ ๊ฐœ๋ฐœ ์‰ฝ๊ณ  ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•˜๋ ค๊ณ  ๋งŒ๋“  ๊ฐœ๋ฐœ๋„๊ตฌ๋ชจ์Œ (aka ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)
  • ์ฝ”๋”ฉ = ์ž‘๊ณ  ๊ฐ„๋‹จํ•œ ๋ ˆ๊ณ ๋ธ”๋Ÿญ ์กฐ๋ฆฝํ•ด์„œ ํฌ๊ณ  ๋ณต์žกํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“œ๋Š”๊ฑฐ
  • ์„ธ๊ฐ€์ง€ ์ฃผ์š”ํ•œ ๋ถ€ํ’ˆ์œ ํ˜•
    • ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„ ํ™”๋ฉด (component)
    • ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„ ๋ฐ์ดํ„ฐ (props, state)
    • ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉ ์ด๋ฒคํŠธ
  • ๋ณต์žกํ•˜๊ฒŒ ๋ณด์ด์ง€๋งŒ ์‚ฌ์‹ค์€ ๊ฐ„๋‹จํ•จ. ์ฒ˜์Œ์—๋Š” ํ•„์š”ํ•œ๊ฑฐ๋งŒ ์•Œ๋ฉด๋จ. ๋‹ค๋ฅธ๊ฒƒ ์‹ ๊ฒฝ๊บผ๋„ ๋ฌธ์ œ์—†์Œ.
    • index.js / ์‹œ์ž‘์ 
    • index.css / ์•ˆ์— ์žˆ๋Š” ๋‚ด์šฉ ๋‹ค ์ง€์šฐ๊ธฐ
    • app.js / div ์•ˆ์—์žˆ๋Š” ๋‚ด์šฉ ๋‹ค ์ง€์šฐ๊ธฐ
    • app.css / ์•ˆ์— ์žˆ๋Š” ๋‚ด์šฉ ๋‹ค ์ง€์šฐ๊ธฐ

Component

  • ๊ธฐ๋ณธ ์ปดํฌ๋„ŒํŠธ ์จ๋ณด๊ธฐ
  • ๋ฒ„ํŠผ
  • ์ž…๋ ฅ์ฐฝ
  • ํ…์ŠคํŠธ

์—ฌ๊ธฐ ๋ฆฌ๋‰ด์–ผ ํ•„์š”


vscode ํ™•์žฅํˆด

  • ๊ฐœ๋ฐœ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋„๊ตฌ๋“ค
  • prettier : ์ฝ”๋“œ ํ˜•์‹ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌํ•ด์คŒ.
  • eslint : ์ฝ”๋“œ ๋ฌธ๋ฒ• ํ‹€๋ฆฐ ๋ถ€๋ถ„ ์ฒดํฌํ•ด์คŒ.
  • path intellisense : ๊ฒฝ๋กœ ์ž๋™ ์„ ํƒ์ง€ ์ œ๊ณต.
  • auto close tag : html ํƒœ๊ทธ ์ž๋™์œผ๋กœ ๋‹ซ์•„์คŒ
  • auto rename tag : html ํƒœ๊ทธ ์ž๋™์œผ๋กœ ๋ฐ”๊ฟ”์คŒ

๊ฐ„๋‹จ ์ˆ˜์—…์ค€๋น„

  • ๋ฒจ๋กœ๊ทธ๊ฐ€ ๋งŒ๋“ค์–ด์ค€ ๋งˆํฌ๋‹ค์šด ํ™”๋ฉด์„ ๊ณ ๋Œ€๋กœ ์Šค์ƒท์ฐ์–ด์„œ ํŒŒ์›Œํฌ์ธํŠธ๋กœ ๊ฐ•์˜์•ˆ ๋งˆ๋ จ

๋‚˜๊ฐ€๊ธฐ

  • ์•„ ๊ทธ๋ž˜๋„ ์ด์ •๋„๋ฉด ์„ ๋ฐฉํ–ˆ๋‹ค. ํ• ๋งŒํ•˜๋‹ค๊ณ ~~~
  • ์ด๋ฒˆ์ฃผ ์„ค์—ฐํœด! ์›”์šœ ํ™”์šœ๋„ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ํ–ˆ๊ตฌ.
  • ์›”์šœ์€ ํ™”๋ฉด ์ „ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ
  • ํ™”์šœ์€ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ
  • ๋งŒ์กฑ๋งŒ์กฑ๋งŒ์กฑ~~

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