Skip to content

๐Ÿ‘ฉโ€๐Ÿ’ป(๋ฉ˜ํ† )์„œ์—ฐ์ฃผ- (๋ฉ˜ํ‹ฐ)๊น€์ˆ˜์—ฐ, ์ž„์ˆ˜์•ˆ HTML,CSS,React๋กœ ์ธ์Šคํƒ€๊ทธ๋žจ ํด๋ก ์ฝ”๋”ฉํ•˜๊ธฐ

Notifications You must be signed in to change notification settings

haeni0117/REACT_tutoring

Repository files navigation

๐Ÿฃ ์ธ์Šคํƒ€๊ทธ๋žจ ํด๋ก ์ฝ”๋”ฉ ๐Ÿฅ

(๋ฉ˜ํ† )์„œ์—ฐ์ฃผ-(๋ฉ˜ํ‹ฐ)๊น€์ˆ˜์—ฐ, ์ž„์ˆ˜์•ˆ HTML,CSS,React ๊ณต๋ถ€ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค! pic1

์ธ์Šคํƒ€๊ทธ๋žจ ์›นํŽ˜์ด์ง€ ๋งŒ๋“ค์–ด๋ณด๊ธฐ

ํด๋ก ์ฝ”๋”ฉํŽ˜์ด์ง€

pic1

20210710

pic1

20210711

pic1

20210717

pic1

20210718

pic1

20210724~20210801

pic1

20210807~20210808

pic1

20210703 OT(์ด๋ก )

Github์˜ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ(PR, Issue, ์นธ๋ฐ˜๋ณด๋“œ, Action, ์›นํ˜ธ์ŠคํŒ… ๋“ฑ...)๊ณผ ๊ทธ ํ™œ์šฉ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ  github ์‚ฌ์šฉ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ํˆด์„ ์†Œ๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค.HTML, CSS, React๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ณ  ์•„ํ† ๋ฏน ๋””์ž์ธ๊ณผ css-in-js์— ๊ด€ํ•ด ์•Œ์•„๋ณด๊ณ  ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •(Create React App๊ณผ Emotion)์„ ๋งˆ์ณค์Šต๋‹ˆ๋‹ค. ์ดํ›„ ๋‹ค์Œ ์‹œ๊ฐ„๋ถ€ํ„ฐ ์ง„ํ–‰๋  ์‹ค์Šต์— ๊ด€ํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜์€ ๊นƒํ—ˆ๋ธŒ ์“ฐ๋Š” ๋ฐฉ๋ฒ•, html.css,.js.react๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋ฐฐ์› ๋‹ค. html์€ ๋ผˆ๋Œ€. css๋Š” ๊ฒ‰๋ชจ์Šต, js๋Š” ๋‡Œ๋ผ๊ณ  ํ–ˆ๋‹ค. html์ด๋ž‘ css๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์•„๋‹ˆ๋ผ๊ณ  ํ–ˆ๋‹ค. ๋ชฐ๋ž๋‹ค. ์•„ํ† ๋ฏน ๋””์ž์ธ์— ๋Œ€ํ•ด์„œ ๋ฐฐ์› ๋‹ค. ์›น์‚ฌ์ดํŠธ๊ฐ€ ๊ทธ๋ƒฅ ํ•œ ํŽ˜์ด์ง€๋กœ ์ด๋ฃจ์–ด์ง€๋Š” ์ค„ ์•Œ์•˜๋Š”๋ฐ, ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐฐ์› ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋˜‘๊ฐ™์€ ๋””์ž์ธ์„ ๋ณต๋ถ™ํ•˜๋Š” ๊ฒƒ์€ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ์ด ์ข‹์ง€ ์•Š๋‹ค๊ณ  ํ–ˆ๋‹ค. ๋‚ด๊ฐ€ ๊ฐ์ง€ํ”„๋•Œ ์ด๋ ‡๊ฒŒ ํ–ˆ๋Š”๋ฐ,,, ์•ฝ๊ฐ„ ๊ฐ์ง€ํ”„์—์„œ ๋ฐฐ์šด ๋‚ด์šฉ์ด๋ž‘ ๋น„์Šทํ•œ ๋‚ด์šฉ์ด๋ผ๊ณ  ๋Š๊ผˆ๋‹ค ์ด๋ฒˆ์—๋Š” ์‹ค์Šต์„ ๋งŽ์ด ํ•ด๋ณด๋ฉด์„œ ์—ฐ์Šต์„ ๋งŽ์ด ํ•ด์•ผ๊ฒ ๋‹ค. ๊ฐ์ง€ํ”„๋•Œ ์‹ค์Šต์„ ์ถฉ๋ถ„ํžˆ ์•ˆํ–ˆ๋”๋‹ˆ ์‹ค๋ ฅ์ด ์ž˜ ์•ˆ๋Š˜์—ˆ๋˜ ๊ฒƒ์„ ๊ตํ›ˆ์‚ผ์•„์„œ ์—ด์‹ฌํžˆ ์‹ค์Šตํ•˜๊ฒ ๋‹ค. ์•ž์œผ๋กœ ๊ฐ€์•ผํ•  ๊ธธ์ด ๋งŽ๋‹ค๊ณ  ๋Š๊ผˆ๋‹ค. ์—ด์‹ฌํžˆ ํ•ด์•ผ๊ฒ ๋‹ค.!! pic1

20210710 ์ธ์Šคํƒ€๊ฒŒ์‹œ๊ธ€ ๋งŒ๋“ค๊ธฐ!

์˜คํ”„๋ผ์ธ์œผ๋กœ ๋งŒ๋‚˜ ํ•™์Šตํ™œ๋™์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. HTML Tag์™€ semanticํ•œ ํƒœ๊ทธ ์ž‘์„ฑ์˜ ์ค‘์š”์„ฑ์— ๋Œ€ํ•ด์„œ ์–ธ๊ธ‰ํ•˜๊ณ  React Component์™€ ๊ทธ ์ค‘์—์„œ๋„ ํ•จ์ˆ˜ํ˜• Component ์‚ฌ์šฉ์— ๋Œ€ํ•ด ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ extension์„ ์†Œ๊ฐœํ•œ ๋’ค ํฌ๋งํ•˜๋Š” ์ธ์Šคํƒ€๊ทธ๋žจ ํŽ˜์ด์ง€๋ฅผ ํด๋ก  ์ฝ”๋”ฉํ•˜๋Š” ์‹ค์Šต์„ ์‹œ์ž‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜์€ ์ง์ ‘ ์ธ์Šคํƒ€ ๊ฒŒ์‹œ๋ฌผ ํ™”๋ฉด์„ ๋งŒ๋“ค์–ด ๋ณด์•˜๋‹ค. ํฐ ํ™”๋ฉด์—์„œ ๊ฐ™์ด ์ฝ”๋”ฉํ•˜๋ฉด์„œ ์—๋Ÿฌ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๋ฐ”๋กœ๋ฐ”๋กœ ๋ฌผ์–ด๋ณด๊ณ  ๊ณ ๋ฏผํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ์˜คํ”„๋ผ์ธ ์ˆ˜์—…์˜ ํฐ ์žฅ์ ์ธ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์นœํ•œ ์‚ฌ๋žŒ๊ณผ ํ•˜๋‹ˆ ๋ฌผ์–ด๋ณด๊ธฐ๋„ ์‰ฝ๊ณ  ์งˆ๋ฌธํ•˜๊ธฐ๋„ ์‰ฌ์›Œ์„œ ๋ถ€๋‹ด๊ฐ์ด ์—†์–ด ์ข‹์•˜๋‹ค! ์ธ์Šคํƒ€ ๊ฒŒ์‹œ๋ฌผ ํ™”๋ฉด์„ ์•„ํ† ๋ฏนํ•˜๊ฒŒ ์„น์…˜๋ณ„๋กœ ๋‚˜๋ˆ ๋ณด๊ณ  semanticํ•œ ๊ฒƒ์ด ์–ด๋–ค ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•ด ๋ฐฐ์› ๋‹ค. ๋˜ ์—ฐ์ฃผ์–ธ๋‹ˆ๊ฐ€ ์ฝ”๋”ฉํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ ์šฉํ•œ ํ™•์žฅํ”„๋กœ๊ทธ๋žจ๋“ค์„ ์—ฌ๋Ÿฌ๊ฐœ ์•Œ๋ ค์ค˜์„œ prettier, bracket,, indent rainbow๋ฅผ ์„ค์น˜ํ–ˆ๋‹ค. ๋ฐฑ์ค€ํ’€๋•Œ๋Š” ๊ทธ๋ƒฅ ์—๋Ÿฌ์ž…๋‹ˆ๋‹ค๋งŒ ๋‚˜์™€์„œ ์•ฝ๊ฐ„ ์žฌ๋ฏธ๊ฐ€ ์—†์—ˆ๋Š”๋ฐ, ๋ฆฌ์•กํŠธ๋Š” ๋‚ด๊ฐ€ ์“ด ์ฝ”๋“œ๋ฅผ ๋ฐ”๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์„œ ์žฌ๋ฐŒ์—ˆ๋‹ค. ํ•™๊ต์— ๋ฆฌ์•กํŠธ ์ˆ˜์—…์€ ์—†๋ƒ๊ณ  ๋ฌผ์–ด๋ดค๋Š”๋ฐ ์•„์‰ฝ๊ฒŒ ์—†๋‹ค๊ณ  ํ–ˆ๋‹ค ใ… ใ…  ์–ธ๋‹ˆ ์‹œ๊ฐ„๋‚  ๋•Œ ๋งˆ๋‹ค ์กธ๋ผ์„œ ๊ฐ™์ด ์ˆ˜์—…ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์—ด์‹ฌํžˆ ๋ฐฐ์›Œ์•ผ๊ฒ ๋‹ค ใ…Žใ…Ž pic1 pic1 pic1

20210711

์–ด์ œ๋ณด๋‹ค ์ธ์Šคํƒ€๊ทธ๋žจ์ด๋ž‘ ๋” ๋‹ฎ์•„๊ฐ€๊ณ  ์žˆ์–ด์„œ ๋ฟŒ๋“ฏํ•˜๋‹ค. ์˜ค๋Š˜์€ ์–ธ๋‹ˆ๊ฐ€ ๊ณ ๊ธ‰๊ธฐ๋Šฅ์ด๋ผ๊ณ  ํด๋ฆญ๊ธฐ๋Šฅ์„ ๊ฐ€๋ฅด์ณ์คฌ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ด์‰ฌํƒœ๊ทธ๋ž‘ ํ”„๋กœํ•„์„ ํด๋ฆญํ•˜๋ฉด ์„ค์ •ํ•ด๋†“์€ ๋งํฌ๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก href๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ์ง€๊ธˆ์€ ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€๋งŒ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋ผ์„œ ์ผ์ผ์ด url์„ ์ž…๋ ฅํ•ด์ฃผ์ง€๋งŒ, ๋งŒ์•ฝ ์ •๋ง๋กœ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•  ๋•Œ๋Š” ๋ผ์šฐํŒ…๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ž๋™์œผ๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฒ€์ƒ‰๊ธฐ๋Šฅ๋„ ํ”„๋ก ํŠธ์—”๋“œ์˜ ์ผ์ด๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ, ์ƒ๊ฐ๋ณด๋‹ค ํ”„๋ก ํŠธ์—”๋“œ๋„ ํ•  ์ผ์ด ๋งŽ์€ ๊ฒƒ ๊ฐ™๋‹ค. ๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๋Š” ๊ฑฐ์˜ ์›น๋””์ž์ด๋„ˆ ์ •๋„์˜€๋‹ค.... ์ธ์Šคํƒ€๊ทธ๋žจ ์›นํ™”๋ฉด์—์„œ 1์ผ์ด๋ผ๊ณ  ์ ํ˜€์žˆ๋Š” ๋ถ€๋ถ„์„ ํด๋ฆญํ•˜๋ฉด day๋ณ€์ˆ˜๊ฐ€ ํ•˜๋‚˜์”ฉ ์˜ฌ๋ผ๊ฐ€์„œ 1์ผ 2์ผ 3์ผ.. ์ด๋ ‡๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ์ธ๋ฐ ์ •๋ง ๋„ˆ๋ฌด๋„ˆ๋ฌด ์‹ ๊ธฐํ–ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ์ข‹์•„์š”๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ๋•Œ ์“ฐ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ํ–ˆ๋‹ค. ์ด๊ฑธ ๋ณด๋‹ˆ <๊ฑฐ์ง€ํ‚ค์šฐ๊ธฐ>๊ฒŒ์ž„์ด ์ƒ๊ฐ๋‚ฌ๋‹ค. ๊ฑฐ์ง€ํ‚ค์šฐ๊ธฐ๋Š” ๊ทธ๋ƒฅ ํด๋ฆญ์„ ํ•˜๋ฉด ๋ˆ์ด ์Œ“์ด๋Š” ๊ฑด๋ฐ, ์ด๋ ‡๊ฒŒ ํด๋ฆญํ•˜๋Š” ๊ฑธ๋กœ ์›นํŽ˜์ด์ง€์—์„œ ๊ฒŒ์ž„์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•˜๋‹ค. ๋‹ค์Œ์— ํ•œ ๋ฒˆ ํ•ด๋ด์•ผ๊ฒ ๋‹ค. ํ‰์†Œ์— ํ”„๋ก ํŠธ์—”๋“œ์— ๋ณ„ ๊ด€์‹ฌ์ด ์—†์—ˆ๋Š”๋ฐ, ์ฝ”๋”ฉํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ˆˆ์œผ๋กœ ๋ฐ”๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ ์ด ๋„ˆ๋ฌด ๋งค๋ ฅ์ ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์–ด์ œ๋ณด๋‹ค ๊ฒฐ๊ณผ๋ฌผ์ด ๋‚˜์•„์ง„ ๊ฒŒ ๋„ˆ๋ฌด ๋ฟŒ๋“ฏํ•˜๋‹ค! ์—ญ์‹œ ๊พธ์ค€ํžˆ ํ•˜๋Š” ๊ฒŒ ์ œ์ผ ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™๋‹ค. pic1 pic1 pic1 pic1 pic1

20210717

์˜ค๋Š˜ ์ฒ˜์Œ์— terminal๋กœ react๋ฅผ ์ผฐ๋Š”๋ฐ, ์ง€๋‚œ ๋ฒˆ์— ๋งŒ๋“ค์—ˆ๋˜ ๊ฑด ์—†๊ณ , ๊ทธ ์ „์— ํ–ˆ๋˜ ํŒŒ์ผ์ด ์ž๊พธ ์—ด๋ ค์„œ ์™œ ๊ทธ๋Ÿฌ๋Š”์ง€ ์•Œ์•„๋‚ด๋Š๋ผ๊ณ  ์‹œ๊ฐ„์„ ๋งŽ์ด ์ผ๋‹ค. ์•Œ๊ณ ๋ณด๋‹ˆ ๋‚ด๊ฐ€ ๋งŒ๋“ค์–ด๋†“์€ react_study ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์— srcํด๋” ์•ˆ์— post.jsํŒŒ์ผ์ด ์žˆ์–ด์•ผ ํ–ˆ๋Š”๋ฐ, ๋‚ด๊ฐ€ srcํด๋” ์•ˆ์—๋Š” ๊ตฌ๋ฒ„์ „ ํŒŒ์ผ์„ ์˜ฌ๋ ค๋†“๊ณ , ์ง„์งœ ํŒŒ์ผ์€ ์ž˜๋ชป๋œ ์œ„์น˜์— ๋‘ฌ์„œ ๊ทธ๋žฌ๋˜ ๊ฒƒ์ด๋‹ค. ํŒŒ์ผ ์œ„์น˜ ๊ด€๋ฆฌ๋ฅผ ๋˜‘๋ฐ”๋กœ ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. ์›๋ž˜ ์ธ์Šคํƒ€๊ทธ๋žจ ํ™”๋ฉด์„ ๋ณด๋ฉด ํ”„๋กœํ•„์ด ๋Œ“๊ธ€์—์„œ๋„ ๋ฐ˜๋ณต๋œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ ๋ถ€๋ถ„์€ ๋ณต๋ถ™์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ ๋งŒ๋“ค์—ˆ๋‹ค. ์˜ค๋Š˜์€ ๋Œ“๊ธ€ ๋ถ€๋ถ„์„ ๋งŒ๋“ค์—ˆ๋‹ค. ์•„์ง display:flex์ธ ์ƒํƒœ์—ฌ์„œ ๋Œ“๊ธ€์ฐฝ์ด ๋‚ด๋ ค์˜ค์ง€ ์•Š๊ณ  ๊ฒŒ์‹œ๊ธ€์„ ์“ด ์œ ์ € ์ธก๋ฉด์— ์œ„์น˜ํ•œ ์ƒํƒœ์ด๋‹ค. ์ง„์งœ ์ธ์Šคํƒ€๊ทธ๋žจ ํ™”๋ฉด์ฒ˜๋Ÿผ ๋ณด์ด๊ณ  ์‹ถ์œผ๋ฉด display : flex-column์„ ์‚ฌ์šฉํ•ด์ค˜์•ผ ํ•œ๋‹ค. column์€ '์—ด'์ด๋ผ๋Š” ๋œป์ด๋ผ์„œ flex์ƒํƒœ์ž„์—๋„ ๊ฒŒ์‹œ๊ธ€ ๋ฐ‘์œผ๋กœ ๋Œ“๊ธ€์ด ๋‚ด๋ ค์˜ฌ ์ˆ˜ ์žˆ๋‹ค. display๊ฐ€ ๋” ๊ตฌ์ฒดํ™”๋˜์—ˆ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ์—ฐ์ฃผ์–ธ๋‹ˆํ•œํ…Œ ๊ตณ์ด <div></div>๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , display : flex-column๋ฅผ ์“ฐ๋Š” ์ด์œ ๋ฅผ ๋ฌผ์–ด๋ดค๋”๋‹ˆ, ๊ฐ€์šด๋ฐ ์ •๋ ฌ์„ ๋น„๋กฏํ•œ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ํ–ˆ๋‹ค. html/css์˜ ์„ธ๊ณ„๋Š” ์ •๋ง ๋ฌด๊ถ๋ฌด์ง„ํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ๐Ÿ˜ƒ pic1 pic1

์ฝ”๋“œ๋Š” ๊ฐ™์€๋ฐ, ์™œ yeonjuice์˜ ํ”„๋กœํ•„์‚ฌ์ง„์€ ์ฐŒ๊ทธ๋Ÿฌ์ง€์ง€ ์•Š๊ณ  youlakk๋งŒ ์ฐŒ๊ทธ๋Ÿฌ์ง€๋Š”์ง€ ๊ณ ๋ฏผํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ์–ธ๋‹ˆ๊ฐ€ ์œ„์˜ ํ”„๋กœํ•„์€ ์• ์ดˆ์— ์ฐŒ๊ทธ๋Ÿฌ์งˆ๋งŒํผ ๊ณต๊ฐ„์ด ๋ชจ์ž๋ผ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ํ–ˆ๋‹ค. ํ•ด์ƒ๋„๋‚˜ ๋ชจ๋‹ˆํ„ฐํ™”๋ฉด์— ๋”ฐ๋ผ ์ž๋™์ ์œผ๋กœ ui๊ฐ™์€ ๊ฒƒ์„ ์กฐ์ •ํ•ด์ฃผ๋Š” ๊ฑด ์ •๋ง ํŽธํ•œ ๊ธฐ๋Šฅ์ด์ง€๋งŒ, ์ด๋Ÿด๋•Œ์—๋Š” ์ข€ ๋‚œ๊ฐํ•˜๋‹ค. ์ผ๋‹จ <div></div>๋กœ ์ฐŒ๊ทธ๋Ÿฌ์ง€์ง€ ์•Š๊ฒŒ ๋งŒ๋“ค๊ธด ํ–ˆ๋Š”๋ฐ, ๋‚˜๋จธ์ง€๋Š” ๋‚ด์ผ ์–ธ๋‹ˆํ•œํ…Œ ๋‹ค์‹œ ๋ฌผ์–ด๋ด์•ผ์ง€ ใ…Žใ…Ž

pic1 pic1 pic1 +++ ๊ทธ๋ฆฌ๊ณ  ์–ธ๋‹ˆํ•œํ…Œ Git convention์ด๋ž‘ gitmoji๋ผ๋Š” extension์— ๋Œ€ํ•ด์„œ ๋ฐฐ์› ๋‹ค. ๋„์ „ํ•™๊ธฐ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ๋„ˆ๋ฌด ์ปค๋ฐ‹๋ฉ”์‹œ์ง€๊ฐ€ ์ •์‹ ์ด ์—†์–ด์„œ ์ปค๋ฐ‹์ปจ๋ฒค์…˜์„ ์ฒ˜์Œ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ, ์ด๊ฑธ ์ด๋ชจ์ง€๋กœ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒŒ ์ƒˆ์‚ผ ๋†€๋ผ์šฐ๋ฉด์„œ๋„ ๋ง๊ทธ๋Œ€๋กœ convention์ธ๋ฐ ์ด๋ชจ์ง€๋ผ๊ณ  ์•ˆ๋ ๊ฒŒ ๋ญ๋žŒ.? ์ด๋ผ๋Š” ์ƒ๊ฐ์ด ๋™์‹œ์— ๋“ค์—ˆ๋‹ค. ์ปค๋ฐ‹ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ์˜ˆ๋ป์ ธ์„œ ์•„์ฃผ ๊นƒํ—™ ๋“ค์–ด์˜ฌ ๋ง›์ด ๋‚œ๋‹ค ใ…‹ใ…‹ใ…‹ใ…‹

20210718

๋ณธ๊ฒฉ์ ์œผ๋กœ ์ธ์Šคํƒ€ ๊ฒŒ์‹œ๊ธ€๊ณผ ๋น„์Šทํ•ด์ง€๊ณ  ์žˆ๋‹ค. ์ž์ž˜ํ•œ margin๋„ ๋„ฃ์–ด์ฃผ๋ฉด์„œ ์ตœ๋Œ€ํ•œ ๋น„์Šทํ•˜๊ฒŒ ๋งŒ๋“ค์–ด๋ณด๋ ค๊ณ  ํ•˜๋Š” ์ค‘์ด๋‹ค. ํด๋ก ์ฝ”๋”ฉ์„ ํ•˜๋ฉด์„œ ์กฐ๊ธˆ ์‹ ๊ธฐํ–ˆ๋˜ ๊ฒƒ์€ px๋“ค์ด 5๋‹จ์œ„๋กœ ๊น”๋”ํ•˜๊ฒŒ ๋‚˜์˜ค๋Š” ๊ฒŒ ์•„๋‹ˆ๊ณ , ๊ทธ๋ƒฅ white๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ์ƒ‰์ƒ๋„ ์ƒ‰์ƒ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ์™„์ „ํ•œ ํฐ์ƒ‰์€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ, ์ƒ๊ฐ๋ณด๋‹ค ์™„์ „ํ•œ black,white๋Š” ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์˜ค๋Š˜์€ margin๊ณผ padding์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ๋ฐฐ์› ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ ์‚ฌ์ด์— ๊ฐ„๊ฒฉ์„ ์ค€๋‹ค๋Š” ์ ์€ ๊ณตํ†ต์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ์–ด๋–ป๊ฒŒ(HOW)๊ฐ„๊ฒฉ์„ ์ฃผ๋ƒ๋Š” ์ ์—์„œ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์„ ๋ฐฐ์› ๋‹ค. margin์€ ๊ฐ„๊ฒฉ์„ ์ปดํฌ๋„ŒํŠธ ๋ฐ–์œผ๋กœ ์ฃผ๊ณ , padding์€ ์•ˆ์œผ๋กœ ์ฃผ๋Š” ๊ฒƒ์ด ์ฐจ์ด์ ์ด๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€๋ฅผ ๋ณด๋ฉด ๋” ์ดํ•ด๊ฐ€ ์‰ฝ๋‹ค! pic1

๐Ÿค” ์ง€๊ธˆ๊นŒ์ง€ ์™„์„ฑํ•œ post.jsํŒŒ์ผ ์ฝ”๋“œ

pic1 pic1 pic1 pic1

์›๋ž˜ ์ธ์Šคํƒ€๊ทธ๋žจ์€ ์ด๋Ÿฐ ์ƒ‰์ด ์•„๋‹ˆ์ง€๋งŒ, ๊ตฌ์—ญ์„ ์ง๊ด€์ ์œผ๋กœ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ƒ‰์„ ์ž…ํ˜”๋‹ค. ์˜ค๋Š˜ ์ˆ˜์—…์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ <์–ด๋””๊นŒ์ง€๋ฅผ ํ•œ ๋ฉ์–ด๋ฆฌ๋กœ ๋ณผ ๊ฒƒ์ด๋ƒ?>๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ์•„๋ž˜ ๊ฒŒ์‹œ๋ฌผ์—์„œ ๊ฒŒ์‹œ๊ธ€์„ ์“ด ์‚ฌ๋žŒ์˜ ์ •๋ณด๊ฐ€ ๋‚˜์™€์žˆ๋Š” ๋ถ€๋ถ„์„ ๋ณด๋ฉด ํ”„๋กœํ•„์‚ฌ์ง„+์œ ์ €๋ช… ์•„๋ž˜์— ์žˆ๋Š” ์œ„์น˜ ์•„๋ž˜์— ๊ณตํ†ต์ ์œผ๋กœ ์—ฌ๋ฐฑ์„ ์คฌ๋‹ค. ๋งŒ์•ฝ ์ด ๋‘˜์„ ํ•œ ๋ฉ์–ด๋ฆฌ๋กœ <div>๋ฅผ ํ†ตํ•ด ๋ฌถ์–ด์ฃผ์ง€ ์•Š๋Š”๋‹ค๋ฉด, ํ”„๋กœํ•„ ์‚ฌ์ง„ ์•„๋ž˜์—๋„ ์—ฌ๋ฐฑ(1) ๊ทธ๋ฆฌ๊ณ  ์œ„์น˜์ •๋ณด ์•„๋ž˜์—๋„ ์—ฌ๋ฐฑ(2)์„ ๋„ฃ์–ด์ค˜์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง€๊ณ  ์งœ์ž„์ƒˆ๊ฐ€ ์•ˆ์ข‹์•„์ง„๋‹ค. ๋ค์œผ๋กœ ์œ ์ง€/๋ณด์ˆ˜ํ•˜๊ธฐ๋„ ์–ด๋ ค์›Œ์ง„๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ฐ„๊ฒฉ์„ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋„ˆ๋ฌด ๋งŽ์€ ๋ถ€๋ถ„์˜ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด์ค˜์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. pic1 ๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜๋Š” MOZILLA๋ผ๋Š” ์‚ฌ์ดํŠธ์ด๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ HTML,CSSํƒœ๊ทธ์˜ ์ •๋ณด์— ๋Œ€ํ•ด ์•Œ๊ณ  ์‹ถ์„ ๋•Œ ํ™œ์šฉํ•˜๊ธฐ ์ข‹์€ ์‚ฌ์ดํŠธ์ด๋‹ค. https://developer.mozilla.org/ko/docs/Web/HTML/Element/span pic1 pic1 ๊ทธ๋ฆฌ๊ณ  ์ €๋ฒˆ์— ๋ณ€์ˆ˜๋ช…์€ semanticํ•ด์•ผ ํ•œ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ, ๋‚ด๊ฐ€ ๊ทธ๊ฑธ ๊นŒ๋จน๊ณ  ๋Œ€์ถฉ ๋ณ€์ˆ˜๋ช…์„ hihi๋กœ ์„ค์ •ํ–ˆ๋”๋‹ˆ ์–ธ๋‹ˆ๊ฐ€ semanticํ•˜๊ฒŒ ์ด๋ฆ„์„ ์„ค์ •ํ•˜๋ผ๊ณ  ํ–ˆ๋‹ค !!
-> ์ฐธ๊ณ ๋กœ semanticํ•˜๋‹ค๋Š” ๊ฒƒ์€ ์˜๋ฏธ๋ก ์ ์ด๋ผ๋Š” ๋œป์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฒŒ์‹œ๋ฌผ์„ ๊ฐ์‹ธ๋Š” ์Šคํƒ€์ผํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๊ทธ ํƒœ๊ทธ๋ช…์€ ์•„๋ฌด๋ ‡๊ฒŒ๋‚˜ ์ง€์œผ๋ฉด ์•ˆ๋˜๊ณ  <StyledPost>์ฒ˜๋Ÿผ ์˜๋ฏธ๋ฅผ ๋‹ด์•„์„œ ์ง“๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

โ˜‘๏ธ ์ด๋ฒˆ์ฃผ ๊ณผ์ œ

  • ์ธ์Šคํƒ€๊ทธ๋žจ ์›นํŽ˜์ด์ง€ ์ƒ‰์ƒ์ฝ”๋“œ ์•Œ์•„์˜ค๊ธฐ

20210724~20210801 : ์ธ์Šคํƒ€๊ทธ๋žจ ๊ฒŒ์‹œ๊ธ€ ํŽ˜์ด์ง€ ์™„์„ฑ

  • ํŠœํ„ฐ์˜ ๋ผ์ด๋ธŒ ์ฝ”๋”ฉ๊ณผ ๋ฉ˜ํ‹ฐ๋“ค๋ผ๋ฆฌ ์ ๊ทน์ ์œผ๋กœ ์„œ๋กœ๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ํŠœํ„ฐ๋ง์ด ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉฐ, ๋Œ“๊ธ€ ์ปดํฌ๋„ŒํŠธ ๊ตฌ์„ฑ์„ ์™„์„ฑํ•˜๊ณ  ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•์„ ์ตํ˜”์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํŠœํ‹ฐ์˜ ์งˆ๋ฌธ์—์„œ ์ด‰๋ฐœ๋˜์–ด react ๊ฐœ๋…์˜ ๋ชฉ์ฐจ๋ฅผ ๊ผผ๊ผผํžˆ ์‚ดํŽด๋ณด๊ณ  ๊ฐœ๋…์„ ์ „์ฒด์ ์œผ๋กœ ํ›‘์–ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ์Šต๋‹ˆ๋‹ค. pic1 pic1 pic1

๊ธฐ๋Šฅ๋ณ„๋กœ ์ฝ”๋“œ ์ •๋ฆฌํ•˜๊ธฐ + ๋ฐฐ์šด ๋‚ด์šฉ ๋ณต์Šต

  1. ๋‚ ์งœ ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ

20210807 ํŠœํ„ฐ๋ง : AppMainํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ

  • react์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ผ์šฐํŒ…๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ๋ผ์šฐํŒ…์ด๋ผ๋Š” ์šฉ์–ด๋ฅผ ์›นํ˜ธ์ŠคํŒ…ํ•  ๋•Œ ๋“ค์–ด๋ณธ ์ ์ด ์žˆ์–ด์„œ ์ต์ˆ™ํ•˜๊ธด ํ–ˆ๋Š”๋ฐ ์ •ํ™•ํ•˜๊ฒŒ ์–ด๋–ค ์šฉ์–ด์ธ์ง€๋Š” ์•Œ์ง€ ๋ชปํ–ˆ์—ˆ๋‹ค. ์ด๋ฒˆ ๊ธฐํšŒ์— ์ง์ ‘ ํ•ด๋ณด๋ฉด์„œ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์„œ ์žฌ๋ฏธ์žˆ์—ˆ๋‹ค.
  • ๋ผ์šฐํŒ…(์˜์–ด: routing)์€ ์–ด๋–ค ๋„คํŠธ์›Œํฌ ์•ˆ์—์„œ ํ†ต์‹  ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ ์ตœ์ ์˜ ๊ฒฝ๋กœ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ณผ์ •์ด๋‹ค. pic1 pic1 ๋ผ์šฐํŒ…์€ ์ „ํ™” ํ†ต์‹ ๋ง, ์ „์ž ์ •๋ณด ํ†ต์‹ ๋ง, ๊ทธ๋ฆฌ๊ณ  ๊ตํ†ต๋ง ๋“ฑ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๋„คํŠธ์›Œํฌ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค.(์ถœ์ฒ˜ : https://ko.wikipedia.org/wiki/%EB%9D%BC%EC%9A%B0%ED%8C%85) ๋ฆฌ์•กํŠธ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ผ์šฐํŒ…๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ„ฐ๋ฏธ๋„์—ฅ์„œ npm install react-router-dom๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด react-router-domํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ–ˆ๋‹ค. ํŠœํ„ฐ๋ง์ด ๋๋‚˜๊ณ  ํ•ด๋‹น ํŒจํ‚ค์ง€์— ๋Œ€ํ•ด ๋” ๊ณต๋ถ€ํ•ด๋ณด๋‹ˆ SPA์•ฑ์„ ๋งŒ๋“ค ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด SPA๋ž€ ๋ฌด์—‡์ผ๊นŒ?
    • SPA : Single Page Application (์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜) ์˜ ์•ฝ์ž์ด๋‹ค. ๋ง ๊ทธ๋Œ€๋กœ, ํŽ˜์ด์ง€(page)๊ฐ€ 1๊ฐœ(single)์ธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋ž€ ๋œป์ž…๋‹ˆ๋‹ค. ์ „ํ†ต์ ์ธ ์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ตฌ์กฐ๋Š”, ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ์œ ์ €๊ฐ€ ์š”์ฒญ ํ•  ๋•Œ ๋งˆ๋‹ค ํŽ˜์ด์ง€๊ฐ€ ์ƒˆ๋กœ๊ณ ์นจ๋˜๋ฉฐ, ํŽ˜์ด์ง€๋ฅผ ๋กœ๋”ฉ ํ•  ๋•Œ ๋งˆ๋‹ค ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฆฌ์†Œ์Šค๋ฅผ ์ „๋‹ฌ๋ฐ›์•„ ํ•ด์„ ํ›„ ๋ Œ๋”๋ง์„ ํ•ฉ๋‹ˆ๋‹ค. ์ „ํ†ต์ ์ธ ์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์˜ˆ์‹œ๊ฐ€ ์ •ํ™•ํžˆ ์–ด๋–ค ๊ฒƒ์„ ๋งํ•˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์œผ๋‚˜, ๊ณ„์†ํ•ด์„œ ์ƒˆ๋กœ๊ณ ์นจ์„ ํ•ด์•ผ ์ •๋ณด๊ฐ€ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ 1ํŽ˜์ด์ง€, 2ํŽ˜์ด์ง€ .. ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ๋„˜๊ฒจ๊ฐ€๋ฉฐ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ธ๊ฐ€๋ณด๋‹ค. ๋‚ด๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ๊ทธ๋Ÿฐ ํŽ˜์ด์ง€ ์ค‘์—๋Š” ์•Œ๋ฐ”๋ชฌํŽ˜์ด์ง€(https://www.albamon.com/recruit/area?rArea=,I000&sDutyWeek=30&rWDate=1)๊ฐ€ ๊ทธ๋Ÿฐ ๊ฒƒ ๊ฐ™์€๋ฐ, ํ™•์‹คํ•˜๊ฒŒ๋Š” ๋ชจ๋ฅด๊ฒ ๋‹ค. pic1
    • ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์—์„œ ์ฐฉ๊ฐํ•˜๋ฉด ์•ˆ๋˜๋Š” ์ ์€ ์‹ฑ๊ธ€ํŽ˜์ด์ง€๋ผ๊ณ  ํ•ด์„œ ์ •๋ง ๋งŒ๋“ค์–ด์ง„ ํŽ˜์ด์ง€๊ฐ€ 1๊ฐœ๋ผ๋Š” ์˜๋ฏธ๊ฐ€ ์•„๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด ๋ธ”๋กœ๊ทธ๋ฅผ ๋งŒ๋“ ๋‹ค๋ฉด, ํ™ˆ, ํฌ์ŠคํŠธ ๋ชฉ๋ก, ํฌ์ŠคํŠธ, ๊ธ€์“ฐ๊ธฐ ๋“ฑ์˜ ํ™”๋ฉด(1๊ฐœ์˜ ํŽ˜์ด์ง€๊ฐ€ ์•„๋‹ˆ๋‹ค!)์ด ์žˆ๊ฒ ๊ณ , ๊ฐ ํ™”๋ฉด์— ๋”ฐ๋ผ ์ฃผ์†Œ๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค. ์ด ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋“ค์ด ํŽ˜์ด์ง€์— ์œ ์ž…๋˜๊ธฐ๋„ ํ•˜๊ณ  ๋ถ๋งˆํฌ๋‚˜ ๋‹ค๋ฅธ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ฆ‰, ๊ฐ ์ฃผ์†Œ์— ๋”ฐ๋ฅธ ๋ทฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์„ ๋ผ์šฐํŒ…์ด๋ผ๊ณ  ํ•œ๋‹ค.
    • ๋ฆฌ์•กํŠธ ์ž์ฒด์—๋Š” ์ด ๊ธฐ๋Šฅ์ด ๋‚ด์žฅ๋˜์–ด์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ๋ธŒ๋ผ์šฐ์ €์˜ API๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ƒํƒœ๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋‹ค๋ฅธ ๋ทฐ๋ฅผ ๋ณด์—ฌ์ฃผ์–ด์•ผ ํ•œ๋‹ค.
  • ๋ผ์šฐํ„ฐ(router)์—๋Š” 3๊ฐ€์ง€ ํƒ€์ž…์ด ์žˆ๋‹ค. ๊ทธ ์ค‘ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ์›น์ด๊ธฐ ๋•Œ๋ฌธ์— react-router-dom์„ ์‚ฌ์šฉํ–ˆ๋‹ค. (์ถœ์ฒ˜:https://velopert.com/3417)
    • react-router-dom : ์›น
    • react-router : ์›น&์•ฑ
    • react-router-native : ์•ฑ

pic1

  • ์•„๋ž˜์˜ ํŽ˜์ด์ง€๋Š” ๋ฆฌ์•กํŠธ ๋ผ์šฐํ„ฐ์˜ ๊ณต์‹ ํŽ˜์ด์ง€์ด๋‹ค. ์–ธ๋‹ˆ๊ฐ€ ๋” ๊ณต๋ถ€ํ•˜๊ณ  ์‹ถ์œผ๋ฉด ์ด ์‚ฌ์ดํŠธ๋ฅผ ํ™œ์šฉํ•˜๋ผ๊ณ  ํ–ˆ๋‹ค. -> https://reactrouter.com/web/guides/quick-start
  • ์˜ค๋ฅธ์ชฝ์— ์™ผ์ชฝ์˜ ์„ค๋ช…์— ๋Œ€ํ•œ ์ฝ”๋“œ๊นŒ์ง€ ๊ฐ™์ด ๋‚˜์™€์žˆ์–ด์„œ ์ดํ•ดํ•˜๊ธฐ ๋” ์‰ฝ๊ณ  ์ง๊ด€์ ์ด์–ด์„œ ์ข‹๋‹ค! pic1
  • ๋ณธ๊ฒฉ์ ์œผ๋กœ ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค!! ์ธ์Šคํƒ€๊ทธ๋žจ์—์„œ ๋‚ด ํ”„๋กœํ•„์„ ํด๋ฆญํ•˜๋ฉด ์ž์‹ ์˜ ํ”„๋กœํ•„ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฒŒ์‹œ๊ธ€์—์„œ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ์ž์˜ ํ”„๋กœํ•„์„ ํด๋ฆญํ•˜๋ฉด ๊ทธ ์‚ฌ๋žŒ์˜ ํ”„๋กœํ•„๋กœ ๋„˜์–ด๊ฐ„๋‹ค. ์ด๋ฅผ onClick์„ ์‚ฌ์šฉํ•ด์„œ ์—ฐ๊ฒฐํ•ด์ฃผ๊ณ  ์ €๋ฒˆ์— ๋งŒ๋“ค์–ด๋‘์—ˆ๋˜ css๋“ค์„ ์‚ฌ์šฉํ•ด์„œ ๋™๊ทธ๋ž€ ํ”„๋กœํ•„์„ ๋งŒ๋“ค์–ด์ฃผ์—ˆ๋‹ค. ์ง€๊ธˆ ๋‚ด ํ”„๋กœํ•„์—๋Š” ์—†๋Š”๋ฐ, ํ”„๋กœํ•„ ํ•˜๋‹จ์— ๋‚˜์˜ค๋Š” ์Šคํ† ๋ฆฌ๋„ ๊ฐ™์€ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ–ˆ๋‹ค. ์•„์ง ์™„์„ฑ์€ ๋ชปํ–ˆ์ง€๋งŒ, ์—ฌ๊ธฐ๊นŒ์ง€ ํ•˜๋‹ค๊ฐ€ ํŠœํ„ฐ๋ง์ด ๋๋‚ฌ๋‹ค. ๋‚ด์ผ ํŠœํ„ฐ๋ง๊ฐ€์„œ ๋งˆ์ € ๋ฐฐ์šฐ๊ณ  ๋งŒ๋“ค์–ด์•ผ๊ฒ ๋‹ค! pic1 pic1
  • ๋ผ์šฐํ„ฐ์˜ ๋™์ž‘๋ฐฉ์‹ -> ๋ Œ๋”๋ง ์ˆœ์„œ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ
    • ๋ผ์šฐํ„ฐ์—๋Š” <BrowserRouter> ๊ฐ€ ๋ณดํ†ต ๋งŽ์ด ์‚ฌ์šฉ๋˜๋ฉฐ <Link> ์™€ <Route>๋ฅผ ํ†ตํ•ด์„œ ๋ผ์šฐํŒ…์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ™ˆํŽ˜์ด์ง€, ์˜ํ™”ํŽ˜์ด์ง€, ๋ฆฌ๋ทฐํŽ˜์ด์ง€๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž. ๊ฐ๊ฐ์˜ URL์„ / , /movies , /reviews๋ผ๊ณ  ํ–ˆ์„ ๋•Œ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ํŽ˜์ด์ง€์—๋Š” path ์†์„ฑ์„ ํ†ตํ•ด์„œ ๊ฐ๊ฐ์˜ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง ๋˜๋Š” URL์ด ์ •ํ•ด์ง„๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์—์„œ ์‹ ๊ฒฝ์จ์•ผํ•  ๋ถ€๋ถ„์ด ์žˆ๋‹ค.
import React from 'react';
import { BrowserRouter as Router, Route } from 'react-router-dom';

const Routes = () => {
    return (
    	<Router>
          <Route path="/" component={Home} />
          <Route path="/movies" component={Movies} />
          <Route path="/reviews" component={Reviews} />
        </Router>
    );
};

๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๊ธฐ์„œ์˜ ๋ฌธ์ œ์ ์€, ํ™ˆํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐ”์„ ๋•Œ /movies ์™€ /reviews ๋˜ํ•œ / ๊ฐ€ ๋งค์นญ๋˜๊ธฐ ๋•Œ๋ฌธ์— 3๊ฐœ์˜ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ชจ๋‘ ๋ Œ๋”๋ง๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. /๋งŒ ๋ Œ๋”๋งํ•˜๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ 3๊ฐœ์˜ ํŽ˜์ด์ง€ ์ „๋ถ€ ๋ Œ๋”๋งํ•˜๊ฒŒ ๋˜๋Š” ์ผ์ด ๋ฐœ์ƒํ•œ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์œผ๋ก  ํฌ๊ฒŒ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  1. exact : ์ •ํ™•ํ•œ ๊ฒฝ๋กœ์˜ ์‚ฌ์šฉ
    • /๊ฐ€ ํฌํ•จ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ •ํ™•ํ•˜๊ฒŒ /์ด๋ผ๋Š” ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๋Š” ๊ฒฝ์šฐ๋งŒ ๋ Œ๋”๋งํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰ ๋ถ€๋ถ„์ ์œผ๋กœ ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ •ํ™•ํ•˜๊ฒŒ ์ผ์น˜ํ•˜๋Š” URL์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋ง์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
import React from 'react';
import { BrowserRouter as Router, Route } from 'react-router-dom';

const Routes = () => {
    return (
    	<Router>
          <Route exact path="/" component={Home} />
          <Route path="/movies" component={Movies} />
          <Route path="/reviews" component={Reviews} />
        </Router>
    );
};
  1. <Switch> : ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ ์ค‘ ์ฒซ๋ฒˆ์งธ(up->down) ๊ฒฝ๋กœ ์„ ํƒ
  • <Switch>๋Š” ์ฒซ๋ฒˆ์งธ๋กœ ๋งค์นญ๋˜๋Š” path๋ฅผ ๊ฐ€์ง„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋ง ์‹œํ‚จ๋‹ค. ์ด๊ฒƒ์ด exact path ์™€ ๋‹ค๋ฅธ ์ ์€ ์ฒซ๋ฒˆ์งธ ๋งค์นญ๋งŒ ๋ณธ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
import React from 'react';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';

const Routes = () => {
    return (
    	<Router>
          <Switch>
            <Route exact path="/" component={Home} />
            <Route path="/movies" component={Movies} />
            <Route path="/reviews" component={Reviews} />
          </Switch>
        </Router>
    );
};
  • ์•„๋ž˜ ์ฝ”๋“œ๋Š” ํŠœํ„ฐ๋ง์—์„œ ์ธ์Šคํƒ€๊ทธ๋žจ ํŽ˜์ด์ง€๋ฅผ ์—ฐ๊ฒฐํ•  ๋•Œ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ์ด๋‹ค.
  const AppMain = () => {
  return (
    //routing
    <Router>
      <Switch>
        <Route exact path="/">
          <MyPage />
        </Route>
        <Route path="/post">
          <Post />
        </Route>
      </Switch>
    </Router>
  );
};
export default AppMain;

pic1 -npm start๋กœ ํ„ฐ๋ฏธ๋„์—์„œ ์ฒ˜์Œ ๋ฆฌ์•กํŠธ๋กœ ํŒŒ์ผ์„ ์—ด๋ฉด ์ง€๋‚œ ์‹œ๊ฐ„๊นŒ์ง€ ๋งŒ๋“ค์—ˆ๋˜ ๊ฒŒ์‹œ๊ธ€ ํŽ˜์ด์ง€๊ฐ€ ๋‚˜์™”์—ˆ๋‹ค. ์ด๋Š” ๊ทธ ํŽ˜์ด์ง€๊ฐ€ ๋ฐ”๋กœ ๋œจ๋„๋ก ์ฒซ์‹œ๊ฐ„(?..๊ธฐ์–ต์ด ์ž˜ ์•ˆ๋‚œ๋‹ค..)์— ์„ค์ •ํ–ˆ๊ธฐ ๋–„๋ฌธ์ด๋‹ค. ์ƒˆ์‚ผ ๊ฐœ๋ฐœ์˜ ์„ธ๊ณ„์—์„œ <๊ทธ๋ƒฅ>์ด๋ผ๋Š” ๊ฒƒ์€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ๋Š๊ผˆ๋‹ค... ์–ธ๋‹ˆ๊ฐ€ ์ธ์Šคํƒ€๊ทธ๋žจ์— ์ฒ˜์Œ ์ ‘์†ํ•˜๋ฉด ๊ฒŒ์‹œ๊ธ€ ํŽ˜์ด์ง€๊ฐ€ ๋จผ์ € ๋‚˜์˜ค๋Š” ๊ฒŒ ๋งž๋Š”์ง€ ํ”„๋กœํ•„์ด ๋จผ์ € ๋‚˜์˜ค๋Š” ๊ฒŒ ๋งž๋Š”์ง€ ๋ฌผ์–ด๋ดค๋‹ค. ํ”„๋กœํ•„์ด ๋จผ์ € ๋‚˜์˜ค๋Š” ๊ฒŒ ๋งž๋‹ค๊ณ  ๋Œ€๋‹ตํ–ˆ๋Š”๋ฐ, ์ง€๊ธˆ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ์•„๋‹Œ ๊ฒƒ ๊ฐ™๋‹ค. ใ…‹ใ…‹ใ…‹ ๋ฌผ๋ก  ์ฒ˜์Œ์— ๋œจ๋Š” ๊ฑด ํƒ€์ž„๋ผ์ธ ํ˜•์‹์ด๋ผ์„œ ์šฐ๋ฆฌ๊ฐ€ ์ง€๋‚œ ์‹œ๊ฐ„๊นŒ์ง€ ๋งŒ๋“ค์–ด๋†“์•˜๋˜ ํŽ˜์ด์ง€๋ž‘ ์‚ด์ง ๋‹ค๋ฅด๊ธฐ๋Š” ํ•˜์ง€๋งŒ, ์–ด์จŒ๋“  ๊ฒŒ์‹œ๊ธ€์ด ๋จผ์ € ๋‚˜์˜ค๋Š” ๊ฒŒ ๋งž๋Š”๋ฐ ์–ธ๋‹ˆ๊ฐ€ ๊ทธ๋Ÿด ์ˆ˜๋„ ์žˆ์ง€ํ•˜๋ฉด์„œ ๋„˜์–ด๊ฐ”๋‹ค. ์—ญ์‹œ ์—ฐ์ฃผ์–ธ๋‹ˆ๋Š” ์ตœ๊ณ ์˜ ํŠœํ„ฐ๋‹ค...๐Ÿ˜Ž

ReactDOM.render(
  <React.StrictMode>
    <AppMain />
  </React.StrictMode>,
  document.getElementById("root")
);

pic1

  • ์˜ค๋Š˜ ํŠœํ„ฐ๋ง ๊ฑฐ์˜ ๋์ž๋ฝ์— ๋ฌธ๋“ ์ธ์Šคํƒ€๊ทธ๋žจ๊ณผ ๊ฐ™์€ ๋Œ€ํ˜•์„œ๋น„์Šค๋ฅผ ๋งŒ๋“œ๋ ค๋ฉด ๋ช‡ ๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์–ผ๋งˆ์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ ค์„œ ๋งŒ๋“œ๋Š” ๊ฒƒ์ธ์ง€ ๊ถ๊ธˆํ•ด์„œ ์–ธ๋‹ˆํ•œํ…Œ ๋ฌผ์–ด๋ดค๋‹ค. ์–ธ๋‹ˆ๊ฐ€ ๋ฌผ๋ก  ๋‚ด๋ถ€์‚ฌ์ •์€ ๋ชจ๋ฅด๋Š” ๊ฒƒ์ด๊ธด ํ•˜์ง€๋งŒ ์ตœ๊ทผ์—๋Š” ์• ์ž์ผ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์ด ๋งŽ์ด ์“ฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๋ถ€์—์„œ๋Š” ํ›จ์”ฌ ๋นจ๋ฆฌ ๋งŒ๋“ค๊ณ  ์ˆ˜์ฐจ๋ก€์˜ ํ”ผ๋“œ๋ฐฑ์„ ๊ฑฐ์ณ์„œ ์™„์„ฑ๋˜์—ˆ์„ ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ํ–ˆ๋‹ค.
  • ์• ์ž์ผ(agile a.์‹ ์†ํ•œ,๋ฏผ์ฒฉํ•œ) ๋ฐฉ๋ฒ•๋ก  : ์• ์ž์ผ์€ ์‹ ์†ํ•œ ๋ฐ˜๋ณต ์ž‘์—…์„ ํ†ตํ•ด ์‹ค์ œ ์ž‘๋™ ๊ฐ€๋Šฅํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜์—ฌ ์ง€์†์ ์œผ๋กœ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐฉ์‹
  • pic1

์†Œ๊ฐ

2์ฃผ์ •๋„ ํŠœํ„ฐ๋ง ๋๋‚˜๊ณ  ๋ฐ”๋กœ ๋‚ด์šฉ์ •๋ฆฌ๋ฅผ ๋ชปํ•ด์„œ ๋ฉฐ์น  ์ง€๋‚˜์„œ ํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ ๋‚ด์šฉ์ด ๊ธฐ์–ต์ด ์•ˆ๋‚˜์„œ ์• ๋ฅผ ๋จน์—ˆ๋‹ค.. ๋ฏธ๋ฆฌ๋ฏธ๋ฆฌ ๋ณต์Šตํ•˜๊ณ  ํŠœํ„ฐ๋ง ๋ณต์Šต github์— ์—…๋กœ๋“œํ•˜๊ธฐ!! ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ๋„ ์žฌ๋ฏธ์žˆ๊ณ  ์ฒ˜์Œ์—๋Š” ๋‚ฏ์„ค๊ฒŒ ๋Š๊ปด์กŒ๋˜ reactํ•จ์ˆ˜ํ˜•ํƒœ๋„ ์ต์ˆ™ํ•ด์ง„ ๊ฒƒ ๊ฐ™์•„์„œ ๋ฟŒ๋“ฏํ•˜๋‹ค. 2์ฃผ์น˜ ๋ณต์Šต๋„ ๋นจ๋ฆฌ ํ•ด์•ผ์ง€๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ™‰

์ธ์ฆ์ƒท

๋‚ ์งœ ์žฅ์†Œ ๋ฐ ์‹œ๊ฐ„ ์ธ์ฆ์ƒท
20210703 @์ดํ™”์Šคํ„ฐ๋””์นดํŽ˜ 18:00~19:30(1H30M) pic1
20210710 @์ดํ™”์Šคํ„ฐ๋””์นดํŽ˜ 15:30~17:30(2H) pic1
20210711 @๋žญ์Šคํ„ฐ๋””์นดํŽ˜ 15:30~17:30(2H) pic1
20210717 @์ดํ™”์Šคํ„ฐ๋””์นดํŽ˜ 15:30~17:30(2H) pic1
20210718 @์ดํ™”์Šคํ„ฐ๋””์นดํŽ˜ 15:30~17:30(2H) pic1
20210724 @์ดํ™”์Šคํ„ฐ๋””์นดํŽ˜ 15:30~17:30(2H) pic1
20210725 @์ดํ™”์Šคํ„ฐ๋””์นดํŽ˜ 15:30~17:30(2H) pic1
20210730 @์ดํ™”์Šคํ„ฐ๋””์นดํŽ˜ 15:30~17:30(2H) pic1
20210801 @์ดํ™”์Šคํ„ฐ๋””์นดํŽ˜ 15:30~17:30(2H) pic1
20210807 @์ดํ™”์Šคํ„ฐ๋””์นดํŽ˜ 15:30~17:30(2H) pic1

About

๐Ÿ‘ฉโ€๐Ÿ’ป(๋ฉ˜ํ† )์„œ์—ฐ์ฃผ- (๋ฉ˜ํ‹ฐ)๊น€์ˆ˜์—ฐ, ์ž„์ˆ˜์•ˆ HTML,CSS,React๋กœ ์ธ์Šคํƒ€๊ทธ๋žจ ํด๋ก ์ฝ”๋”ฉํ•˜๊ธฐ

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published