๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
[D+47] Linked List์™€ Hash Table D+47 - Linked List์™€ Hash Table - (Linked List, Hash Table) Linked List •ํฌ๊ธฐ๊ฐ€ ๋™์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ • ๋…ธ๋“œ(๋ฐ์ดํ„ฐ ํ•„๋“œ + ๋งํฌ)์˜ ์—ฐ๊ฒฐ๋กœ ์ด๋ฃจ์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ ํ•„๋“œ - ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณณ ๋งํฌ - ๋‹ค์Œ ๋…ธ๋“œ์˜ ์œ„์น˜๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๊ณณ Singly Linked List (๋‹จ์ผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ) ๋…ธ๋“œ ์•ˆ์— ๋งํฌ๊ฐ€ 1๊ฐœ์ด๊ณ , ๋‹จ๋ฐฉํ–ฅ์œผ๋กœ ์ง„ํ–‰ํ•˜๋Š” ๋ฆฌ์ŠคํŠธ์ด๋‹ค. ๋…ธ๋“œ ์•ˆ ๋งํฌ๊ฐ€ 1๊ฐœ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด์ „ ๋…ธ๋“œ๋กœ ๊ฐˆ ์ˆ˜ ์—†๋‹ค. Doubly Linked List (์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ) ๋…ธ๋“œ ์•ˆ์— ๋งํฌ๊ฐ€ 2๊ฐœ ์ด๊ณ  ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ์ด๋‹ค. Circular Linked List (ํ™˜ํ˜• ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ) ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ๊ฐ€ ์ฒซ ๋ฒˆ์งธ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌ์ผœ์„œ ๊ณ„์† ํšŒ์ „ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค.. 2020. 10. 23.
[D+46] ์Šคํƒ๊ณผ ํ D+44 - ์Šคํƒ๊ณผ ํ - (์Šคํƒ, ํ) ์Šคํƒ (Stack) ์Šคํƒ์€ LIFO(Last In First Out)์œผ๋กœ ๋‚˜์ค‘์— ๋“ค์–ด์˜จ ๊ฒƒ์ด ๊ฐ€์žฅ ๋จผ์ € ๋‚˜๊ฐ€๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์ผ์ƒ ์†์—์„œ ์˜ˆ๋ฅผ ์ฐพ์•„๋ณด์ž๋ฉด ์Œ“์•„๋†“์€ ์ ‘์‹œ๋ฅผ ์˜ˆ๋กœ ๋“ค ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. ๋†’์ด ์Œ“์—ฌ์ ธ ์žˆ๋Š” ์ ‘์‹œ์—์„œ ํ•˜๋‚˜๋ฅผ ๊ฐ€์ ธ๊ฐˆ ๋•Œ ์šฐ๋ฆฌ๋Š” ๋ณดํ†ต ์ค‘๊ฐ„์ด๋‚˜ ๋ฐ”๋‹ฅ์—์„œ๋ถ€ํ„ฐ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฐ€์žฅ ์œ„์— ์˜ฌ๋ ค์ ธ ์žˆ๋Š” ์ ‘์‹œ๋ฅผ ๊ฐ€์ ธ๊ฐ„๋‹ค. ์ด๋•Œ์˜ ๋‚ด๊ฐ€ ๊ฐ€์ ธ๊ฐ€๋Š” ์ ‘์‹œ๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์— ์˜ฌ๋ ค์ ธ ์žˆ๋Š” ์ ‘์‹œ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์Šคํƒ๊ณผ ๊ฐ™์€ ์›๋ฆฌ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์Šคํƒ ์šฉ์–ด •pop( ) : ๋„ฃ์–ด๋‘” ์ž๋ฃŒ๋ฅผ ๊บผ๋‚ด๋Š” ๊ฒƒ์œผ๋กœ ์ด๋•Œ ๊บผ๋‚ด์ง€๋Š” ์ž๋ฃŒ๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋„ฃ์€ ์ž๋ฃŒ๋ถ€ํ„ฐ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค. •push(element) : ์ž๋ฃŒ๋ฅผ ๋„ฃ๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋„ฃ์€ ์ž๋ฃŒ์ผ์ˆ˜๋ก ์œ„์— ์œ„์น˜ํ•œ๋‹ค. •si.. 2020. 10. 22.
[D+45] ESlint ์„ค์น˜ํ•˜๊ธฐ D+45 - ESlint ์„ค์น˜ํ•˜๊ธฐ - (ESlinet ์„ค์น˜ํ•˜๊ธฐ) ESlint ์„ค์น˜ํ•˜๊ธฐ ESlint๋Š” ์ฝ”๋“œ์˜ ๋„์–ด์“ฐ๊ธฐ๋‚˜ ์ค„ ๋ฐ”๊ฟˆ ๋“ฑ์˜ ๊ทœ์น™๋“ค์„ ๋งž์ถ”๋Š” ๋ฐ์— ๋„์›€์ด ๋˜๋Š” Linter๋ผ๊ณ  ํ•˜๋ฉฐ, ์ข€ ๋” ์ •ํ™•ํ•˜๊ฒŒ๋Š” ECMAScript/JavaScript ์ฝ”๋“œ์—์„œ ๋ฐœ๊ฒฌ๋˜๋Š” ํŒจํ„ด์„ ์‹๋ณ„ํ•˜๊ณ  ๋ณด๊ณ ํ•˜๋Š” ๋„๊ตฌ๋กœ ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ๋งŒ๋“ค๊ณ  ๋ฒ„๊ทธ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋„๊ตฌ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ESlint๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๊ฒ ์ง€๋งŒ ๊ณต์‹๋ฌธ์„œ๋ฅผ ํ†ตํ•ด ์„ค์น˜๋ฅผ ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค๊ณ  ํ•˜๋‹ˆ ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด ์„ค์น˜๋ฅผ ํ•ด๋ณด์•˜๋‹ค. Getting Started with ESLint Getting Started with ESLint ESLint is a tool for identifying and reporting on p.. 2020. 10. 21.
[D+44] call, apply, bind ๋ฉ”์†Œ๋“œ D+44 - call, apply, bind ๋ฉ”์†Œ๋“œ - (call, apply, bind) call ๊ณผ apply call๊ณผ apply๋ฅผ ํ˜ธ์ถœํ•  ๊ฒฝ์šฐ ๋ช…์‹œ์ ์œผ๋กœ this๋ฅผ ์ง€์ •ํ•˜๊ณ  ์‹ถ์„๋•Œ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ฒซ๋ฒˆ์งธ ์ธ์ž๊ฐ€ ํ•ญ์ƒ this๊ฐ’์ด ๋ฉ๋‹ˆ๋‹ค. ์ด ๋‘˜์˜ ์ฐจ์ด์ ์€ .apply๋Š” ๋ฐฐ์—ด๋กœ ๊ฐ’์„ ๋„˜๊ฒจ์ฃผ๊ณ , .call์€ ๊ทธ๋ƒฅ ๋‹จ์ˆœํžˆ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด ๋„˜๊ฒจ์ค€๋‹ค๋Š” ์ฐจ์ด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. function add(x, y) { return x + y; } add.apply(null, [2, 8]); // 10 add.call(null, 2, 8); // 10 bind .bind๋Š” .call๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ this ๋ฐ ์ธ์ž๋ฅผ ๋ฐ”์ธ๋”ฉ ํ•˜์ง€๋งŒ ๋‹น์žฅ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋ฐ”์ธ๋”ฉ ๋œ ํ•จ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์ฒซ ๋ฒˆ.. 2020. 10. 20.
[D+44] ํ™”์‚ดํ‘œ ํ•จ์ˆ˜, ๊ตฌ์กฐ๋ถ„ํ•ด ํ• ๋‹น, this D+44 - ํ™”์‚ดํ‘œ ํ•จ์ˆ˜, ๊ตฌ์กฐ๋ถ„ํ•ด ํ• ๋‹น, this - (ํ™”์‚ดํ‘œ ํ•จ์ˆ˜, ๊ตฌ์กฐ๋ถ„ํ•ด ํ• ๋‹น, this) ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ํ•จ์ˆ˜ ํ‘œํ˜„์‹ const add = function (x, y) { return x + y } ๋งŒ์•ฝ ๋งค๊ฐœ๋ณ€์ˆ˜ x, y๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋‘ ์ˆ˜๋ฅผ ๋”ํ•œ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ• ๋•Œ ์šฐ๋ฆฌ๋Š” ์œ„์˜ ์ฝ”๋“œ๋ฅผ ์ƒ๊ฐํ•  ๊ฒƒ์ด๋‹ค. ํ•ด๋‹น์ฝ”๋“œ๋Š” ๊ธฐ์กด์— ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ํ•จ์ˆ˜ ํ‘œํ˜„์‹์œผ๋กœ ์šฐ๋ฆฌ๋Š” ํ•ด๋‹น ํ•จ์ˆ˜ ํ‘œํ˜„์‹์„ ๋”์šฑ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ const add = (x, y) => { return x + y } ๋ฐ”๋กœ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์ด๋‹ค. const add = (x, y) => x + y const add = (x, y) => (x + y) // O, ์ •์ƒ ์ž‘๋™(์†Œ๊ด„ํ˜ธ ์‚ฌ์šฉ๊ฐ€๋Šฅ) const add = (x, .. 2020. 10. 20.
[D+43] node.js์™€ ๊ด€๋ จ ๋„๊ตฌ D+43 - node.js์™€ ๊ด€๋ จ ๋„๊ตฌ - (node.js, NVM, NPM, package.json) node.js •Java Script ๋Ÿฐํƒ€์ž„ ์ฆ‰, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋Ÿฐํƒ€์ž„ (runtime) •ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ๊ตฌ๋™๋˜๋Š” ํ™˜๊ฒฝ(ํ”„๋กœ๊ทธ๋žจ) •์–ด๋–ค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ node.js์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ํ•˜๊ธฐ ๋งŒ์•ฝ์— runnode.js๋ผ๋Š” ํŒŒ์ผ์ด ์žˆ์„ ๋•Œ ์ด๊ฒƒ์„ node.jsํ™˜๊ฒฝ์—์„œ ์‹คํ–‰์‹œํ‚ค๊ณ  ์‹ถ๋‹ค๊ณ  ํ•˜์ž. // runnode.js const testFunction = function(word){ console.log("Hello ", word); } testFunction("hi"); ๊ทธ๋Ÿด ๊ฒฝ์šฐ node ์„ ํ„ฐ๋ฏธ๋„ ์ฐฝ์— ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด "Hello h.. 2020. 10. 19.