We want to hear from you!Take our 2021 Community Survey!
This site is no longer updated.Go to react.dev

์ƒˆ๋กœ์šด React ์•ฑ ๋งŒ๋“ค๊ธฐ

These docs are old and wonโ€™t be updated. Go to react.dev for the new React docs.

See Start a New React Project for the recommended ways to create an app.

์ตœ๊ณ ์˜ ์‚ฌ์šฉ์ž์™€ ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜์„ ์œ„ํ•ด ํ†ตํ•ฉ๋œ ํˆด์ฒด์ธ์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

์ด ํŽ˜์ด์ง€์—์„œ๋Š” ๋„์›€์ด ๋˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์ธ๊ธฐ ์žˆ๋Š” React ํˆด์ฒด์ธ์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

  • ๋งŽ์€ ํŒŒ์ผ๊ณผ ์ปดํฌ๋„ŒํŠธ ์Šค์ผ€์ผ๋ง
  • ์„œ๋“œ ํŒŒํ‹ฐ npm ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ
  • ์ผ๋ฐ˜์ ์ธ ์‹ค์ˆ˜๋ฅผ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌ
  • CSS์™€ JS๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํŽธ์ง‘
  • ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ ์ตœ์ ํ™”

์ด ํŽ˜์ด์ง€์—์„œ ์ถ”์ฒœํ•˜๋Š” ํˆด์ฒด์ธ์€ ์‹œ์ž‘ํ•˜๋Š”๋ฐ, ๋ณ„๋„์˜ ํ™˜๊ฒฝ์„ค์ •์ด ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.

ํˆด์ฒด์ธ์ด ํ•„์š”ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์—์„œ ์„ค๋ช…ํ•œ ๋ฌธ์ œ๋ฅผ ๊ฒฝํ—˜ํ•˜์ง€ ๋ชปํ–ˆ๊ฑฐ๋‚˜ ์•„์ง JavaScript ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํŽธํ•˜์ง€ ์•Š๋‹ค๋ฉด, React๋ฅผ HTML ํŽ˜์ด์ง€์—์„œ ์ผ๋ฐ˜์ ์ธ <script> ํƒœ๊ทธ์— ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ JSX๋ฅผ ๊ณ ๋ คํ•˜์„ธ์š”.

์ด ๋ฐฉ๋ฒ•์ด ์ œ์ผ ์‰ฝ๊ฒŒ React๋ฅผ ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ์›น์‚ฌ์ดํŠธ์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์–ธ์ œ๋‚˜ ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์œผ๋ฉด ๋” ๋งŽ์€ ํˆด์ฒด์ธ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

React ํŒ€์˜ ์ถ”์ฒœ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค

  • React๋ฅผ ๋ฐฐ์šฐ๊ณ  ์žˆ๊ฑฐ๋‚˜ ์•„๋‹ˆ๋ฉด ์ƒˆ๋กœ์šด ์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์•ฑ์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด Create React App.
  • ์„œ๋ฒ„ ๋ Œ๋”๋ง Node.js ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ๋‹ค๋ฉด Next.js์„ ์‹œ๋„ํ•ด๋ณด์„ธ์š”..
  • ๊ณ ์ •์ ์ธ ์ฝ˜ํ…์ธ  ์ง€ํ–ฅ์  ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ๋‹ค๋ฉด Gatsby๋ฅผ ์‹œ๋„ํ•ด๋ณด์„ธ์š”..
  • ์ปดํฌ๋„ŒํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜น์€ ์ด๋ฏธ ์žˆ๋Š” ์ฝ”๋“œ ๋ฒ ์ด์Šค์— ํ†ตํ•ฉ์„ ํ•œ๋‹ค๋ฉด ๋” ์œ ์—ฐํ•œ ํˆด์ฒด์ธ.

Create React App

Create React App์€ React ๋ฐฐ์šฐ๊ธฐ์— ๊ฐ„ํŽธํ•œ ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹œ์ž‘ํ•˜๊ธฐ์— ์ตœ๊ณ ์˜ ๋ฐฉ๋ฒ•์€ ์ƒˆ๋กœ์šด ์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๊ณ , ์ตœ์‹  JavaScript๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•ด์ฃผ๋ฉฐ, ์ข‹์€ ๊ฐœ๋ฐœ ๊ฒฝํ—˜๊ณผ ํ”„๋กœ๋•์…˜ ์•ฑ ์ตœ์ ํ™”๋ฅผ ํ•ด์ค๋‹ˆ๋‹ค. Node 14.0.0 ํ˜น์€ ์ƒ์œ„ ๋ฒ„์ „ ๋ฐ npm 5.6 ํ˜น์€ ์ƒ์œ„ ๋ฒ„์ „์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

npx create-react-app my-app
cd my-app
npm start

์ฃผ์˜

์ฒซ ๋ฒˆ์งธ ์ค„์˜ โ€˜npxโ€™๋Š” ์‹ค์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ฉฐ npm 5.2+ ๋ฒ„์ „์˜ ํŒจํ‚ค์ง€ ์‹คํ–‰ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

Create React App ์€ ๋ฐฑ ์•ค๋“œ ๋กœ์ง์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Create React App ์€ ํ”„๋ŸฐํŠธ ์•ค๋“œ ๋นŒ๋“œ ํŒŒ์ดํ”„๋ผ์ธ๋งŒ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์›ํ•˜๋Š” ์–ด๋–ค ๋ฐฑ์—”๋“œ์™€๋„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Create React App๋Š” Babel์ด๋‚˜ webpack๊ฐ™์€ build ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋‚˜, ์„ค์ • ์—†์ด๋„ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ๋•์…˜์„ ๋ฐฐํฌํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์„ ๋•Œ, npm run build ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด build ํด๋” ์•ˆ์— ์ œ์ž‘ํ•œ ์•ฑ์˜ ์ตœ์ ํ™”๋œ Build๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. README ๋‚˜ ์‚ฌ์šฉ์ž ๊ฐ€์ด๋“œ์—์„œ ๋” ์ž์„ธํ•œ ์‚ฌํ•ญ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Next.js

Next.js๋Š” ์ธ๊ธฐ ์žˆ๋Š” ๊ฒฝ๋Ÿ‰์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ React๋กœ ๋งŒ๋“ค์–ด์ง„ ์Šคํƒœํ‹ฑ ์„œ๋ฒ„ ๋ Œ๋”๋ง ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์Šคํƒ€์ผ๋ง๊ณผ ๋ผ์šฐํŒ… ํ•ด๊ฒฐ์ฑ…์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ Node.js๋ฅผ ์„œ๋ฒ„ ํ™˜๊ฒฝ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Next.js๋ฅผ ์ •์‹ ๊ฐ€์ด๋“œ๋ฅผ ๋ณด๋ฉด์„œ ๋ฐฐ์›Œ๋ณด์„ธ์š”.

Gatsby

Gatsby๋Š” ์ •์  ์›น์‚ฌ์ดํŠธ๋ฅผ React๋กœ ๋งŒ๋“ค๊ธฐ์—๋Š” ์ตœ๊ณ ์˜ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. React ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•ด์ฃผ์ง€๋งŒ ๋ฏธ๋ฆฌ ๋ Œ๋”๋ง ๋œ HTML๊ณผ CSS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์žฅ ๋น ๋ฅด๊ฒŒ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.

Gatsby๋ฅผ ์ •์‹ ๊ฐ€์ด๋“œ์™€ ์Šคํƒ€ํ„ฐ ํ‚คํŠธ๋ฅผ ๋ณด๋ฉด์„œ ๋ฐฐ์›Œ๋ณด์„ธ์š”

๋” ์œ ์—ฐํ•œ ํˆด์ฒด์ธ

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

  • Neutrino๋Š” webpack์˜ ์žฅ์ ๊ณผ React์˜ ๋‹จ์ˆœํ•จ๊ณผ ๋ฏธ๋ฆฌ ์„ค์ •๋œ ์•ฑ๊ณผ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•ฉ์นœ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • Nx๋Š” ํ’€์Šคํƒ ๋ชจ๋…ธ๋ ˆํฌ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋„๊ตฌ์ด๋ฉฐ, React, Next.js, Express ๋“ฑ์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • Parcel์€ React์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ๋น ๋ฅด๊ณ  ์„ค์ •์ด ํ•„์š” ์—†๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ bundler์ž…๋‹ˆ๋‹ค.
  • Razzle์€ ์„œ๋ฒ„ ๋ Œ๋”๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋ฉฐ ์„ค์ •์ด ํ•„์š” ์—†์ง€๋งŒ, Next.js๋ณด๋‹ค ๋‹ค๋ฃจ๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

ํˆด์ฒด์ธ์„ ์ง์ ‘ ๋งŒ๋“ค๊ธฐ

JavaScript build ํˆด์ฒด์ธ์€ ์ฃผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์„ฑ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค

  • Yarn ํ˜น์€ npm๊ฐ™์€ package ๋งค๋‹ˆ์ €๋Š” ์„œ๋“œ ํŒŒํ‹ฐ ํŒจํ‚ค์ง€์˜ ๋ฐฉ๋Œ€ํ•œ ์ƒํƒœ๊ณ„๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ฉฐ, ์‰ฝ๊ฒŒ ์„ค์น˜ํ•˜๊ณ  ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • webpack ์•„๋‹ˆ๋ฉด Parcel ๊ฐ™์€ bundler๋Š” ์ฝ”๋“œ๋ฅผ ๋ชจ๋“ˆ๋ฐฉ์‹์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ณ  ์ด๋ฅผ ์ž‘์€ package๋กœ ๋ฌถ์–ด์„œ ๋กœ๋”ฉ ์‹œ๊ฐ„์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Babel ๊ฐ™์€ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ตœ์‹  JavaScript ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜• ๋ธŒ๋ผ์šฐ์ €์—๋„ ์‹คํ–‰๋˜๊ฒŒ ๋„์™€์ค๋‹ˆ๋‹ค.

๋งŒ๋“  JavaScript ํˆด์ฒด์ธ์„ ์›ํ•˜์‹ ๋‹ค๋ฉด, ์ด ๊ฐ€์ด๋“œ๋ฅผ ๋ณด์„ธ์š”.

์ปค์Šคํ…€ ํˆด์ฒด์ธ์ด ์ œ๋Œ€๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ์žŠ์ง€ ๋งˆ์„ธ์š”.

Is this page useful?Edit this page