๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
WEB/Front-End๐ŸŒ

[React] ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“ค๊ธฐ (๊ธฐ์ดˆํƒ„ํƒ„)

by narang111 2021. 9. 28.

#์ƒํ™œ์ฝ”๋”ฉ

๋ฆฌ์•กํŠธ๊ฐ€ ์—†๋‹ค๋ฉด, ์ด๊ฒƒ์„ ๋ฆฌ์•กํŠธ๋กœ ๋ฐ”๊พผ๋‹ค๋ฉด??

 

 

public์ด๋ผ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” create-react-app ์—์„œ npm run start๋ฅผ ํ–ˆ์„ ๋–„ ํŒŒ์ผ์„ ์ฐพ๋Š” ๋‹คํ๋จผํŠธ ๋ฃจํŠธ์ด๋‹ค.

๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด์„œ public ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ผ๋‹จ ๋ฆฌ์•กํŠธ๋ฅผ ์“ฐ์ง€ ์•Š์„ test.html ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด๋ณธ๋‹ค.

 

semantic ํƒœ๊ทธ

์‹œ๋งจํ‹ฑ ํƒœ๊ทธ๋Š” react์™€๋Š” ์ƒ๊ด€์—†๋Š” html5์˜ ์ŠคํŽ™์ด๋‹ค.

์›นํŽ˜์ด์ง€๋Š” ๋Œ€๋ถ€๋ถ„ ํ—ค๋”, ๋„ค๋น„๊ฒŒ์ด์…˜, ๋ณธ๋ฌธ ๋“ฑ์˜ ์˜์—ญ์ด ์žˆ๋Š”๋ฐ ์ด ๋ถ€๋ถ„์„ ์˜๋ฏธ๋ก ์ ์œผ๋กœ ์ •์˜ํ•  ๋•Œ ์“ฐ๋Š” ๊ฒƒ์ด semantic ํƒœ๊ทธ์ด๋‹ค. ๊ธฐ๋Šฅ์ƒ์˜ ๋ณ€ํ™”๋Š” ์—†์ง€๋งŒ ํƒœ๊ทธ๋ฅผ ๋ณด๊ณ  ๋ณธ๋ฌธ์ด๊ตฌ๋‚˜ ์ œ๋ชฉ๋ถ€๋ถ„์ด๊ตฌ๋‚˜~ ์•Œ์ˆ˜ ์žˆ๋‹ค.

1) ๊ธฐ๋ณธ ์›น ํŽ˜์ด์ง€ html                                                              2) semantic ํƒœ๊ทธ ์ถ”๊ฐ€

 

 

๋งŒ์•ฝ ์ฝ”๋“œ๊ฐ€ ๋งค~~์šฐ ๊ธธ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ ํ•œ ๋ˆˆ์— ์ฝ”๋“œ๋ฅผ ๋ณด๊ธฐ ์–ด๋ ต๋‹ค. 

header ํƒœ๊ทธ 4์ค„์„ ์•„๋ž˜์ฒ˜๋Ÿผ ํ•œ ์ค„๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์—„์ฒญ ํŽธ๋ฆฌํ•ด์งˆ ๊ฒƒ์ด๋‹ค.

์ด๊ฑธ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด

๋ฆฌ์•กํŠธ์ด๋‹ค.

 

App.js ์ฝ”๋“œ์ด๋‹ค. ์ด๊ฒƒ์„ ์ฐธ๊ณ ํ•ด์„œ ๋˜‘๊ฐ™์€ ํ‹€์„ ๋งŒ๋“ค์–ด ๋ณผ ๊ฒƒ์ด๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์•„๋Š” ์ผ๋ฐ˜์ ์ธ ํ•จ์ˆ˜๋Š” function์ด ๋ถ™์ง€๋งŒ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ตœ์‹  ์ŠคํŽ™์ด ๋“ค์–ด๊ฐ€์žˆ๋Š” class ์•ˆ์— ์†Œ์†๋œ ํ•จ์ˆ˜๋Š” function์„ ์ƒ๋žตํ•œ๋‹ค. 

 

 

์ด์ „์— ๋งŒ๋“ค์—ˆ๋˜ html ํŒŒ์ผ์—์„œ header ๋ถ€๋ถ„์„ ๊ฐ€์ ธ์™€์„œ ๋ถ™์—ฌ์ค€๋‹ค.

์ด ๋•Œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜์˜ ์ตœ์ƒ์œ„ ํƒœ๊ทธ๋กœ ์‹œ์ž‘ํ•ด์•ผํ•œ๋‹ค.

์—ฌ๊ธฐ์—์„œ๋Š” <header> ํƒœ๊ทธ๊ฐ€ ์ตœ์ƒ์œ„ ํƒœ๊ทธ์ด๋‹ค.

<header> ์— ํ•ด๋‹นํ•˜๋Š” ํƒœ๊ทธ๋ฅผ <Subject>๋ผ๋Š” ์ด๋ฆ„์˜ ํƒœ๊ทธ๋กœ ์ •์˜ํ–ˆ๋‹ค.

Subject ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

 

ํ•œ ๊ฐ€์ง€ ๋”!

์šฐ๋ฆฌ๊ฐ€ ์งœ๊ณ  ์žˆ๋Š” App.js ์˜ ์ฝ”๋“œ๋Š” ์œ ์‚ฌ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์ด๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์•„๋‹ˆ๋‹ค!

๋”ฐ์˜ดํ‘œ๊ฐ€ ์žˆ์œผ๋ฉด |๋ฅผ ๋„ฃ์–ด์ค˜์•ผํ•˜๋Š”๋ฐ ์ด๋Ÿฐ๊ฒƒ๋“ค์ด ๊นŒ๋‹ค๋กœ์›Œ์„œ ํŽ˜์ด์Šค๋ถ์—์„œ ๋งŒ๋“  ๊ฒƒ์ด ์ปดํ“จํ„ฐ ์–ธ์–ด๊ฐ€ jsx์ด๋‹ค.

์šฐ๋ฆฌ๊ฐ€ jsx๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด create-react-app์ด ์•Œ์•„์„œ js์ฝ”๋“œ๋กœ ์ปจ๋ฒ„ํŒ…์„ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

 

 

์‹คํ–‰์„ ํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

elements๋ฅผ ๋ณด๋ฉด div ํด๋ž˜์Šค๊ฐ€ app์ธ ๊ฒƒ์— header์ด ๋“ค์–ด๊ฐ€์žˆ๋‹ค.

๋ฆฌ์•กํŠธ ์ฝ”๋“œ์—์„œ๋Š” Subject์ธ ๊ฒƒ์„ ๋ฆฌ์•กํŠธ๊ฐ€ ์ € ์ฝ”๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•œ ๋‹ค์Œ์— ์ตœ์ข…์ ์œผ๋กœ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•Œ์•„๋“ค์„ ์ˆ˜ ์žˆ๋Š” header๋ผ๋Š” ์ด๋ฆ„์˜ ํƒœ๊ทธ๋กœ ๋ฐ”๊พธ์–ด์ค€ ๊ฒƒ์ด๋‹ค.

 

์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ฆฌ์•กํŠธ๋ผ๋Š” ๊ธฐ์ˆ ์ด ์žˆ๋Š”์ง€ ๋ชจ๋ฅธ๋‹ค??

- ๋ฆฌ์•กํŠธ๊ฐ€ ์ตœ์ข…์ ์œผ๋กœ ์›น ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ html ์ฝ”๋“œ๋ฅผ ๊ณต๊ธ‰ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ..

 

 

 

 

๋‚˜๋จธ์ง€ ์ปดํฌ๋„ŒํŠธ๋“ค๋„ ๋งŒ๋“ค์–ด์ฃผ๊ณ  App class์— ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค.

 

 

 

 

์š”์•ฝ)

๋ฆฌ์•กํŠธ์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ •๋ฆฌ๋„๊ตฌ๋กœ ๋ณด์•„๋ผ!

์šฐ๋ฆฌ๋Š” ์ •๋ฆฌ์ •๋ˆํ•ด์„œ ์ด๋ฆ„์„ ๋ถ™์ด๊ณ  ์ปดํฌ๋„ŒํŠธ์˜ ์ด๋ฆ„๋งŒ ์‹ ๊ฒฝ์“ฐ๋ฉด ๋œ๋‹ค. 

๋ณต์žก๋„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ํ„ฐ๋“ํ–ˆ๋‹ค!!