๋ชฉ๋กDEV_IN (89)
let's get IT with DAVINA ๐ป
Queue๋? Definition ์ค์ ์์ ๊ธฐ๋ค๋ฆฌ๋ค, ๋๊ธฐํ๋ ฌ ๊ฐ์ฅ ๋จผ์ ์ง์ ํ ์๋์ฐจ๊ฐ ๊ฐ์ฅ ๋จผ์ ํจ๊ฒ์ดํธ๋ฅผ ํต๊ณผํฉ๋๋ค. ๊ฐ์ฅ ๋์ค์ ์ง์ ํ ์๋์ฐจ๋ ๋จผ์ ๋์ฐฉํ ์๋์ฐจ๊ฐ ๋ชจ๋ ๋น ์ ธ๋๊ฐ๊ธฐ ์ ๊น์ง๋ ํจ๊ฒ์ดํธ๋ฅผ ๋น ์ ธ๋๊ฐ ์ ์์ต๋๋ค. Stack๊ณผ ๋ฐ๋๋๋ ๊ฐ๋ ์ผ๋ก, FIFO(First In First Out)/LILO(Last In Last Out)์ ํน์ง์ ๊ฐ์ง ํฐ์ผ์ ์ฌ๋ ค๊ณ ์ค์ ์์ ๊ธฐ๋ค๋ฆฌ๋ ๋ชจ์ต๊ณผ ํก์ฌํ ์ด ์๋ฃ๊ตฌ์กฐ๋ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ๋ฐฉํฅ์ด ๊ณ ์ ๋์ด ์์ผ๋ฉฐ, ๋ ๊ณณ์ผ๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํฉ๋๋ค. Queue์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๋ ๊ฒ์ ‘enqueue’, ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด๋ ๊ฒ์ ‘dequeue’๋ผ๊ณ ํฉ๋๋ค. ๋ฐ์ดํฐ๊ฐ ์ ๋ ฅ๋ ์์๋๋ก ์ฒ๋ฆฌํ ๋ ์ฃผ๋ก ์ฌ์ฉ! ํ์ ์ฑ์ง ์์์ ์ถ๊ฐ → O(1) ์์์ ์ ๊ฑฐ → O(1) ..
Stack ์ด๋? Definition ์๋ค, ์์ด๋ค, ํฌ๊ฐ์ง๋ค → ๋ฐ์ดํฐ๋ฅผ ์์๋๋ก ์๋ ์๋ฃ๊ตฌ์กฐ ๊ณจ๋ชฉ์ ์๋ฃ๊ตฌ์กฐ Stack / ์๋์ฐจ๋ ๋ฐ์ดํฐ(Data) ๊ฐ์ฅ ๋จผ์ ๋ค์ด๊ฐ ์๋์ฐจ๋ ๊ฐ์ฅ ๋์ค์ ๋์ฌ ์ ์๊ณ , ๊ฐ์ฅ ๋์ค์ ๋ค์ด๊ฐ ์๋์ฐจ๊ฐ ๊ฐ์ฅ ๋จผ์ ๋์ฌ ์ ์๋ค. ์๋ฃ๊ตฌ์กฐ Stack์ ํน์ง์ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ด ํ๋์ ๋ฐฉํฅ์ผ๋ก ์ด๋ฃจ์ด์ง๋ ์ ํ์ ์ ๊ทผ์ ์๋ค. ์ด๋ฐ Stack ์๋ฃ๊ตฌ์กฐ ์ ์ฑ ์ LIFO(Last In First Out) / FILO (First In Last Out)์ด๋ผ ๋ถ๋ฅธ๋ค. Stack์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๋ ๊ฒ์ ‘PUSH’, ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด๋ ๊ฒ์ ‘POP’์ด๋ผ๊ณ ํ๋ค. ์คํ์ ์ฑ์ง ์์์ ์ถ๊ฐ → O(1) ์์์ ์ ๊ฑฐ → O(1) ์ ์ผ ์๋จ์ ์์ ํ์ธ → O(1) ์ ์ผ ์๋จ์ด ์๋ ๋๋จธ์ง ์์..
์๋ฃ๊ตฌ์กฐ๋? ์ฌ๋ฌ ๋ฐ์ดํฐ์ ๋ฌถ์์ ์ ์ฅํ๊ณ , ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ๋ฐ์ดํฐ - ๋ฌธ์, ์ซ์, ์๋ฆฌ, ๊ทธ๋ฆผ, ์์ ๋ฑ ์ค์ํ์ ๊ตฌ์ฑํ๊ณ ์๋ ๋ชจ๋ ๊ฐ ๋ฐ์ดํฐ๋ ์ฌ์ฉํ๋ ค๋ ๋ชฉ์ (ํ์)์ ๋ฐ๋ผ ๋ถ์ํ๊ณ ์ ๋ฆฌํ์ฌ ํ์ฉํด์ผ๋ง ์๋ฏธ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. ์๋ฃ๊ตฌ์กฐ๋ ์๋ฃ์ ์งํฉ์ ๊ตฌ์กฐํํ๊ณ , ์ด๋ฅผ ํํํ๋๋ฐ ์ด์ ! ์ฌ๋์ด ์ฌ์ฉํ๊ธฐ์ ํธ๋ฆฌํ๋ ค๊ณ , ์ฌ์ฉํ๊ธฐ ์ข์ผ๋ ค๊ณ ๋ง๋ค์ด์ง ๊ฒ์ด ์๋ฃ๊ตฌ์กฐ๋ค! ์๋ฃ๊ตฌ์กฐ์ ๋ถ๋ฅ ์๋ฃ๊ตฌ์กฐ์ ํน์ง ํน์ ํ ์ํฉ์ ๋์ธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ์ ํนํ ๋ง์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์์๋๋ฉด, ์ด๋ ํ ์ํฉ์ด ๋ฅ์ณค์ ๋ ์ ํฉํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๋น ๋ฅด๊ณ ์ ํํ๊ฒ ์ ์ฉํ์ฌ ๋ฌธ์ ํด๊ฒฐ ๊ฐ๋ฅ https://www.cs.usfca.edu/~galles/visualization/Algorithms.html Data Structure Visuali..
MDN์ ๋ฐ๋ฅด๋ฉด, ์ด๋ฒคํธ ๋ฃจํ๋, "JS์ ๋ฐํ์ ๋ชจ๋ธ์ ์ฝ๋์ ์คํ, ์ด๋ฒคํธ์ ์์ง๊ณผ ์ฒ๋ฆฌ, ํ์ ๋๊ธฐ ์ค์ธ ํ์ ์์ ์ ์ฒ๋ฆฌํ๋ ์ด๋ฒคํธ ๋ฃจํ์ ๊ธฐ๋ฐํ๊ณ ์๋ค" ๋ผ๊ณ ๋์จ๋ค.. ๋ฌด์จ๋ง์ธ์ง ๋ํต ๋ชจ๋ฅด๊ฒ ์ผ๋, ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์คํ ์๋ฆฌ๋ฅผ ์ด์ง ์์๋ณด์ JavaScript, what r u? ์ฑ๊ธ ์ค๋ ๋ ์ธ์ด์ด๋ค. ๋ญ๋ง์ด๋? โท ํ๋์ ํ๋ก๊ทธ๋จ์ ๋์์ ํ๋์ ์ฝ๋๋ง ์คํํ ์ ์๋ค. one thread === one call stack === one thing at a time (๋ฉํฐ๊ฐ ์๋ผ!!) ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ Memory Heap & Call Stack์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. (๊ฐ์ฅ ์ ๋ช ํ ๊ฒ์ด ๊ตฌ๊ธ์ V8 Engine) Memory Heap : ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์ผ์ด๋๋ ์ฅ์ ex) ์ฐ๋ฆฌ๊ฐ ํ๋ก๊ทธ๋จ์..
About JSX React์์ UI๋ฅผ ๊ตฌ์ฑํ ๋ ์ฌ์ฉํ๋ ๋ฌธ๋ฒ์ผ๋ก, JavaScript๋ฅผ ํ์ฅํ ๋ฌธ๋ฒ (JavaScript XML) ⇒ ์ด ๋ฌธ๋ฒ์ ์ด์ฉํด์ React ์๋ฆฌ๋จผํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ๊ทธ๋์ HTML์์๋ฅผ ๋ง๋ค๊ณ , JS๋ฅผ ์ค์ ํ ๋ค, ๋ค์ HTML์ ํด๋น ์ค์ ๋ด์ฉ์ ๋ฐ์ํ๋ค๊ณ ํ๋ค๋ฉด, React JSX๋ JS๋ก ์์๋ฅผ ๋ง๋ค๊ณ ๋ง์ง๋ง์ HTML์ ์ ๋ฐ์ดํธ/๋ฐ์ํด์ค๋๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฐ๋ก ์คํํ ์ ์๋ JS์ฝ๋๋ ์๋๋๋ค. “Bable”์ ํตํด JSX๋ฅผ ๋ธ๋ผ์ฐ์ ๊ฐ ์ดํดํ ์ ์๋ JS๋ก ์ปดํ์ผ ํ, JS๋ฅผ ๋ธ๋ผ์ฐ์ ๊ฐ ์ฝ๊ณ ํ๋ฉด์ ๋ ๋๋ง ํฉ๋๋ค. DOM ๊ทธ๋ฆฌ๊ณ React JSX CSS&JSX ๋ฌธ๋ฒ๋ง์ ๊ฐ์ง๊ณ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์์ต๋๋ค. ์ฆ, ์ปดํฌ๋ํธ ํ๋๋ฅผ ๊ตฌํํ๊ธฐ ์ํด ํ์ํ ํ์ผ..
React๋ก ๋๋ฒ์ ํ๋ก์ ํธ๋ฅผ ๋ค ์งํํ๋๋ฐ ์ React๋ฅผ ์ผ๋๊ฐ์ ์ด๋ค ์ฅ์ ์ด ์๋์ง ์ค์ค๋ก ์ง๋ฌธ์ ์ ๋๋ก ๋ต๋ ๋ชปํ๋ ๋ด ์์ ์ด ํ์ฌํด์ ๋ง์ ๋ค์ก๊ณ ์ ๋ฆฌ๋ฅผ ๋์ ์ฌ๋ด ๋๋ค๋น..๐ฅ ํญ์ ์ด๊ฑด "์" ์๊ฒผ๊ณ , "์" ๋ง์ ์ฌ๋๋ค์ด ์ฐ๋์ง ์ ๋๋ ์๊ณ ์ฐ์ ๋ค๋น์ใ ใ ใ plz What is React? React๋ ํ๋ก ํธ์ค๋ ๊ฐ๋ฐ์ ์ํ, ํ๋ก ํธ์ค๋ ๊ฐ๋ฐ์ ๋ ์ฝ๊ฒ ๋ง๋ค์ด์ฃผ๋ JavaScript ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ธฐ์ ์ ๋ถ๋ฅ์ ๋ฐ๋ผ ์ฝ๋๋ฅผ ๋ถ๋ฅํ์ง ์๊ณ , ๊ธฐ๋ฅ๋ณ๋ก ์ฝ๋๋ฅผ ๋ถ๋ฆฌํ๊ธธ ๊ถ์ฅ ๋ฆฌ์กํธ SPA๋ฅผ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ ์ ์๋๋ก ๋ง๋ค์ด์ง ํด ์ฒด์ธ npx create-react-app@latest ํด๋์ด๋ฆ React์ 3๊ฐ์ง ํน์ง ์ ์ธํ (Declarative) ๋ฆฌ์กํธ๋ ํ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด HTM..
Redux - React์ ๋ฌด๊ดํ ์ํ๊ด๋ฆฌ์ React Redux - React & Redux ํตํฉ Redux Toolkit - Redux๋ฅผ ๋ณด๋ค ์์ํ๊ฒ ์ด์ฉํ๊ฒ ํด์ฃผ๋ ๋๊ตฌ Redux Toolkit ๋๋ ์ ํ์ด๋ฌ๋? ์ค์ ํ ๊ฒ ๋๋ฌด ๋ง์ต๋๋ค. ๋ฏธ๋ค์จ์ด ์ค์น๊ฐ ๋ณต์กํฉ๋๋ค. ๋ฐ๋ณต๋๋ ์ฝ๋๊ฐ ๋๋ฌด ๋ง์ต๋๋ค. ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ถ๋ณ์ฑ ์ ์ง๊ฐ ๋๋ฌด ์ด๋ ต์ต๋๋ค. Redux Toolkit ์ฌ์ฉ๋ฒ npm install @reduxjs/toolkit npm install react-redux ์์ store์ด ๋ชจ์ด๋ฉด? → slice slice๋ค์ด ๋ชจ์ด๋ฉด? → ํฐ store configureStore() createStore๋ฅผ ๊ฐ์ธ์ ์ธ๋งํ ๊ธฐ๋ณธ๊ฐ๋ค๊ณผ ๋จ์ํ๋ ์ค์ ์ ์ ๊ณตํฉ๋๋ค. ๋ด๊ฐ ๋ง๋ ๋ฆฌ๋์ ์กฐ๊ฐ๋ค์ ์๋์ผ๋ก ..
๋ชจ๋ฌ์ฐฝ์ ๋์ฐ๋ฉด, ๋ค๋ฅธ ๋ถ๋ถ์ด ์๋ ๋ซ๊ธฐ ๋ฒํผ โ ์ ๋๋ ์ ๋๋ง ์ฐฝ์ ๋ซ๊ฑฐ๋ ํ๊ธฐ ์ด๋ฏธ์ง์ฒ๋ผ ํํธ ๋ฒํผ์ ๋๋ฅด๋ฉด ํํธ์ ์ํ๋ง ๋ณํ๊ฒ (์ด๋ฏธ์ง ์ ์ฒด๊ฐ ๋๋ฆฌ์ง ์๊ฒ) ํ๊ณ ์ถ์ ๋๊ฐ ์๋ค. ๋ชจ๋ฌ ์ปดํฌ๋ํธ์์ ์ต์์ ๋ถ๋ชจ element์ onClick ์ด๋ฒคํธ๋ก stopPropagation()ํจ์๋ฅผ ๋ฃ์ด์ฃผ๊ณ , ๋ฒํผ element์ onClick ์ด๋ฒคํธ๋ก ๋ซํ ์ ์๊ฒ ์ค์ ํด์ฃผ๋ฉด ๋! return ( {e.stopPropagation()}}> X . . . ); const handleLike = async (id, e) => { e.stopPropagation(); // ๋ก๊ทธ์ธ ์๋ ์, ๋จผ์ ์ก๊ณ ๋ก๊ทธ์ธ if (!isLogin) { dispatch(modalOpen()); return; } return ( ..