๊ณต๋ถ€ ๊ธฐ๋ก โœ๏ธ/React

[React] study (๋ฆฌ์•กํŠธ ์‹œ์ž‘ํ•˜๊ธฐ) #1์ผ์ฐจ

๋ฒ„๋‘˜ 2023. 4. 10. 16:53

๐Ÿ“– ์ฐธ๊ณ  ์„œ์ :

์†Œํ”Œ์˜ ์ฒ˜์Œ ๋งŒ๋‚œ ๋ฆฌ์•กํŠธ 

๐Ÿ“†  ์ง„ํ–‰

chapter 0 ์ค€๋น„ํ•˜๊ธฐ โœ…

chapter 1 ๋ฆฌ์•กํŠธ ์†Œ๊ฐœ โœ…

chapter 2 ๋ฆฌ์•กํŠธ ์‹œ์ž‘ํ•˜๊ธฐ โœ…


 chapter 0 ์ค€๋น„ํ•˜๊ธฐ

 

HTML์ด๋ž€? (Hyper Text Markup Language)

์›น์‚ฌ์ดํŠธ์˜ ๋ผˆ๋Œ€๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋งˆํฌ์—… ์–ธ์–ด

๋งˆํฌ์—… : ๋ฌธ์„œ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์„œ์— ์ถ”๊ฐ€๋˜๋Š” ์ •๋ณด

๋งˆํฌ์—… ์–ธ์–ด: ๋งˆํฌ์—… ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์–ธ์–ด

 

SPA(Single Page Application)

ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€๋งŒ ์กด์žฌํ•˜๋Š” ์›น์‚ฌ์ดํŠธ(๋˜๋Š” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜)

ํ•˜๋‚˜์˜ HTMLํ‹€์„ ๋งŒ๋“ค์–ด ๋†“๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•  ๋•Œ ๊ทธ ์•ˆ์—

ํ•ด๋‹น ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ์„ ์ฑ„์›Œ ๋ณด๋‚ด์ฃผ๋Š” ๊ฒƒ

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ž๋ฃŒํ˜•

์ผ๋ฐ˜์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ์‹œ์ ์— ํ•ด๋‹น ๋ณ€์ˆ˜์˜ ์ž๋ฃŒํ˜•์ด ๊ฒฐ์ •๋œ๋‹ค 

ํ•˜์ง€๋งŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ๋ณ€์ˆ˜์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋Œ€์ž…๋˜๋Š” ์‹œ์ ์— ํ•ด๋‹น ๋ณ€์ˆ˜์˜ ์ž๋ฃŒํ˜•์ด ๊ฒฐ์ •๋œ๋‹ค. 

์ด๋ฅผ ๋™์ ํƒ€์ดํ•‘์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

- undefined :๊ฐ’์ด ์ •์˜๋˜์ง€ ์•Š์€ ์ƒํƒœ 

- null :๊ฐ’์ด ์ •์˜๋˜๊ธด ํ–ˆ๋Š”๋ฐ, ๊ทธ ๊ฐ’์ด null์ธ ์ƒํƒœ

- ๋ฐฐ์—ด: ๋‹ค์–‘ํ•œ ์ž๋ฃŒํ˜•์˜ ๋ณ€์ˆ˜๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ์ˆœ์„œ๋Œ€๋กœ ๋ชจ์•„๋†“์€ ๊ฒƒ์ด๋ผ ์ˆœ์„œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” index ๊ฐ’์ด ์žˆ๋‹ค.


 chapter 1 ๋ฆฌ์•กํŠธ ์†Œ๊ฐœ

 

๋ฆฌ์•กํŠธ๋ž€?

์‚ฌ์šฉ์ž์™€ ์›น์‚ฌ์ดํŠธ์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๋•๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋Šฅ ๋ชจ์Œ์ง‘

SPA๋ฅผ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๋„๊ตฌ

 

์žฅ์ 

- ๋น ๋ฅธ ์—…๋ฐ์ดํŠธ์™€ ๋ Œ๋”๋ง ์†๋„

- ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’์€ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ

- ๋ฉ”ํƒ€(๊ตฌ ํŽ˜์ด์Šค๋ถ)์˜ ๋“ ๋“ ํ•œ ์ง€์›

- ํ™œ๋ฐœํ•œ ์ง€์‹ ๊ณต์œ ์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ

- ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ํ†ตํ•œ ๋ชจ๋ฐ”์ผ ์•ฑ ๊ฐœ๋ฐœ ๊ธฐ๋Šฅ

 

๋‹จ์ 

- ๋ฐฉ๋Œ€ํ•œ ํ•™์Šต๋Ÿ‰

- ๋†’์€ ์ƒํƒœ ๊ด€๋ฆฌ ๋ณต์žก๋„

*state

๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ -> ๋ฆฌ์•กํŠธ๋Š” ๋ฐ”๋€ ๋ถ€๋ถ„๋งŒ ์ฐพ์•„ ์—…๋ฐ์ดํŠธ -> ๋ฐ”๋€ ๋ถ€๋ถ„ ์ด๋ผ๋Š” ๊ฒƒ์€ state๊ฐ€ ๋ฐ”๋€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์˜๋ฏธ

 

 

ํ”„๋ ˆ์ž„์›Œํฌ vs ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

์ฐจ์ด์ : ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์— ๋Œ€ํ•œ ์ œ์–ด ๊ถŒํ•œ

- ํ”„๋ ˆ์ž„์›Œํฌ: ํ๋ฆ„์˜ ์ œ์–ด ๊ถŒํ•œ์„ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. (ํ”„๋ ˆ์ž„์›Œํฌ ์ž์‹ ์—๊ฒŒ ์ œ์–ด ๊ถŒํ•œ)

- ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: ํ๋ฆ„์— ๋Œ€ํ•œ ์ œ์–ด๋ฅผ ํ•˜์ง€ ์•Š๊ณ , ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ํ•„์š”ํ•  ๋•Œ ๊ฐ€์ ธ๋‹ค ์‚ฌ์šฉํ•˜๋Š” ํ˜•ํƒœ (๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ œ์–ด ๊ถŒํ•œ)

 


 chapter 2 ๋ฆฌ์•กํŠธ ์‹œ์ž‘ํ•˜๊ธฐ

 

๊ฐ„๋‹จํžˆ ๋งŒ๋“  ์›น์‚ฌ์ดํŠธ์— react.js๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•!

 

1. ๊ธฐ์กด์˜ ์›น์‚ฌ์ดํŠธ HTML์— DOM container๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. (์œ„์น˜: bodyํƒœ๊ทธ)

<div id="root"></div>

 

2. ๋ฆฌ์•กํŠธ์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ ๊ฐ€์ ธ์˜ค๊ธฐ (react,react-dom)

<script src="https://unpkg.com/react@18/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js" crossorigin></script>

 

3.๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค (Mybutton.js ํŒŒ์ผ ์ƒ์„ฑ ํ›„)

<script src="Mybutton.js"></script>

 

4.๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค

 

ํ•˜์ง€๋งŒ ๋ฆฌ์•กํŠธ๊ฐ€ ์ ์šฉ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ๋กœ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค!!

create-react-app (CRA)

VS code์˜ ํ„ฐ๋ฏธ๋„์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•œ๋‹ค.

$npx create-react-app ํ”„๋กœ์ ํŠธ์ด๋ฆ„

 

//์œ„์น˜ํ•œ ๊ฒฝ๋กœ๋ฅผ ๋ณ€๊ฒฝ
$ cd my-app
//์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰
$npm start

์‹คํ–‰ ์™„๋ฃŒ

'๊ณต๋ถ€ ๊ธฐ๋ก โœ๏ธ > React' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[React] study (state,) #3์ผ์ฐจ  (0) 2023.04.12
[React] study (JSX,์—˜๋ฆฌ๋จผํŠธ) #2์ผ์ฐจ  (0) 2023.04.11
[React] React study #0  (0) 2023.04.10
React-router-dom  (0) 2023.02.08
[React] React๋ž€?  (0) 2023.01.27