๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

WEB32

[React] ContextAPI๋ฅผ ์‚ฌ์šฉํ•ด์„œ TodoList๋งŒ๋“ค๊ธฐ(1) : styled-components ๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ์—์„œ๋Š” ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค์–ด๋ดค์—ˆ๋Š”๋ฐ, ๊ทธ ๋•Œ์™€ ๋‹ค๋ฅด๊ฒŒ ์ด๋ฒˆ์—๋Š” contextAPI๋ฅผ ์ด์šฉํ•ด์„œ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์•˜๋‹ค. ์•„์ง contextAPI์— ๋Œ€ํ•ด์„œ ๋ˆ„๊ตฌ์—๊ฒŒ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์„๋งŒํผ ์ •๋ฆฌ๊ฐ€ ์•ˆ๋˜์–ด์žˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ๋‹ค์‹œ ์ƒˆ๋กœ์šด ๋งˆ์Œ์œผ๋กœ ๊ณต๋ถ€๋ฅผ ํ•ด๋ดค๋‹ค. ๊ทธ๋ž˜์„œ! ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” contextAPI์— ๋Œ€ํ•œ ๊ฐœ๋…๋“ค์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜๊ณ , ํˆฌ๋‘๋ฆฌ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด์„œ ๋‹ค์‹œ ์ •๋ฆฌํ•ด๋ณผ ์ƒ๊ฐ์ด๋‹ค. contextAPI๋ฅผ ์‚ฌ์šฉํ•œ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ ์˜ˆ์ œ๋Š” ๋ฒจ๋กœํผํŠธ๋‹˜์˜ ์ด ๊ธ€์„ ์ฐธ๊ณ ํ•ด์„œ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € styled-components๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ๊พธ๋ฉฐ์คฌ๋Š”๋ฐ, ๊ฑฐ๊ธฐ์„œ ์‚ฌ์šฉ๋œ ์Šคํƒ€์ผ๋ง์—์„œ ๋‚ด๊ฐ€ ์ž˜ ๋ชฐ๋ž๋˜ ๋ถ€๋ถ„๋“ค์— ๋Œ€ํ•ด ์ ์–ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. createGlobalStyle : ์ด ๊ธฐ๋Šฅ์€ ํŽ˜์ด์ง€ ์ „.. 2021. 1. 31.
[React] ๋Œ“๊ธ€๊ธฐ๋Šฅ ๊ตฌํ˜„ ๐Ÿ“–์š”์ฆ˜ ๋ฆฌ์•กํŠธ๋ฅผ ์–ด๋Š์ •๋„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋‚ด ํž˜์œผ๋กœ ๊ฐ„๋‹จํ•œ ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์— ๋ธ”๋กœ๊ทธ? SNS?์™€ ๊ฐ™์€ ํ˜•์‹์˜ ๊ฒŒ์‹œ๋ฌผ๊ณผ ๋Œ“๊ธ€๊ณผ ์ข‹์•„์š”๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ๋‹ค. ํ•˜๋‚˜์˜ ์‹ฑ๊ธ€ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ๋„ ์ด๋ ‡๊ฒŒ ๋งŽ์€ ์‹œํ–‰์ฐฉ์˜ค๊ฐ€ ํ•„์š”ํ•œ ๊ฑธ ๊ฒช์–ด๋ณด๋‹ˆ, ์•„์ง ๊ฐˆ ๊ธธ์ด ๋งŽ์ด ๋ฉ€๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค๐Ÿ˜ฅ ์ด ๊ธ€์€ ์ด๋ฒˆ ํŽ˜์ด์ง€๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๋‚ด๊ฐ€ ๊ฒช์—ˆ๋˜ ์˜ค๋ฅ˜๋“ค๊ณผ ์ด๋ฅผ ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•๊ณผ ์™œ ๊ทธ๋ ‡๊ฒŒ ์จ์•ผ๋งŒํ•˜๋Š”์ง€ ๊ทธ ์ด์œ ์— ๋Œ€ํ•ด์„œ ์จ๋ณด๋ ค๊ณ ํ•œ๋‹ค. ์ด๋ฒˆ์— ๊ฒช์€ ์˜ค๋ฅ˜๋Š” inputํƒœ๊ทธ๋กœ ์ด๋ฆ„๊ณผ ๋Œ“๊ธ€์˜ ๋‚ด์šฉ์„ ์ž…๋ ฅ๋ฐ›์•„ ๋Œ“๊ธ€์„ ๋„์šฐ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ์ž…๋ ฅ๋ฐ›์€ ๋‚ด์šฉ๋“ค์ด ๋œจ์ง€ ์•Š๊ณ  ๋นˆ ์นธ์ด ๋œจ๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ๋Œ“๊ธ€์˜ ์ž…๋ ฅ์„ ๋ฐ›๋Š” ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋˜์–ด์žˆ๋Š” commentInput.js์˜ ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. import React, .. 2021. 1. 25.
[JavaScript] filter() ๐Ÿ“–๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ๐Ÿ“–์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ปดํฌ๋„ŒํŠธ์˜ ๋ฐ˜๋ณต์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋ฐฐ์—ด ๊ฐ์ฒด์˜ ๋‚ด์žฅํ•จ์ˆ˜๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜์˜€๋Š”๋ฐ, ์ด๋ฅผ ์ข€ ๋” ์ž์„ธํ•˜๊ฒŒ ์•Œ์•„๋ณด๊ณ  ์‹ถ์—ˆ๋‹ค. ๋ฆฌ๋‹ค๊ธฐ์—์„œ filter()๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ•„ํ„ฐํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. const onRemove = id => { const nextNames = name.filter(name => name.id !== id); setNames(nextNames); }; ์ด ํ•จ์ˆ˜๋Š” ์ž…๋ ฅ๋œ id๋ฅผ ๋ฐ›์•„์„œ ๊ทธ id์™€ ๋‹ค๋ฅธ ์ฆ‰, ํ•ด๋‹น๋œ id๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ id์— ํ•ด๋‹น๋˜๋Š” name๋“ค์„ ๋ชจ์•„๋†“์€ ๋ฐฐ์—ด์ด nextNames๊ฐ€ ๋˜๋Š”๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๊ณ ๋‚˜์„œ setNames(nextNames)๋ฅผ ํ†ตํ•ด์„œ names๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•ด์ฃผ๋Š”๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด, ์—ฌ๊ธฐ์„œ fi.. 2021. 1. 24.
[JavaScript] push() & concat() ์˜ค๋Š˜์€ ๋ฆฌ์•กํŠธ๋ฅผ ๊ณต๋ถ€ํ•˜๋‹ค๊ฐ€ ๋ฏธ๋ค„๋†“์•˜๋˜ ๊ถ๊ธˆ์ฆ์„ ํ’€์–ด๋ณด์•˜๋‹ค. ๐Ÿ“–๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ๐Ÿ“–์˜ 6์žฅ์—์„œ ๋‚ด์žฅํ•จ์ˆ˜์— ๋Œ€ํ•œ ์–ธ๊ธ‰์ด ์žˆ์—ˆ๋Š”๋ฐ, ๊ฑฐ๊ธฐ์— concat, filter์™€ ๊ฐ™์€ ํ•จ์ˆ˜๊ฐ€ ์žˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ concat ํ•จ์ˆ˜๋ฅผ ์ฐพ์•„๋ณด๋‹ค๋ณด๋‹ˆ pushํ•จ์ˆ˜์™€ ๋น„๊ต๊ฐ€ ๋งŽ์ด ๋˜๊ธธ๋ž˜ ๊ฐ™์ด ๊ณต๋ถ€ํ•ด๋ณด์•˜๋‹ค. ์ด ๋‘ ํ•จ์ˆ˜๋“ค์€ ๋ฐฐ์—ด์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ๊ทธ๋Ÿผ ๊ทธ ์‚ฌ์ด์—์„œ ๋‘ ํ•จ์ˆ˜์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ผ๊นŒ? ๋จผ์ €, push ํ•จ์ˆ˜๋ฅผ ์•Œ์•„๋ณด๊ณ , concatํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ๋‹ค. ์™œ ๋‘ ํ•จ์ˆ˜๋ฅผ ๊ฐ™์ด ๋น„๊ตํ•˜๋Š”๊ฒƒ์ธ๊ฐ€? ๊ทธ ์ด์œ ๋Š” ๋‘ ๊ฐœ์˜ ๋ฐฐ์—ด์„ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด๋กœ ํ•ฉ์น  ๋•Œ, ์ผ์–ด๋‚˜๋Š”๋ฐ ํ•˜๋‚˜์˜ ์›์†Œ๋ฅผ ๋ฐ€์–ด๋„ฃ๋Š” push ๋Œ€์‹ ์— concat์„ ์‚ฌ์šฉํ•˜๋ผ๊ณ  ๋‘ ํ•จ์ˆ˜๋ฅผ ๊ฐ™์ด ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด ๊ธ€์€ MDN์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€๋‹ค. push() push๋Š” ๊ธฐ์กด.. 2021. 1. 20.
Sass์‚ฌ์šฉ ์˜ค๋ฅ˜ & Sass๋ฅผ CSS๋กœ ๋ฐ”๊พธ๊ธฐ ๋ฆฌ์•กํŠธ๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋งŽ์€ ์˜ˆ์ œ๋“ค์„ ์ ‘ํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ค‘์— Sass๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์ œ๋“ค์„ ๋งŽ์ด ๋งž๋‹ฅ๋“œ๋ ธ๋‹ค. CSS์™€ ๋‹ค๋ฅด๊ฒŒ ์ค‘๋ณต๋˜์ง€ ์•Š๊ฒŒ ์žฌํ™œ์šฉ์„ฑ์„ ๋†’์—ฌ์ฃผ๊ณ , ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์—ฌ์ค€๋‹ค๋Š” ํ˜นํ•˜๋Š” ๋งค๋ ฅ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ๋‚˜๋Š” ์—„์ฒญ๋‚œ ์˜ค๋ฅ˜ํญํƒ„์„ ๋งž์ดํ–ˆ๋‹ค.๐Ÿ˜ฅ ์˜ค๋Š˜ ์ด ํฌ์ŠคํŠธ์˜ ์ˆœ์„œ๋Š” SCSS์‚ฌ์šฉํ•˜๋ฉด์„œ ๋ฐœ์ƒํ–ˆ๋˜ ์˜ค๋ฅ˜ SCSS ์ฝ”๋“œ => CSS์ฝ”๋“œ ๐ŸคฏSCSS ์‹คํ–‰ ์˜ค๋ฅ˜ node sass version 5.0.0 is incompatible with ^4.0.0. scss์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ ํ›„, ์‹คํ–‰์„ ํ•˜๋ฉด ์ด๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚ฌ๋‹ค. node sass์˜ ๋ฒ„์ „์ด ์•ˆ๋งž๋Š”๋‹ค๋Š” ๊ฒƒ ์•„๋‹Œ๊ฐ€,,, ๊ทธ๋ž˜์„œ ๋ฐ”๋กœ ๊ตฌ๊ธ€๋ง์„ ํ•ด๋ดค๋‹ค. stackoverflow.com/questions/64625050/error-node-sass-version-5-0-.. 2021. 1. 13.
[React] ํˆฌ๋‘๋ฆฌ์ŠคํŠธ ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ&์ฝ”๋“œ ๋ถ„์„ ๐Ÿ“–๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ์„ ํ†ตํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ž‘์„ฑํ•œ ํฌ์ŠคํŠธ์ž…๋‹ˆ๋‹ค.๐Ÿ“– ์˜ค๋Š˜์€ ๊ทธ๋™์•ˆ ๋ฐฐ์› ๋˜ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ์ค‘์‹ฌ์œผ๋กœ ํ•  ์ผ์„ ์ž‘์„ฑํ•˜๊ณ  ๊ธฐ๋กํ•˜๋Š” ํˆฌ๋‘๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์•˜๋‹ค. ์ฒ˜์Œ์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์™„์„ฑ๋œ ํ•œ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋Š” ๊ฑฐ๋ผ ์˜ˆ์ œ๋ฅผ ๋”ฐ๋ผํ•˜๋ฉด์„œ๋„ ์ปดํฌ๋„ŒํŠธ๊ฐ„์˜ ๊ตฌ์กฐ์™€ ์„ธ์„ธํ•˜๊ฒŒ ์“ฐ์ด๋Š” ์†์„ฑ๋“ค์— ๊ด€ํ•ด ๋” ์ž์„ธํ•˜๊ฒŒ ์•Œ๊ณ  ์‹ถ์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š”๋ฐ ์žˆ์–ด ๊ถ๊ธˆํ•œ ๋ถ€๋ถ„๋“ค์ด ๋งŽ์ด ์žˆ์–ด์„œ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค. ์ผ๋‹จ ์ •๋ฆฌํ•œ ๋ถ€๋ถ„์€ ํˆฌ๋‘๋ฆฌ์ŠคํŠธ์˜ ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ import cn from {classnames}; ๋ฆฌ์•กํŠธ๋กœ ๋งŒ๋“  ํˆฌ๋‘๋ฆฌ์ŠคํŠธ ์ฝ”๋“œ ์›๋ž˜๋Š” ์ฝ”๋“œ๋ฅผ ๋‹ค ๋”ฐ๋กœ ์˜ฌ๋ฆฌ๋ ค๊ณ  ํ–ˆ์ง€๋งŒ, ๋งŒ๋“  ํŒŒ์ผ๋„ ๋งŽ๊ณ  ํ•˜๋‹ค๋ณด๋‹ˆ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์งˆ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ํŒ๋‹จํ•˜์— ๊นƒํ—™์„ ์˜ฌ๋ฆฌ๋Š” ๊ฒŒ ๋” ๋‚˜์„ ๊ฒƒ ๊ฐ™๋‹ค. github.com/MinJoo-.. 2021. 1. 11.
๋ฐ˜์‘ํ˜•