[React] ์„ค์น˜

XIXIยท2022๋…„ 6์›” 24์ผ
0

๋Œ€๊ตฌAI์Šค์ฟจ

๋ชฉ๋ก ๋ณด๊ธฐ
42/57
post-thumbnail

๐ŸŒฑ React

โœ๏ธ๊ฐœ๋…

  • ํ”„๋ŸฐํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ ์ค‘ ํ•˜๋‚˜
  • ๋ฆฌ์•กํŠธ(React), ์•ต๊ทค๋Ÿฌ(Angular), ๋ทฐ์ œ์ด์—์Šค(Vue.js)

โœ๏ธ์žฅ์ 

  • ํŽ˜์ด์Šค ๋ถ ๊ฐœ๋ฐœ์— ์‚ฌ์šฉํ•œ ๊ธฐ์ˆ 

  • ๊ณต๊ฐœ ์†Œํ”„ํŠธ์›จ์–ด

  • ํ™”๋ฉด ์ถœ๋ ฅ์— ํŠนํ™”๋œ ํ”„๋ ˆ์ž„์›Œํฌ

  • ์ปดํฌ๋„ŒํŠธ ์กฐ๋ฆฝํ•˜์—ฌ ํ™”๋ฉด ๊ตฌ์„ฑ

  • ๊ฒŒ์ž„ ์—”์ง„ ์›๋ฆฌ ๋„์ž…ํ•ด ํ™”๋ฉด ์ถœ๋ ฅ ์†๋„๊ฐ€ ๋น ๋ฆ„(Virtual Dom)

โœ๏ธ์‹ค์Šต ํ•„์ˆ˜ ๋„๊ตฌ

  • ๋…ธ๋“œ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €(npm) : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ

โœ๏ธ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ

  • ์›นํŒฉ(Web Pack): ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉ๋œ ํŒŒ์ผ ๋ถ„์„ํ•ด ๊ธฐ์กด ์›น ๋ฌธ์„ ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋„๊ตฌ
  • ๊ฐ„๋‹จํ•œ ๋…ธ๋“œ ๊ธฐ๋ฐ˜ ์›น ์„œ๋ฒ„ ๊ตฌ๋™

โœ๏ธํ™˜๊ฒฝ ์„ค์ •

  • Node.js ํ™•์žฅ์„ฑ ์žˆ๋Š” ๋„คํŠธ์›Œํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ์‚ฌ์šฉ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ํ”Œ๋žซํผ. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ™œ์šฉ
  • ์—๋””ํ„ฐ(VS Code)
  • ์›น ๋ธŒ๋ผ์šฐ์ €(ํŒŒ์ด์–ดํญ์Šค)

๐ŸŒฑ Nodejs ์„ค์น˜ํ•˜๊ธฐ

โœ๏ธ๊ฒฝ๋กœ

  • https://nodejs.org/en/

  • recommanded for most users ์„ค์น˜

  • https://github.com/coreybutler/nvm-windows/releases

  • Nvm-setup.zip ๋‹ค์šด๋กœ๋“œ

  • ์„ค์น˜ ํ›„ ๋ช…๋ นํ”„๋กฌํ”„ํŠธ์—์„œ(๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰)

  • nvm โ€“v

  • nvm install 16.15.1

  • nvm use 16.15.1

  • node -v

npm์ด๋ž€?ย : Node Package Manager์˜ ์•ฝ์ž์ด๋‹ค. NodeJS๋กœ ๊ฐœ๋ฐœ๋œ ๋ชจ๋“ˆ๋“ค์„ ์„ค์น˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ ธ์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ HTML CSS ์ˆ˜์—…์—์„œ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์ด ํ•„์š”ํ•˜๋ฉด ๊ฐ€์ ธ๋‹ค ์ผ๋˜ ๊ฒƒ ์ฒ˜๋Ÿผ node.js๋กœ ๋งŒ๋“ค์–ด์ง„ ์œ ์šฉํ•œ ๋ชจ๋“ˆ๋“ค์„ ๊ฐ€์ ธ๋‹ค ์“ฐ๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

โœ๏ธํ”„๋กœ์ ํŠธ ์‹œ์ž‘ํ•˜๊ธฐ

  • ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค์น˜ํ•˜๊ณ ์‹ถ์€ ๊ฒฝ๋กœ๋กœ ๋จผ์ € ์ด๋™ํ•˜๊ธฐ.

  • npx create-react-app ํด๋”๋ช…

  • Happy hacking ๋ฉ”์‹œ์ง€ ๋‚˜์˜ค๋ฉด ์„ค์น˜ ์™„๋ฃŒ

  • code .์œผ๋กœ ํ”„๋กœ์ ํŠธ ์—ด๊ธฐ

  • npm start ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰

๐ŸŒฑ SPA

โœ๏ธ๊ฐœ๋…

Single Page Application์˜ ์ค€๋ง ์ฆ‰ ํŽ˜์ด์ง€๊ฐ€ ํ•˜๋‚˜๋ผ๋Š” ๋œป.
ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€ ์•ˆ์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋‚˜ ์ •๋ณด๋งŒ ๋™์ ์œผ๋กœ ๊ทธ๋ ค์ค€๋‹ค.
์ฆ‰, ์ƒˆ ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐˆ๋•Œ๋งˆ๋‹ค ์„œ๋ฒ„์—์„œ HTML CSS JS ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ฌ ํ•„์š”๊ฐ€ ์—†์–ด ์ƒˆ๋กœ๊ณ ์นจ์ด ํ•„์š”์—†๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌผ ํ๋ฅด๋“ฏ ๋Š๊น€์—†๋Š” ์›น์•ฑ ๊ฒฝํ—˜์„ ์„ ์‚ฌํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.
๋‹จ์ ์€ ์ฒ˜์Œ์— ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ค ๊ฐ€์ ธ์™€์•ผ ํ•ด์„œ ์ดˆ๊ธฐ ๊ตฌ๋™ ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค.
๋ฆฌ์•กํŠธ๋Š” ์ด๋Ÿฐ SPA์˜ ํ˜•์‹.

โœ๏ธVS ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜

reactjs code snippets

โœ๏ธ๋ฆฌ์•กํŠธ ํŒŒ์ผ ๊ตฌ์กฐ

  • node_modules : ํ•ด๋‹นํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ €์žฅ
  • public : ์ •์  ํŒŒ์ผ์„ ๋„ฃ๋Š” ๋””๋ ‰ํ† ๋ฆฌ(html ํŒŒ์ผ, img๋“ฑ)
  • Srcํด๋”์— ์ฝ”๋“œ์˜ ๋Œ€๋ถ€๋ถ„์ด ๋“ค์–ด ๊ฐ(index.js, ๋ฆฌ์•กํŠธ ์ปดํฌํ„ดํŠธ ๊ฐ™์€ jsํŒŒ์ผ, cssํŒŒ์ผ ๋“ฑ)
  • Components : pages์—์„œ ์‚ฌ์šฉํ•  ์ปดํฌ๋„ŒํŠธ๋“ค์ด ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค.
  • pages : app.js ํŒŒ์ผ์—์„œ react-router-dom์„ ์‚ฌ์šฉํ•ด์„œ ๋‚˜๋ˆˆ ๋ผ์šฐํŒ…์˜ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์—ฌ๊ธฐ์— ์ •๋ฆฌ
  • src/app.js ํŒŒ์ผ๋กœ ์‹œ์ž‘

๐ŸŒฑ ์ปดํฌ๋„ŒํŠธ

  • JSX = JavaScript + XML
  • ํ•˜๋‚˜์˜ ํŒŒ์ผ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ HTML์„ ๋™์‹œ์— ์ž‘์„ฑ

โœ๏ธ๊ฐœ๋…

๋ทฐ - ์ปจํŠธ๋กค๋Ÿฌ - ๋ชจ๋ธ : ์šฐ๋ฆฌ๋Š” ์„œ๋กœ ๊ผญ ๋ถ™์–ด ์žˆ์–ด์•ผ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ด์š”.
์ปดํฌ๋„ŒํŠธ : ๊ทœ๊ฒฉ๋งŒ ๋งž์œผ๋ฉด ์„œ๋กœ ์—ฐ๊ฒฐ ํ•  ์ˆ˜ ์žˆ์–ด์š”.

โœ๏ธ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“ค์‹œ ์ฃผ์˜์‚ฌํ•ญ

  • ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„์€ ๋ฐ˜๋“œ์‹œ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘
  • ์ปดํฌ๋„ŒํŠธ์™€ ์ผ๋ฐ˜ HTML ํƒœ๊ทธ๋ฅผ ๊ตฌ๋ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํƒœ๊ทธ๊ฐ€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š”์ง€ ์—ฌ๋ถ€
  • ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋ฉด ์ผ๋ฐ˜ HTML ํƒœ๊ทธ๋กœ ๋ถ„๋ฅ˜
  • ๋ฐ˜๋“œ์‹œ ์ฒซ ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ ํ•จ

โœ๏ธbox๊ฐ’ ๋ณ€๊ฒฝ

  • props : ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๊ฐ™์€ ์กด์žฌ

โœ๏ธ๋ฒ„ํŠผํด๋ฆญ ์‹œ ์ˆซ์ž ์ฆ๊ฐ€

  • state ์‚ฌ์šฉ
  • ํŠน์„ฑ : ๋น„๋™๊ธฐ

๐Ÿƒ ์–ด๋ ค์› ๋˜ ์  or ํ•ด๊ฒฐ๋ชปํ•œ ๊ฒƒ

์„ค์น˜์— ์–ด๋ ค์›€์„ ๋Š๋‚Œ

๐Ÿ€ ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ์ž‘์„ฑ

โœ๏ธ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐ์„ ํ–ˆ๋Š”๊ฐ€?
โœ๏ธ ์ด๋ ‡๊ฒŒ ์ดํ•ด๋ฅผ ํ–ˆ๋‹ค
โœ๏ธ ์–ด๋””๊นŒ์ง€ ์ดํ•ดํ–ˆ์ง€?
โœ๏ธ ๋‹ค์Œ์— ์‹œ๋„ํ•ด๋ณผ ๋ฐฉ๋ฒ•
์„ค์น˜ ๋ฐฉ๋ฒ•์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ์‚ดํŽด๋ด์•ผ๊ฒ ๋‹ค.

๐ŸŒท ํ•™์Šต ์†Œ๊ฐ

ํ™•์‹คํžˆ ์„ค์น˜์— ๋งŽ์€ ์–ด๋ ค์›€์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

profile
Life is experience:)

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