๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ

๐Ÿ“บ Front End71

[React-Spring ๊ณต์‹ ๋ฌธ์„œ๋กœ ๋ฐฐ์šฐ๊ธฐ] useSpring ํ˜„์žฌ React-Spring์—๋Š” 5๊ฐ€์ง€ Hook์ด ์žˆ๋‹ค. useSpring : Data๋ฅผ a ์—์„œ b๋กœ ์ด๋™์‹œํ‚ค๋Š” ๋‹จ์ผ Spring์ด๋‹ค. useSprings : ๋‹ค์ค‘ Spring์œผ๋กœ List์™€ ๊ฐ™์ด ๊ฐ๊ฐ์˜ Spring์ด ์›€์ง์ด๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. useTrail : ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ ๋‹ค์ค‘ Springs์„ ๊ตฌ๋™์‹œํ‚ค๋ฉฐ, Spring์€ ๊ทธ๋ฅผ ๋”ฐ๋ฅด๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๊ฒƒ๋“ค์„ ์ด๋ˆ๋‹ค. useTransition : mount/unmount๋ฅผ ๋‹ค๋ฃฌ๋‹ค. useChain : ๋‹ค๋Ÿ‰์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ํ•จ๊ป˜ ๋™๋ฐ˜ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. useSpring ๊ฐ€์žฅ ์‰ฌ์šด ๊ฒƒ์€ useSpring์ด๋‹ค. ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ๊ฒƒ๋“ค๋„ ์ด useSpring์— ๊ธฐ๋ฐ˜ํ•œ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•˜๋‹ค. import {useSpring, animated} from.. 2020. 11. 4.
[React-Spring ๊ณต์‹ ๋ฌธ์„œ๋กœ ๋ฐฐ์šฐ๊ธฐ] React-Spring ์†Œ๊ฐœ React-Spring์€ ์Šคํ”„๋ง์˜ ๋ฌผ๋ฆฌ์— ๊ธฐ๋ฐ˜ํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ UI animation์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๊ณ , React-Spring์€ ๋‹น์‹ ์˜ ์•„์ด๋””์–ด๋ฅผ ์›€์ง์ด๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ถฉ๋ถ„ํžˆ ์œ ์—ฐํ•œ Tools๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํ˜„๋Œ€์˜ ์• ๋‹ˆ๋ฉ”์ด์…˜์— ์ ‘๊ทผํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์•„๋‹ค. ์ด๊ฒƒ์€ Christopher Chedau์˜ animated์™€ Cheng Lou์˜ react-motion์— ๋งค์šฐ ์˜๊ฐ์„ ๋ฐ›์•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ๊ฐ•๋ ฅํ•œ ์„ฑ๋Šฅ๊ณผ React-motion์˜ ์‚ฌ์šฉ ํŽธ์˜์„ฑ์„ ๊ณ„์Šนํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์• ๋‹ˆ๋ฉ”์ด์…˜์€ ๋Œ€๋ถ€๋ถ„ ํ•„์ˆ˜์ ์ด๋ฉฐ ๋ฐ˜์‘ ๋™์ž‘์€ ๋Œ€๋ถ€๋ถ„ ์„ ์–ธ์ ์ด๊ณ  ๋ฐ˜์‘ ์Šคํ”„๋ง ๋ธŒ๋ฆฌ์ง€ ๋‘˜ ๋‹ค ํ•„์ˆ˜์ ์ด๋‹ค. ๋‹น์‹ ์€ ๋‹น์‹ ์˜ ๊ฒฌํ•ด๋ฅผ ํ˜•์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋ฐ˜๋“œ์‹œ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š” ์ž‘๊ณ  ๋ช…์‹œ์ ์ธ ํšจ.. 2020. 11. 4.
[๋ฆฌ์•กํŠธ Hook] useState ๋กœ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๊ฐ’์„ ์ด์šฉํ•˜์—ฌ ๋ฐฐ์—ด ๋ Œ๋”๋ง ํ•˜๊ธฐ. ์ง€๋‚œ ์‹œ๊ฐ„ ์šฐ๋ฆฌ๋Š” useState๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์— ์ƒํƒœ๋ฅผ ๋ถ€์—ฌํ•˜๊ธฐ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค. ํ•˜์ง€๋งŒ ์ง€๋‚œ ์‹œ๊ฐ„ useState์— ๋Œ€ํ•ด์„œ ๋ง›๋งŒ ๋ดค๊ธฐ ๋•Œ๋ฌธ์— ์•„์ง ์‹ค์ „์—์„œ useState๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ์—๋Š” ํ„ฑ์—†์ด ๋ถ€์กฑํ•  ๊ฒƒ ๊ฐ™๋‹ค๋Š” ๋Š๋‚Œ์„ ๋ฐ›์•˜๋‹ค. ์˜ค๋Š˜์€ useState์— ๋Œ€ํ•ด์„œ ํ™•์‹คํžˆ ์ดํ•ดํ•ด๋ณด๊ณ  ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„์ง€ ์•Œ์•„๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด์ž. ์ตœ์ข… ๊ฒฐ๊ณผ๋ฌผ ์šฐ๋ฆฌ๊ฐ€ ์ด๋ฒˆ ์‹œ๊ฐ„ ์ตœ์ข…์ ์œผ๋กœ ๋งŒ๋“ค ๊ฒƒ์€ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์— ๋”ฐ๋ผ์„œ ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ  ์ด๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•ด ๋ณผ ๊ฒƒ์ด๋‹ค. ๊ฒฐ๊ณผ๋ฌผ์€ ์•„๋งˆ ์ด๋ ‡๊ฒŒ ๋‚˜์˜ฌ๊ฒƒ์ด๋‹ค. ์ˆœ์„œ ์ž…๋ ฅ(input form) ํผ ์ƒ์„ฑ input ํผ์˜ onChange ๋ฉ”์„œ๋“œ ๊ตฌํ˜„ useState๋ฅผ ์ด์šฉํ•˜์—ฌ state๋ฅผ ๋ณ€๊ฒฝ ์‚ฌ์šฉ์ž ์ถ”๊ฐ€ ๋ฒ„ํŠผ์˜ onClick ๋ฉ”์„œ๋“œ ๊ตฌํ˜„ ๋ฐฐ์—ด ๋ Œ๋”๋ง ์ž…๋ ฅ ํผ ์ƒ.. 2020. 10. 16.
[CSS] ์–ด๋–ค ์š”์†Œ๊ฐ€ ์•ž์œผ๋กœ ๋‚˜์˜ฌ์ง€ z-index ๋กœ ์ˆ˜์ง ์œ„์น˜๋ฅผ ์ •ํ•ด๋ณด์ž. ์ง€๋‚œ ์‹œ๊ฐ„ ์šฐ๋ฆฌ๋Š” CSS์˜ position์†์„ฑ์œผ๋กœ ์š”์†Œ๋ฅผ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ณณ์— ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐฐ์› ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” fixed, absolute, relative, sticky๋“ฑ๋“ฑ์„ ์•Œ์•„๋ณด์•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š”๋Œ€๋กœ HTML Elements๋ฅผ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ์˜ค๋Š˜์€ ์ง€๋‚œ ์‹œ๊ฐ„ ๋ฐฐ์› ๋˜ Position์„ ํ† ๋Œ€๋กœ ๋ฐฐ์น˜๋ฅผ ๋งˆ์ณค์„ ๋•Œ z-index๋กœ ์–ด๋–ค ์š”์†Œ๊ฐ€ ์•ž์œผ๋กœ ์˜ฌ์ง€๋ฅผ ์ •ํ•ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ–๊ฒ ๋‹ค. z-index mdn์—์„œ๋Š” z-index๋ฅผ ์œ„์™€ ๊ฐ™์ด ์ด์•ผ๊ธฐ ํ•œ๋‹ค. z์ถ•์˜ ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•œ๋‹ค. ์ด ๋ง์ด ๋ฌด์Šจ ๋ง์ผ๊นŒ? ์šฐ๋ฆฌ๋Š” ์ผ๋ฐ˜์ ์ธ HTML ๋ฌธ์„œ๋ฅผ ๋ˆˆ์œผ๋กœ ๋ณผ ๋•Œ๋Š” 2D๋กœ ๋ณด๊ธฐ ๋•Œ๋ฌธ์— X์ถ•๊ณผ Y์ถ•๋งŒ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด z-index ๋ฅผ ์„ค์ •ํ•˜๋ฉด ์กฐ๊ธˆ ๋” ์ž…์ฒด์ ์œผ๋กœ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋˜๊ณ  ๊ทธ.. 2020. 10. 16.
[CSS] ์š”์†Œ๋ฅผ ์›ํ•˜๋Š” ๊ณณ์— ๋ฐฐ์น˜ํ•˜๊ธฐ position ์†์„ฑ :: static, relative, absolute, fixed, sticky CSS์—์„œ HTML Elements๋ฅผ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๊ณณ์— ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•๋“ค์ด ์กด์žฌํ•œ๋‹ค. display ์†์„ฑ์œผ๋กœ ์˜์—ญ์„ ๋‚˜๋ˆ ์„œ ๋ฐฐ์น˜๋ฅผ ํ•  ์ˆ˜๋„ ์žˆ๊ณ , box-sizing๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐฐ์น˜๋ฅผ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•๋“ค์—๋Š” ๋งŽ์€ ์ œ์•ฝ์‚ฌํ•ญ๋“ค์ด ์กด์žฌํ•˜๋ฉฐ, ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๋Œ€๋กœ ๋™์ž‘์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š” Css์˜ ๋ถ€๋ชจ, ์ž์‹๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•ด์ค˜์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ position์†์„ฑ์„ ์ด์šฉํ•œ๋‹ค๋ฉด ์กฐ๊ธˆ ๋” ์•„๋ฆ„๋‹ต๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์š”์†Œ๋ฅผ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ณณ์— ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์ „ ์ค€๋น„ ๋ณธ๊ฒฉ์ ์ธ ์ด์•ผ๊ธฐ์— ์•ž์„œ ์šฐ๋ฆฌ๋Š” ์ด๋ฒˆ ์‹œ๊ฐ„์— ์Šคํฌ๋กค์ด ์žˆ๋Š” ์˜์—ญ์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด์„ ๋จผ์ € ๊ตฌ์„ฑํ•ด ๋†“๊ณ  ์‹ค์Šต์„ ์ง„ํ–‰ํ•  ๊ฒƒ์ด๋‹ค. index.html index.css body { background: #cfd8dc; d.. 2020. 10. 15.
[React axios] React์˜ axios ๊ธฐ๋ณธ :: axios๋กœ GET, POST, PUT, DELETE ์š”์ฒญ ๋ณด๋‚ด๊ธฐ ์ง€๋‚œ ์‹œ๊ฐ„์—๋Š” ์™œ ์šฐ๋ฆฌ๊ฐ€ axios๋ฅผ ์•Œ์•„์•ผ ํ• ๊นŒ?์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค. [React axios] ๋ฆฌ์•กํŠธ axios๋ž€? :: HTTP-API ์—ฐ๋™์„ ์œ„ํ•œ ๋ชจ๋“ˆ (axios vs Fetch API) ์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ API๋ฅผ ์—ฐ๋™ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ณดํ†ต fetch-Api๋ฅผ ์‚ฌ์šฉํ•˜๊ณค ํ–ˆ๋‹ค. ๋ฆฌ์•กํŠธ ๋˜ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ built-in ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ค‘ ํ•˜๋‚˜์ธ fetch-api๋˜ํ•œ ํ›Œ๋ฅญํ•œ api ์—ฐ๋™ ๋ชจ๋“ˆ์ด๋‹ค. ํ•˜์ง€๋งŒ wonit.tistory.com ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์‹ค์ œ๋กœ axios๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— axios์˜ ๊ธฐ๋ณธ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค ํ•œ๋‹ค. REST API REST API๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ•˜๊ณ ์‹ถ์€ ์ž‘์—…์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ๋กœ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ๋‹ค๋“ค ์•Œ๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค. REST API์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ HTT.. 2020. 10. 8.