Document/๋จ์ ์์ ์ฝ๋ฉ๊ต์ค
16
์ปค์คํ
ํ ๋ค๊ตญ์ด ์ฒ๋ฆฌ๋ฅผ ์ํ 'i18next' (React-i18next)
2023.11.01
ํ์ฌ์ ๊ฒฝ์ฐ ์ฌ๋ฌ ํด์ธ ๋ฒ์ธ์ด ์กด์ฌํ๊ณ ์์ด, ๋ค๊ตญ์ด ์ง์์ด ํ์ํ๋ค. ์นํ์ด์ง์ ๊ฒฝ์ฐ chrome ๋ฑ ์ธํฐ๋ท ๋ธ๋ผ์ฐ์ ๋ด ๋ฒ์ญ์ผ๋ก๋ ์ง์์ด ๊ฐ๋ฅํ์ง๋ง, ํ์ฌ์์๋ ์ฌ์ ์ ์ผ๋ก ๋ฒ์ญํ๊ธฐ ๋ณด๋ค๋, ๊ฐ ๋๋ผ์์ ์ดํดํ๊ธฐ ์ฌ์ด ๋จ์ด๋ก ๋ฒ์ญํ๋ ์ผ์ด์ค๊ฐ ํ์ํ๊ฒ ๋๋ค. โ ์ด๋ ์ฌ์ฉ๋๋ ๊ฒ์ด i18next. i18next๋? Javascript๋ก ์์ฑ๋ ๊ตญ์ ํ ํ๋ ์์ํฌ๋ก ์ฌ๋ฌ ๊ตญ๊ฐ์ ์ธ์ด๋ฅผ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์์ค๋ค. ๋ง์ด ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก๋ react-i18next, next-i18next, next-translation ์ด๋ ๊ฒ 3๊ฐ์ง. ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฅ๋จ์ ๊ณผ ํน์ฑ์ด ์กด์ฌํ๋ฏ๋ก ์์๋ณด๊ณ ์ฑํํ๋ ๊ฒ์ ์ถ์ฒํ๋ค. โ ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ react-i18next ๋ฅผ ์ฑํํ๊ฒ ๋์๋๋ฐ.. ์ ํํ๋ ์ฑํ ๋นํ๋ค. ๊ณ ๋ก..
์ฌ์ด ์ ์ญ ์ํ ๊ด๋ฆฌ๋ฅผ ์ํ "Recoil"
2
2023.11.01
ํ์ฌ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ๊ถํ ๊ด๋ฆฌ๋ฅผ recoil ๋ก ๋ค๋ฃจ๊ณ ์๋ค. โ Rocoil ์ด๋? ํ์ด์ค๋ถ์์ ๋ฐํํ React ์ ์ญ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. usestate ๋ง์ ์ฌ์ฉํ์ฌ ์ํ ๊ด๋ฆฌ๋ฅผ ํ๊ฒ ๋๋ฉด ํ๋ก๊ทธ๋จ์ด ๋ณต์กํ๊ฒ ๋ ์, props drilling์ด ์ผ์ด๋๊ฒ ๋๋๋ฐ, Recoil์ ์ด๋ฌํ ํ์๋ฅผ ๋ฐฉ์งํ๊ฒ ํด์ค๋ค. โ Recoil์ ๊ฒฝ์ฐ. React ์์ ์ฌ์ฉํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋, ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์๋์ ๋งํฌ์์ ๋ด์ฉ์ ํ์ธํ๋ฉด ๋๋ค. Recoil A state management library for React. recoiljs.org Recoil ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฃผ์ํ ๊ฐ๋
์ผ๋ก๋ Atom ๊ณผ selector๊ฐ ์๋ค. โ Recoil ์์ ํ๋์ ์ ์ญ ์ํ๋ฅผ Atom ์ด๋ผ๊ณ ํ๋๋ฐ, Atom ..
useref์์ ์์ ๊ฐ๋
์ด ๋ถ์ "ForwardRef"์ "useImperativeHandle"
2
2023.11.01
๋ณดํต useRef ๊น์ง๋ ํํ๋ค ์๋ค๊ณ ์๊ฐํ๋๋ฐ, ๋ง์ฝ ๋ด๊ฐ ์ด๋ค ๊ณณ์์ ์ปดํฌ๋ํธ๋ค์ ์ผ๊ด๋ก ์ ์ํด๋๊ณ , ๋ถ๋ชจ ๋จ์์ ๊บผ๋ด์ด์ ์ฌ์ฉํ๋ ํํ์ ๋ก์ง์ ์ง ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น? ์ด๋๋ ref๋ฅผ ๋ค๋ฃจ๋ case๊ฐ ์กด์ฌํ๋ค๋ฉด? โ ์ ๋ต์ ForwardRef ์ด๋ค. ๋ถ๋ชจ์์ ์์์ ref ์์๋ค์ ๋ค๋ฃจ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ ๋ฌธ๋ฒ. โ ๋, ์์๋จ์ ์๋ function ์ ๋ถ๋ชจ์์ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด? (๋ณดํต์ ๋ถ๋ชจ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ง์ง๋ง, ๋ฌด์์ ๊ทธ๋ ๊ฒ ๋ก์ง์ ์ง๋ฒ๋ฆฌ๋ฉด ํ์ ์ปดํฌ๋ํธ ๋ค์ด ๋ง์์ง์๋ก ์ต์์, ์์ ๋ก์ง์ด ๋น๋ํด์ง์ ๋ง์ ์ ์๊ฒ ๋๋ค.) โ ์ ๋ต์ useImperativeHandle ์ด๋ค. ์์์ ๋ฌธ๋ฒ์ด๋ ๋ณ์๋ฅผ ๋ถ๋ชจ ๋จ์์ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๋ฌธ๋ฒ. โ ์ฐ์ .. forwardRef ๋ถํฐ... ..
DOM ์กฐ์์ ํ ์ ์๊ฒ ํด์ฃผ๋ "useRef"
2
2023.11.01
์ปดํฌ๋ํธ์ ์์ฑ ๊ฐ์ ๋ถ๋ฌ์ฌ ์๋ ์๊ณ , value๋ style ๊ฐ ๊ฐ์ ๊ฒ๋ค์ ๋ฐ๊ฟ์ค ์๋ ์๋. DOM์ ์กฐ์ํ ์ ์๊ฒ ํด์ฃผ๋ ref. ๋ ๋๋ง์ ํ์ํ์ง ์์ ๊ฐ์ ์ฐธ์กฐํ ์ ์๋ ref. ์ ๋ํ์ฌ ์ค๋ช
ํ๋๋ก ํ๊ฒ ๋ค. โ ref ๋ ๋น๊ต์ ๊ฐ๋จํ ๊ฐ๋
์ด๋ฏ๋ก forwardRef ์ useImperativeHandle ๋ฅผ ์ค๋ช
ํ๊ธฐ ์ํ ๋์ฝ ๋จ๊ณ์ฒ๋ผ ๊ฐ๋ณ๊ฒ ์ง๊ณ ๋์ด๊ฐ๋๋ก ํ๊ฒ ์. โ ๋ง๋ถํ๋ ๋ง.. ๋ชจ ๋ถ์ฅ์ "Ref ๋ React ์๋ช
์ฃผ๊ธฐ์ ์ด์ธ๋ฆฌ์ง ์๋ ๋ฌธ๋ฒ์ผ๋ก React ์์์๋ ์ง์ํด์ผ ํ๋ค"๋ ๋ฐ์ธ์ ๋ํ์ฌ ์ค๋ช
ํ๋๋ก ํ๊ฒ ๋ค. Ref ๋ฅผ ๋ฌด๋ถ๋ณํ๊ฒ ์ ์ธํ๊ณ , ๋ค๋ฅธ ๋ฌธ๋ฒ์ผ๋ก ๋์ฒด๊ฐ ๊ฐ๋ฅํ๋ฐ๋ ๋ถ๊ตฌํ๊ณ ๋ฌด์ง์ฑ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฌธ์ . (์ด๊ฒ์ ๋ค๋ฅธ ๋ฌธ๋ฒ๋ ๋์ผํ๋ค. ๊ฐ์๊ฐ ๊ฐ์ง๋ ๊ณ ์ ์ ํน์ฑ์..
์ด๊ธฐ ๋ ๋๋ง ๋ฐ ๋ณ์ ๋ณํ์ ๋ฐ๋ฅธ ๊ธฐ๋ฅ์ ๋ถ๋ฌ์ค๊ธฐ ์ํ "useEffect"
2023.11.01
UseEffect ๋. ๋ฆฌ์กํธ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋ ๋๋ง๋ค ํน์ ์์
์ ์ํํ๋๋ก ์ค์ ํ ์ ์๋ Hook์. โ ๊ธฐ์กด์๋ ํด๋์คํ ์ปดํฌ๋ํธ์์๋ง ์๋ช
์ฃผ๊ธฐ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์์๋๋ฐ. useEffect๋ฅผ ์ฐ๋ฉด ํจ์ ์ปดํฌ๋ํธ์์๋ side effect ๋ฅผ ์ธ ์ ์๊ฒ ๋์๋ค. ๋ผ์ดํ์ฌ์ดํด hook(componentDidMount, componentDidUpdate, componentWillUnMount)์ ๋์ฒดํ ์ ์๋ useEffect. ์ฌ์ฉ ๋ฐฉ๋ฒ import { useEffect } from 'react'; function useeffecttest() { // ์ฌ์ฉ๋ฒ 1. ์ข
์์ฑ ๋งค๊ฐ๋ณ์ ์์. useEffect(() => { DoSomething(); }); // ์ฌ์ฉ๋ฒ 2. ๋น ์ข
์์ฑ ๋งค๊ฐ๋ณ์ ..
๋์ ์ธ ๊ฐ์ ํ ๋นํ๊ธฐ ์ํ ๋ณ์, useState
2
2023.11.01
๋ฆฌ์กํธ 16.8 ๋ฒ์ ์ด์ ์์๋ ํจ์ํ ์ปดํฌ๋ํธ์์ ์ํ ๊ด๋ฆฌ๋ฅผ ํ ์๊ฐ ์์์. (์ปจ๋ฒํ
ํ๋ ์ฌ๋๋ ๋ณด์๋ค..) ํ์ง๋ง 16.8 ๋ฒ์ ๋ถํฐ Hooks ๋ผ๋ ๊ธฐ๋ฅ์ด ๋์
๋๋ฉฐ ํจ์ํ ์ปดํฌ๋ํธ์์ ์ํ๋ฅผ ๊ด๋ฆฌํ ์ ์๊ฒ ๋์๋ค.! โ โป Hook : ํจ์ ์ปดํฌ๋ํธ์์ React state (๋ฆฌ์กํธ์์ ์์ฃผ ์ค์ํ ๊ฐ๋
์ค ํ๋) ์ ์๋ช
์ฃผ๊ธฐ ๊ธฐ๋ฅ(lifecycle features)์ ์ฐ๋ํ ์ ์๊ฒ ํด์ฃผ๋ ํจ์. โป ์ํ๊ด๋ฆฌ(State Management) : ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ. ์ฌ๋ฌ component ๊ฐ์ ๋ฐ์ดํฐ ์ ๋ฌ๊ณผ ์ด๋ฒคํธ ํต์ ์ ํ ๊ณณ์์ ๊ด๋ฆฌํ๋ ๊ฒ์ ์๋ฏธ. โ ๋ฆฌ์กํธ๋ก ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด usestate ๋ฅผ ์ ์ ํ ์์น์์ ์ ์ธํ๊ณ , ์ ๋ด๋ ค์ฃผ๊ณ (์์) ๊ผฌ์ด์ง ์๋๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ด ๊ณ ์ค๊ธ ์คํฌ..
่.๋ฆฌ์กํธ ๊ฐ์ฌ๊ฐ ๋ง์์ฃผ๋ ๊ฐ๋จ react ๋ฌธ๋ฒ
2023.11.01
๋ชฉ์ฐจ ๋์ ์ธ ๊ฐ์ ํ ๋นํ๊ธฐ ์ํ ๋ณ์, "useState" ์ด๊ธฐ ๋ ๋๋ง ๋ฐ ๋ณ์ ๋ณํ์ ๋ฐ๋ฅธ ๊ธฐ๋ฅ call์ ์ํ "useEffect" ์ปดํฌ๋ํธ์ ์์ฑ ๊ฐ์ get/set ํ ์ ์๋ "useRef" useRef + ์์ ๊ฐ๋
, "ForwardRef()", "useImperativeHandle()" ํจ์ ์ฌ์ฌ์ฉ์ ์ํ "UseCallback" ์ฌ์ด ์ ์ญ ์ํ๊ด๋ฆฌ๋ฅผ ์ํ "Recoil" ์ปค์คํ
ํ ๋ค๊ตญ์ด ์ฒ๋ฆฌ๋ฅผ ์ํ "i18next" ๋ฒ์ธ. Axios์ Fetch์ ์ฐจ์ด ๋ฒ์ธ. Lazy Import ๋?
0519 ์์
ํ์ ๋ด์ฉ
2023.05.19
1. createReactApp ๋ง๊ณ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ํ๋ ๋ฐฉ๋ฒ ์์ ์ฝ๋ ํ๋ ์์ฑ --------- 1. History API๊ฐ ๋ญ๋ฐ - history API : ๋ธ๋ผ์ฐ์ ์ ์ธ์
๊ธฐ๋ก์ ์กฐ์ํ ์ ์๋ ๋ฉ์๋๋ฅผ ๋ด๊ณ ์๋ ๊ฐ์ฒด - ๋ค๋ก ๊ฐ๊ธฐ, ์์ผ๋ก ๊ฐ๊ธฐ, ํ์ด์ง ์ด๋ ๋ฑ์ ์กฐ์ํ ์ ์์ - history ๋ ์ธ์
๊ธฐ๋ก(ํ์ด์ง ๋ฐฉ๋ฌธ ๊ธฐ๋ก)์ ๋ํ ์ ๊ทผ ๋ฐฉ๋ฒ๊ณผ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ ๊ฒ - history.back() : ๋ค๋ก๊ฐ๊ธฐ - history.forward() : ์์ผ๋ก ๊ฐ๊ธฐ - history.go() : ์ธ์
๊ธฐ๋ก ๋ด ํ์ด์ง๋ก ์ด๋ // chrome ์ผ์ ํ์ธ ์์ผ์ฃผ๊ธฐ 2. BrowserRouter ์์์ ๊ธฐ๋ฅ, History API์์ ๊ด๋ จ์ฑ 3. Route ์ฌ์ฉ๋ฒ ๋ฐ ๋ฐ์ดํฐ ํ์ 4. export ..
0518 ์์
ํ์ ๋ด์ฉ
2023.05.19
๋ฆฌ์กํธ์ ํน์ง 3๊ฐ์ง 1. ์ ์ธํ(Declarative) : ํ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด html, css, js๋ก ๋๋ ์ ์ ๊ธฐ ๋ณด๋ค๋ ํ๋์ ํ์ผ์ ๋ช
์์ ์ผ๋ก ์์ฑํ ์ ์๊ฒ JSX๋ฅผ ํ์ฉํ ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ์ ์งํฅ const name = 'yoonhyewon' const element = Hello,{name} 2. ์ปดํฌ๋ํธ ๊ธฐ๋ฐ (Component-Based) - ํ๋์ ๊ธฐ๋ฅ ๊ตฌํ์ ์ํด ์ฌ๋ฌ ์ข
๋ฅ์ ์ฝ๋๋ฅผ ๋ฌถ์ด๋ ์ปดํฌ๋ํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฐํจ 3. ๋ฒ์ฉ์ฑ (Learn Once, Write Anywhere) - js ํ๋ก์ ํธ ์ด๋์๋ ์ ์ฐํ๊ฒ ์ ์ฉ ๊ฐ๋ฅ - facebook ์์ ๊ด๋ฆฌ๋๊ณ ์์ด ์์ ์ ์ด๋ฉฐ, ์ ๋ช
ํ๊ณ , ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ ๋ชจ๋ฐ์ผ ๊ฐ๋ฐ๋ ๊ฐ๋ฅํจ - 2020๋
๊ธฐ์ค ๊ฐ์ฅ ์ ๋ช
ํ ํ๋ก ํธ์๋ ๊ธฐ์ - ..
517 ์์
ํ์ ๋ด์ฉ
2023.05.18
[], {}, () ๋๊ดํธ [] 1. list ๋์ด ํน์ list ์ธ๋ฑ์ค ์ง์ ex) list[0], list[1] ์ค๊ดํธ {} 1. dictionary ๋ง๋ค๋ {'key':'value'} 2. style tag ์ง์ ์ 3. ํน์ function์ ๋ํด ์ ์ ํ ๋ function test(){} ํ์์ด ๋๊ฒ ์ฃ .. 4. for / if ๋ฑ์ ๋ฌธ๋ฒ ์ ํ์ํ ๋ ์๊ดํธ () 1. for๋ if ๊ฐ์ ๋ฌธ๋ฒ์ ์กฐ๊ฑด ์ ๋ฃ์ ๋ JSON (Javascript Object Notation) ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ์ ์กํ ๋ ๋ง์ด ์ฌ์ฉ๋๋ "๊ฒฝ๋" Data ๊ตํ ํ์ ์ฝ๊ฒ ๋งํด์ javascript์์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉํ๋ ํํ์์ ์๋ฏธ -- ์ฌ๋ ๊ธฐ๊ณ ๋ชจ๋ ์ดํดํ๊ธฐ ์ฌ์ฐ๋ฉฐ ์ฉ๋์ด ์์์ ๋ฐ์ดํฐ ์ ์ก์ ๋ง์ด ์ฐ์ด..
516 ๊ฐ์ ํ์ ๋ด์ฉ (callback/promise)
2023.05.16
// settimeout : ์คํํ ํจ์, ์ด(๋ฐ๋ฆฌ์ธ์ปจ ๋จ์) [callback] ์ฝ๋ฐฑํจ์ : ๊ฐ๋จํ๊ฒ ๋ค๋ฅธ ํจ์์ ๋งค๊ฐ๋ณ์๋ก ๋๊ฒจ์ค ํจ์๋ฅผ ์๋ฏธ ๋งค๊ฐ๋ณ์๋ก ๋๊ฒจ๋ฐ์ ํจ์๋ ์ผ๋จ ๋งค๊ฐ๋ณ์ ๋จผ์ ๋๊ฒจ๋ฐ์๋ ์ํ์์ ์ผ์ ์์ (๋)๊ฐ ๋๋ฉด ๋์ค์ ํธ์ถ(call back)ํ๋ค๋ ์๋ฏธ // ์ฝ๋ฐฑํจ์๊ฐ ํ์ํ ์ด์ 1. ๋ณ์์ ์ ํจ๋ฒ์ (scope) 2. ๋๊ธฐ/๋น๋๊ธฐ(synchronous/Asynchronous) -> ์ด๋ฐ ๊ฑธ ์ํด์ ํจ์๋ฅผ ํ์ฉํ๋ ํ๋์ ๋ฐฉ๋ฒ๋ก ์ ์ธ ๋ถ๋ถ ์ ์ฉํ๋ฐ.. ๋ด๊ฐ a~z๊น์ง console ์ฐ๋ ํ์๋ฅผ ์ ์ดํ๊ณ ์ถ์ผ๋ฉด ์ฝ๋๊ฐ ๋๋ฌด ๋ณต์กํด์ง๋ค.. -> Callback Hell -- ์์ฑ์ ์
์ฅ์์๋ ํฌ๊ฒ ๋ฌธ์ ๊ฐ ์๋ ์๋ ์์ผ๋ ์ด๊ฑธ ์ถํ์ ๋๊ตฐ๊ฐ ์ ์ง๋ณด์ ํ๋ค๊ณ ์๊ฐํ๋ฉด? hell ์ด๋ค...
[javascript] Async/Sync ๋๊ธฐ ๋น๋๊ธฐ BasicChaining ๊ตฌํ (+Promise ๊ตฌํ)
2023.05.16
'part-2/02_promiseConstructor.js' ํ์ผ์ ๊ตฌํํ๊ณ , ํ
์คํธ๋ฅผ ํต๊ณผํฉ๋๋ค. callback์ด๋ผ๋ ๋งค๊ฐ๋ณ์(parameter) ๋์ , Promise์ resolve, reject ํจ์๋ฅผ ์ด์ฉํ์ธ์. part-2/03_basicChaining.js์, ์์ ์์ฑํ getDataFromFilePromise๋ฅผ ์ด์ฉํด์ ํ์ด์ผ ํฉ๋๋ค. fs ๋ชจ๋์ ์ง์ ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋๋ค. getDataFromFilePromise๋ฅผ ์ด์ฉํด, 'files/user1.json' ํ์ผ๊ณผ 'files/user2.json' ํ์ผ์ ๋ถ๋ฌ์ค๊ณ , ๋ ํ์ผ์ ํฉ์ณ์ ์ต์ข
์ ์ผ๋ก ๋ ๊ฐ์ฒด๊ฐ ๋ด๊ธด ๋ฐฐ์ด์ ๋ง๋๋ ๊ฒ์ด ๋ชฉํ์
๋๋ค. ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ ๋, user1Path ๋ฐ user2Path๋ฅผ ์ด์ฉํ์ธ์. then์ด ์ด๋ค ..