12์›” ์…‹์งธ ์ฃผ ์ฃผ๊ฐ„ ํšŒ๊ณ 
๐Ÿ“˜ Retrospect/๐Ÿ’ญ ํšŒ๊ณ  2022. 12. 18. 16:43

12์›” ์…‹์งธ ์ฃผ๋ฅผ ๋ณด๋‚ด๋ฉฐ ์—…๊ทธ๋ ˆ์ด๋“œ๋œ ํˆฌ๋‘ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ๋งŒ๋“ค์–ด๋ณธ ํ•œ ์ฃผ.. ๊ทธ ์‚ฌ์ด ๋ˆˆ๋„ ๋งŽ์ด ์˜ค๊ณ  ๋‚ ์”จ๊ฐ€ ์–ด๋งˆ ๋ฌด์‹œํ•˜๊ฒŒ ์ถ”์›Œ์กŒ๋‹ค. ์ด๋Ÿด ๋•Œ์ผ์ˆ˜๋ก ๊ฑด๊ฐ•๊ด€๋ฆฌ์— ์œ ์˜ํ•ด์„œ ํŽ˜์ด์Šค๋ฅผ ์žƒ์ง€ ๋ง์ž!.. ์ฐจ์ฃผ ๋ชฉ์š”์ผ๋ถ€ํ„ฐ๋Š” ํ”„๋กœ์ ํŠธ ์‹œ์ž‘์ด๋‹ค. ๐Ÿ˜‡ ํž˜๋‚ด๋ณด์ž!.. ๐Ÿ‘€ Fact ๋ฆฌ๋•์Šค๋ฅผ ์ด์šฉํ•œ ํˆฌ๋‘ ๋ฆฌ์ŠคํŠธ๋ฅผ ์™„์„ฑํ•˜๊ณ  ๋ฆฌํŒฉํ† ๋ง๊นŒ์ง€ ํ•ด๋ณด์•˜๋‹ค. ํˆฌ๋‘ ๋ฆฌ์ŠคํŠธ CRUD ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ๋งŒ๋“ค์—ˆ๋‹ค. ์ˆ™๋ จ ์ฃผ์ฐจ ๋ช‡๋ช‡ ํ‚ค์›Œ๋“œ๋“ค์„ ๋””๊น… ํ–ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ๋งค์ผ ๊พธ์ค€ํžˆ ํ’€์—ˆ๋‹ค. ๐Ÿ™‚ Feeling ์ˆ˜์ • ๊ธฐ๋Šฅ๊นŒ์ง€ ์™„์„ฑํ•˜๊ฒŒ ๋˜์–ด ๋ฟŒ๋“ฏํ–ˆ๋‹ค. ํŒ€์— ์ง€๊ฐ๊ธˆ ์ ๋ฆฝ์„ ๋„์ž…ํ–ˆ๋‹ค!.. ์™ ์ง€ ๊ฒฝ๊ฐ์‹ฌ์ด ๋“ ๋‹ค. ๐Ÿ” Finding styled-components์˜ props ํ™œ์šฉ๊ณผ ์ „์—ญ CSS ์„ค์ • Query String๊ณผ Path variable ๋น„ํŠธ ์—ฐ์‚ฐ์ž | ..

ํˆฌ๋‘ ๋ฆฌ์ŠคํŠธ ๋ฆฌํŒฉํ† ๋ง
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2022. 12. 16. 20:40

Today, What I learned? ์ „์ฒด์ ์ธ ๊ณผ์ œ ๋ฆฌ๋ทฐ๋ฅผ ๋“ฃ๊ณ , ๋žœ๋ค ํ•˜๊ฒŒ ๋ฝ‘ํžŒ ๋‹ค๋ฅธ ๋ถ„๋“ค์˜ ๊ฒฐ๊ณผ๋ฌผ๊ณผ ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค ๋ณด๋‹ˆ ๋‚ด ์ฝ”๋“œ์—์„œ ๊ณ ์น˜๊ณ  ์‹ถ์€ ๋ถ€๋ถ„๋“ค์ด ์ƒ๊ฒผ๋‹ค! ์•ˆ ๊ทธ๋ž˜๋„ ์ œ์ถœํ•˜๊ณ  ๋ญ”๊ฐ€... ๋ถ€์กฑํ•œ ์ด ๋Š๋‚Œ..๐Ÿค” ๊ฐ™์€ ์ƒ๊ฐ์ด ๋“ค์—ˆ๋Š”๋ฐ ์—ญ์‹œ ๊ฐˆ๊ธธ์ด ๋ฉ€๋‹ค!.. ์ผ๋‹จ ์šฐ์„ ์ ์œผ๋กœ ๋ฆฌํŒฉํ† ๋งํ•œ ๋ถ€๋ถ„๋“ค์„ ์ •๋ฆฌํ•ด๋ณธ๋‹ค. TodoList์— ๋ฟŒ๋ ค์ฃผ๋Š” ๋ถˆํ•„์š”ํ•œ props ์ œ๊ฑฐ ์™œ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ–ˆ์„๊นŒ ์‹ถ์€ ๋ถ€๋ถ„!.. ์–ด์ฐจํ”ผ ๋ฆฌ๋•์Šค๋กœ ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ณ  ์žˆ๊ณ  ๋ฆฌ๋“€์„œ๋กœ๋ถ€ํ„ฐ todos ๋ผ๋Š” ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ๋ฟŒ๋ ค์ฃผ๋Š”๋ฐ, ๊ตณ์ด props๋กœ ๋„˜๊ฒจ์ค„ ํ•„์š”๊ฐ€ ์—†์—ˆ๋‹ค. TodoList ์ปดํฌ๋„ŒํŠธ๋กœ useSelector ํ›…์„ ์˜ฎ๊ฒจ์„œ ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ Œ๋”๋ง ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝํ–ˆ๋‹ค. ๋ฐ˜๋ณต๋˜๋Š” label, input ์ปดํฌ๋„ŒํŠธํ™” ํˆฌ๋‘ ์ž…๋ ฅ ๋ถ€๋ถ„..

React์™€ Redux๋ฅผ ์ด์šฉํ•œ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋ฉฐ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2022. 12. 15. 20:43

๋‘ ๋ฒˆ์งธ ํˆฌ๋‘ ๋ฆฌ์ŠคํŠธ react-router-dom, styled-components์™€ redux์— ๋Œ€ํ•ด ์ข€ ๋” ๊ณต๋ถ€ํ•œ ํ›„์— ๊ธฐ์ดˆ ํˆฌ๋‘ ๋ฆฌ์ŠคํŠธ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์„œ ๋‹ค์‹œ ํ•œ๋ฒˆ ๋งŒ๋“ค์–ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. ํˆฌ๋‘ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค๋ฉฐ UI/UX ์ ์œผ๋กœ๋‚˜, ๊ธฐ์ˆ ์ ์œผ๋กœ ๊ณ ๋ฏผํ–ˆ๋˜ ๋ถ€๋ถ„๋“ค๊ณผ ๊นจ๋‹ฌ์€ ์ .. ๊ฐ™์€ ๊ฒƒ๋“ค์„ ํšŒ๊ณ ํ•ด๋ณด๋ ค ํ•œ๋‹ค. ์™„์„ฑ๋œ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐฐํฌํ•œ ๋งํฌ๋Š” ์•„๋ž˜! https://todolist-redux-theta.vercel.app/ React App todolist-redux-theta.vercel.app UI/UX ์ง€๋‚œ๋ฒˆ์— ๋งŒ๋“ค ๋•Œ๋Š” ๊ฝค ์ž์œ ๋ถ„๋ฐฉํ•˜๊ฒŒ ๋งŒ๋“ค์–ด๋ดค์œผ๋‹ˆ ์ด๋ฒˆ์—๋Š” ์š”๊ตฌ๋˜๋Š” ํ‹€์„ ์œ ์ง€ํ•˜๋˜ ์‚ฌ์šฉ์ž์˜ ํŽธ์˜๋ฅผ ์ƒ๊ฐํ•ด์„œ ๋ ˆ์ด์•„์›ƒ์„ ์งœ๋ณด์•˜๋‹ค. ํˆฌ๋‘ ํ•˜๋‹จ๋ถ€์˜ ๋ฒ„ํŠผ์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋”ฐ์กŒ์„ ๋•Œ, ์œ ์ € ์ž…์žฅ์—์„œ๋Š” '์™„๋ฃŒ'๊ฐ€ ..

Query parameter, Query String vs Path Variable
๐Ÿ“” Studying/Web 2022. 12. 14. 20:17

๋“ค์–ด๊ฐ€๋ฉฐ ์›น์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ค ์‹์œผ๋กœ ์ „์†กํ•˜๊ณ  ์–ด๋–ค ๊ฒฝ๋กœ(End-point)์— ์ „๋‹ฌํ• ์ง€๋ฅผ ์ค‘์š”ํ•˜๊ฒŒ ๋ณธ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ณ  ๋ฐ›๋Š” ๋ฐฉ์‹์œผ๋กœ๋Š” GET, POST ๋“ฑ์˜ HTTP ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๊ณ , ๊ด€๋ จํ•ด์„œ REST API๋ผ๋Š” ๊ฐœ๋…์ด ์žˆ๋‹ค. ๊ทธ๋ณด๋‹ค ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๊ฒฝ๋กœ์— ๋Œ€ํ•ด์„œ, ๊ทธ ์ค‘์—์„œ๋„ Query Parameter์™€ Path Variable์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค. Query Parameter (Query String) ์œ„ ์ด๋ฏธ์ง€๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ”ํ•˜๊ฒŒ ๋ณด๋Š” URL์˜ ๊ตฌ์กฐ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ? ์ดํ›„๋ถ€ํ„ฐ ์‹œ์ž‘๋˜๋Š” Parameters๋ผ๋Š” ๋ถ€๋ถ„์ด ๋ฐ”๋กœ Query Parameter์ด๋‹ค. ํ”ํžˆ Query String, ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค. ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง์€ ๊ฐ™์€ ํ‘œํ˜„! Query St..

React onClick์— ํ•จ์ˆ˜ ๋„˜๊ธธ ๋•Œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ฒ˜๋ฆฌ
๐Ÿ“” Studying/๐Ÿ’Œ TIL 2022. 12. 13. 20:31

Today, What I learned? redux์™€ styled-components, react-router-dom์„ ์ด์šฉํ•ด์„œ ์ข€ ๋” ์—…๊ทธ๋ ˆ์ด๋“œ๋œ ํˆฌ๋‘ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ์ค‘!.. ์ด์ „๋ณด๋‹ค ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ข€ ๋” ์„ธ๋ถ„ํ™” ํ•˜๋‹ค๋ณด๋‹ˆ ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ๋„ ๋ถ„๋ฆฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋ฌธ์ œ๋Š” ๋ฒ„ํŠผ ์ปดํฌ๋„ŒํŠธ์— ์ „๋‹ฌ๋˜๋Š” ์—ฌ๋Ÿฌ ํ•จ์ˆ˜๋“ค์„ ์–ด๋–ป๊ฒŒ ์‹คํ–‰์‹œํ‚ฌ ๊ฒƒ์ด๋ƒ!.. ์˜€๋Š”๋ฐ... ๋ฆฌ์•กํŠธ์—์„œ onClick ์ด๋ฒคํŠธ์— ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ์–ด๋–ป๊ฒŒ ๋„˜๊ฒจ์ค„ ๊ฒƒ์ธ์ง€๋ฅผ ์•Œ๊ฒŒ ๋œ ๊ณผ์ •์„ ์ •๋ฆฌํ•ด๋ณธ๋‹ค. ๊ธฐ์กด์˜ ์ฝ”๋“œ type์— ๋”ฐ๋ผ์„œ props๋กœ ๋ฐ›์•„์˜จ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋“ค์„ ์‹คํ–‰์‹œํ‚ค๋„๋ก ํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ์ €๊ธฐ๊นŒ์ง„ ์ข‹์•˜๋Š”๋ฐ, ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋จ์— ๋”ฐ๋ผ ํƒ€์ž…์ด ์ถ”๊ฐ€๋˜๋‹ค ๋ณด๋‹ˆ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋กœ๋Š” ๋ฒ„๊ฑฐ์šด ์ƒํ™ฉ์ด ๋ฐœ์ƒ.. ๊ณ„์† ์ด๋ ‡๊ฒŒ? ์ค„์ค„์ด ์†Œ์„ธ์ง€์ฒ˜๋Ÿผ? ๊ฐ„๋‹ค๊ณ ? ์ด๋ ‡๊ฒŒ ์“ฐ๋Š” ๊ฒƒ์€ ์‚ผํ•ญ ..

[JavaScript] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : OXํ€ด์ฆˆ
๐Ÿ““ Algorithm 2022. 12. 12. 20:48

๋ฌธ์ œ ๋ง์…ˆ, ๋บ„์…ˆ ์ˆ˜์‹๋“ค์ด 'X [์—ฐ์‚ฐ์ž] Y = Z' ํ˜•ํƒœ๋กœ ๋“ค์–ด์žˆ๋Š” ๋ฌธ์ž์—ด ๋ฐฐ์—ด quiz๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์ˆ˜์‹์ด ์˜ณ๋‹ค๋ฉด "O"๋ฅผ ํ‹€๋ฆฌ๋‹ค๋ฉด "X"๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋‹ด์€ ๋ฐฐ์—ด์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ์ž…์ถœ๋ ฅ ์˜ˆ quiz result ["3 - 4 = -3", "5 + 6 = 11"] ["X", "O"] ["19 - 6 = 13", "5 + 66 = 71", "5 - 15 = 63", "3 - 1 = 2"] ["O", "O", "X", "O"] ํ’€์ด =์„ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ์˜ ์—ฐ์‚ฐ์ด ์˜ค๋ฅธ์ชฝ์˜ ์ˆ˜์™€ ์ผ์น˜ํ•˜๋Š”์ง€๋ฅผ ๋”ฐ์ ธ O, X๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ๋‹ค. quiz ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ split ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋จผ์ € ๋“ค์—ˆ๋‹ค. function solution(quiz..

12์›” ๋‘˜์งธ ์ฃผ ์ฃผ๊ฐ„ ํšŒ๊ณ 
๐Ÿ“˜ Retrospect/๐Ÿ’ญ ํšŒ๊ณ  2022. 12. 11. 14:05

12์›” ๋‘˜์งธ ์ฃผ๋ฅผ ๋ณด๋‚ด๋ฉฐ ๋ฆฌ์•กํŠธ ํ•™์Šต์— ๋ฐ”์œ ํ•œ ์ฃผ์˜€๋‹ค. ๋งค์ฃผ ๋˜‘๊ฐ™์ด ์“ฐ๋Š” ๊ฒƒ ๊ฐ™๊ธด ํ•œ๋ฐ ์ •๋ง ํ•œ ์ฃผ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ง€๋‚˜๊ฐ€๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค. ๋ˆˆ ๊นœ์งํ•˜๋ฉด ์ƒˆํ•ด๊ฐ€ ๋  ๋“ฏํ•˜๋‹ค.. ๐Ÿ˜‚ ๊ทธ๋Ÿผ์—๋„ ๋ช‡ ๋‹ฌ ์ „๊ณผ ๋น„๊ตํ•ด์„œ ๊พธ์ค€ํžˆ ์„ฑ์žฅํ•˜๊ณ  ์žˆ๋Š” ๋‚˜.. ์นญ์ฐฌํ•ด! ๐Ÿ‘ ๐Ÿ‘€ Fact ๋ฆฌ์•กํŠธ ๊ธฐ์ดˆ์ ์ธ ํˆฌ๋‘ ๋ฆฌ์ŠคํŠธ๋ฅผ ์™„์„ฑํ–ˆ๋‹ค. styled-components๊ฐ€ ์ƒ๊ฐ๋ณด๋‹ค ๋” ์ข‹์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž„์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. redux์— ๋Œ€ํ•ด ๋ณต์Šตํ–ˆ๋‹ค. ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ํˆด์ธ yarn์„ ์ฒ˜์Œ ์‚ฌ์šฉํ•ด๋ณด์•˜๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ๋งค์ผ ๊พธ์ค€ํžˆ ํ’€์—ˆ๋‹ค. ๐Ÿ™‚ Feeling ์š”๊ตฌ์‚ฌํ•ญ์„ ์ž˜ ํ™•์ธํ•ด์•ผ ํ•จ์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ๋Š๊ผˆ๋‹ค. ๊ผผ๊ผผํ•˜๊ฒŒ ์ฝ๊ณ  ์ฒดํฌํ•˜์ž! ๊ณผ์ œ๋ฅผ ์ž˜ ๋๋‚ด์„œ ๋‹คํ–‰์ด๋‹ค! ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉฐ ์ž˜ ๋ชฐ๋ž๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์„ ์ตํž ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ์ข‹๋‹ค. ๐Ÿ” Finding ..

[Javascript] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : ์˜ˆ์‚ฐ
๐Ÿ““ Algorithm 2022. 12. 9. 20:43

๋ฌธ์ œ S์‚ฌ์—์„œ๋Š” ๊ฐ ๋ถ€์„œ์— ํ•„์š”ํ•œ ๋ฌผํ’ˆ์„ ์ง€์›ํ•ด ์ฃผ๊ธฐ ์œ„ํ•ด ๋ถ€์„œ๋ณ„๋กœ ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ธˆ์•ก์„ ์กฐ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ์ „์ฒด ์˜ˆ์‚ฐ์ด ์ •ํ•ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๋ถ€์„œ์˜ ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•ด ์ค„ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ตœ๋Œ€ํ•œ ๋งŽ์€ ๋ถ€์„œ์˜ ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•ด ์ค„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผํ’ˆ์„ ๊ตฌ๋งคํ•ด ์ค„ ๋•Œ๋Š” ๊ฐ ๋ถ€์„œ๊ฐ€ ์‹ ์ฒญํ•œ ๊ธˆ์•ก๋งŒํผ์„ ๋ชจ๋‘ ์ง€์›ํ•ด ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 1,000์›์„ ์‹ ์ฒญํ•œ ๋ถ€์„œ์—๋Š” ์ •ํ™•ํžˆ 1,000์›์„ ์ง€์›ํ•ด์•ผ ํ•˜๋ฉฐ, 1,000์›๋ณด๋‹ค ์ ์€ ๊ธˆ์•ก์„ ์ง€์›ํ•ด ์ค„ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋ถ€์„œ๋ณ„๋กœ ์‹ ์ฒญํ•œ ๊ธˆ์•ก์ด ๋“ค์–ด์žˆ๋Š” ๋ฐฐ์—ด d์™€ ์˜ˆ์‚ฐ budget์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ตœ๋Œ€ ๋ช‡ ๊ฐœ์˜ ๋ถ€์„œ์— ๋ฌผํ’ˆ์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ d budget resu..

[React] Styled-Components ํ™œ์šฉ
๐Ÿ“” Studying/React 2022. 12. 8. 20:50

React์—์„œ์˜ CSS ๋ฆฌ์•กํŠธ์—์„œ CSS๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. CSS ํŒŒ์ผ์„ import ํ•˜๊ฑฐ๋‚˜ module๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๊ณ , SASS ๊ฐ™์€ ์ „์ฒ˜๋ฆฌ๊ธฐ๋‚˜ tailwind ๋“ฑ์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ด์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ์ค‘์—์„œ ์˜ค๋Š˜์€ Styled-components์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค. Styled-components์— ๋Œ€ํ•ด์„œ ๋ชฐ๋ž๋˜ ๋ถ€๋ถ„์ด ๋งŽ์•˜๊ณ , ๋ฌด์—‡๋ณด๋‹ค ์‚ฌ์šฉํ•ด๋ณด๋‹ˆ ์ƒ๊ฐ๋ณด๋‹ค ๋” ํŽธํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค! Styled-components Styled-components๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•ˆ์— CSS๋ฅผ ์ž‘์„ฑํ•˜๋Š” CSS-in-JS ๋ฐฉ์‹์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด์„œ CSS ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด๋‚ด์„œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊พธ๋ฐ€ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฐ CSS-in-JS ๋ฐฉ์‹์˜ ํŒจํ‚ค์ง€๊ฐ€ Styled-compo..

[React] State์™€ Props
๐Ÿ“” Studying/React 2022. 12. 7. 21:39

๋ฆฌ์•กํŠธ์˜ state์™€ props์— ๋Œ€ํ•ด์„œ ๊ฐ€๋ณ๊ฒŒ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค..! ํ˜„์žฌ ๋‚ด์šฉ์€ ์ถ”ํ›„ ๋ง๋ถ™์—ฌ์ง€๊ฑฐ๋‚˜ ์ˆ˜์ •๋  ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ˜‡ ((์ž˜๋ชป๋œ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์ฒจ์–ธ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜์ž…๋‹ˆ๋‹ค..)) State ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์—์„œ ๋ฐ”๋€” ์ˆ˜ ์žˆ๋Š” ๊ฐ’. useState ํ›…์„ ํ†ตํ•ด ๋ฆฌ์•กํŠธ์— state์˜ ๋ณ€ํ™”๋ฅผ ์•Œ๋ ค์„œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์žฌํ‰๊ฐ€๋  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ์ดํ›„ JSX๊ฐ€ ๋‹ค์‹œ ํ‰๊ฐ€๋˜๋ฉฐ ๋ณ€ํ™”๋œ ๋ถ€๋ถ„์„ ํ™”๋ฉด์— ๋ Œ๋”๋งํ•œ๋‹ค. const [state, setState] = useState(''); state์— ๋ฐ”๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ์•ˆ ๋ ๊นŒ? useState๊ฐ€ const๋กœ ์ž‘์„ฑ๋œ ์ด์œ ๋Š”?? ๐Ÿค” ์šฐ์„  state๋Š” setState ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. state๋ฅผ ๋ฐ”๋กœ ์“ฐ๋ฉด ์•ˆ ๋˜๋‚˜? ์‹ถ์„ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ state๊ฐ€ ์ง์ ‘ ์ˆ˜์ •๋  ์œ„ํ—˜์„ ๋ฐฉ์ง€..