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

๐Ÿ“บ Front End/- React, Next.js42

[Redux] ๋ฆฌ๋•์Šค๋ฅผ ๋ฐฐ์šฐ๊ธฐ ์ „์— ๋ฆฌ๋•์Šค์˜ ํ•„์š”์„ฑ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. ์—ฌ๊ธฐ ๋ฆฌ๋•์Šค๋ฅผ ์™œ ์จ์•ผํ•˜๋Š”์ง€ ์•„์ฃผ ์œ ๋ช…ํ•œ ๊ทธ๋ฆผ์ด ์žˆ๋‹ค. ๋ฆฌ๋•์Šค๋Š” Application์˜ ์ƒํƒœ๋ฅผ Globalํ•˜๊ฒŒ ๊ด€๋ฆฌํ•ด์ค€๋‹ค๋Š” State Management Lib์ด๋‹ค. ๋‚˜๋„ ๊ทธ๋ ‡์ง€๋งŒ ๋ณดํ†ต ์‚ฌ๋žŒ๋“ค์ด ๋ฆฌ๋•์Šค๋ฅผ ์ฒ˜์Œ์œผ๋กœ ๋งˆ์ฃผํ•˜๊ฒŒ๋  ๋•Œ๋Š” ์–ด๋–ค ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๋ฌธ์ œ์ ์„ ๋ฐœ๊ฒฌํ•˜๊ณ  ๊ทธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์„ ๋ชจ์ƒ‰ํ•˜๋‹ค ๋งŒ๋‚˜๊ฒŒ ๋œ๋‹ค. ๊ทธ ๋ฌธ์ œ๋ผ๊ณ  ํ•˜๋ฉด ๋ฐ”๋กœ Local State Local State local state๋Š” ์ด๋ฆ„์—์„œ๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ Global State์™€ ๋ฐ˜๋Œ€๋˜๋Š” ๋ง์ด๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ์—์„œ Without Redux์— ํ™”์‚ดํ‘œ๋กœ ์›€์ง์ด๋Š”๊ฒŒ state์ด๊ณ , ์ด state๋“ค์ด ์•ž๋’ค๋กœ ํ•œ ์นธ์”ฉ๋งŒ ์›€์ง์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒŒ ๋ฐ”๋กœ Local State์ด๋‹ค. ์ •ํ™•ํžˆ๋Š” ์ด๊ฒŒ Local Sta.. 2020. 12. 1.
[React-Spring ์• ๋‹ˆ๋ฉ”์ด์…˜] ๋ฆฌ์•กํŠธ ์Šคํ”„๋ง์œผ๋กœ 3D ์นด๋“œ ๋งŒ๋“ค๊ธฐ ์˜ค๋Š˜ ํ•ด๋ณผ ๊ฒƒ์€ ์œ„์™€ ๊ฐ™์ด ์›€์ง์ด๋Š” ์นด๋“œ ๋ทฐ๋ฅผ ๋งŒ๋“ค์–ด๋ณผ ๊ฒƒ์ด๋‹ค. Index.js import React from 'react' import ReactDOM from 'react-dom' import { useSpring, animated } from 'react-spring' import './styles.css' const calc = (x, y) => [-(y - window.innerHeight / 2) / 20, (x - window.innerWidth / 2) / 20, 1.1] const trans = (x, y, s) => `perspective(600px) rotateX(${x}deg) rotateY(${y}deg) scale(${s})` function Card() { const [pro.. 2020. 11. 4.
[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.
[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.