๋ชฉ๋ก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) ..

DEV_IN/Algorithm 2023. 2. 22. 21:58
[์ž๋ฃŒ๊ตฌ์กฐ/์„ ํ˜•๊ตฌ์กฐ]์Šคํƒ

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) ์ œ์ผ ์ƒ๋‹จ์ด ์•„๋‹Œ ๋‚˜๋จธ์ง€ ์›์†Œ..

DEV_IN/Algorithm 2023. 2. 22. 21:29
์ž๋ฃŒ๊ตฌ์กฐ๋ž€?

์ž๋ฃŒ๊ตฌ์กฐ๋ž€? ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ์˜ ๋ฌถ์Œ์„ ์ €์žฅํ•˜๊ณ , ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ฐ์ดํ„ฐ - ๋ฌธ์ž, ์ˆซ์ž, ์†Œ๋ฆฌ, ๊ทธ๋ฆผ, ์˜์ƒ ๋“ฑ ์‹ค์ƒํ™œ์„ ๊ตฌ์„ฑํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“  ๊ฐ’ ๋ฐ์ดํ„ฐ๋Š” ์‚ฌ์šฉํ•˜๋ ค๋Š” ๋ชฉ์ (ํ•„์š”)์— ๋”ฐ๋ผ ๋ถ„์„ํ•˜๊ณ  ์ •๋ฆฌํ•˜์—ฌ ํ™œ์šฉํ•ด์•ผ๋งŒ ์˜๋ฏธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์ž๋ฃŒ์˜ ์ง‘ํ•ฉ์„ ๊ตฌ์กฐํ™”ํ•˜๊ณ , ์ด๋ฅผ ํ‘œํ˜„ํ•˜๋Š”๋ฐ ์ดˆ์ ! ์‚ฌ๋žŒ์ด ์‚ฌ์šฉํ•˜๊ธฐ์— ํŽธ๋ฆฌํ•˜๋ ค๊ณ , ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์œผ๋ ค๊ณ  ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์ด ์ž๋ฃŒ๊ตฌ์กฐ๋‹ค! ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๋ถ„๋ฅ˜ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ํŠน์ง• ํŠน์ •ํ•œ ์ƒํ™ฉ์— ๋†“์ธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ์— ํŠนํ™” ๋งŽ์€ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์•Œ์•„๋‘๋ฉด, ์–ด๋– ํ•œ ์ƒํ™ฉ์ด ๋‹ฅ์ณค์„ ๋•Œ ์ ํ•ฉํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ์ ์šฉํ•˜์—ฌ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ https://www.cs.usfca.edu/~galles/visualization/Algorithms.html Data Structure Visuali..

DEV_IN/Algorithm 2023. 2. 22. 20:43
JavaScript Event Loop๋ž€?

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) ์šฐ๋ฆฌ๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์—..

DEV_IN/JavaScript 2023. 2. 22. 18:25
JSX

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 ๋ฌธ๋ฒ•๋งŒ์„ ๊ฐ€์ง€๊ณ  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ปดํฌ๋„ŒํŠธ ํ•˜๋‚˜๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํŒŒ์ผ..

DEV_IN/React 2023. 2. 21. 23:58
What is React?

React๋กœ ๋‘๋ฒˆ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ ์™œ React๋ฅผ ์ผ๋Š”๊ฐ€์™€ ์–ด๋–ค ์žฅ์ ์ด ์žˆ๋Š”์ง€ ์Šค์Šค๋กœ ์งˆ๋ฌธ์— ์ œ๋Œ€๋กœ ๋‹ต๋„ ๋ชปํ•˜๋Š” ๋‚ด ์ž์‹ ์ด ํ•œ์‹ฌํ•ด์„œ ๋งˆ์Œ ๋‹ค์žก๊ณ  ์ •๋ฆฌ๋ฅผ ๋„์ ์—ฌ๋ด…๋‹ˆ๋‹ค๋นˆ..๐Ÿ˜ฅ ํ•ญ์ƒ ์ด๊ฑด "์™œ" ์ƒ๊ฒผ๊ณ , "์™œ" ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์“ฐ๋Š”์ง€ ์ •๋„๋Š” ์•Œ๊ณ  ์“ฐ์ž ๋‹ค๋นˆ์•„ใ…ใ…ใ… plz What is React? React๋Š” ํ”„๋ก ํŠธ์•ค๋“œ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ, ํ”„๋ก ํŠธ์•ค๋“œ ๊ฐœ๋ฐœ์„ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” JavaScript ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ธฐ์ˆ ์  ๋ถ„๋ฅ˜์— ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฅ˜ํ•˜์ง€ ์•Š๊ณ , ๊ธฐ๋Šฅ๋ณ„๋กœ ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ธธ ๊ถŒ์žฅ ๋ฆฌ์•กํŠธ SPA๋ฅผ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ง„ ํˆด ์ฒด์ธ npx create-react-app@latest ํด๋”์ด๋ฆ„ React์˜ 3๊ฐ€์ง€ ํŠน์ง• ์„ ์–ธํ˜• (Declarative) ๋ฆฌ์•กํŠธ๋Š” ํ•œ ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด HTM..

DEV_IN/React 2023. 2. 21. 23:39