์ ์ฒด ๊ธ
-
๐์๋ฐ์คํฌ๋ฆฝํธ 3 | Lexical Environment, Scope Chain์๋ฐ์คํฌ๋ฆฝํธ 2021. 11. 15. 19:01
function a(){ let b = 10; function c(){ console.log(b); } c(); } a(); console.log(b); ์์ ์ฝ๋๊ฐ ์คํ๋ ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ๋์๊ฐ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค. 1. ๋จผ์ ์ ์ญ ์ค์ฝํ์ ์์นํ๊ณ ์๋ ๋ณ์ a๋ฅผ ๋ด๊ณ , ๋ณ์ a์๋ ์ ์๋์ด์๋ ํจ์๋ฅผ ํ ๋นํ๋ค. 2. ๊ทธ ๋ค์ a ํจ์๊ฐ ํธ์ถ๋๊ณ ์ ์ญ ์ปจํ ์คํธ์์ a๊ฐ ์คํ๋์ด let b = 10 ์ฝ๋๊ฐ ์คํ๋๋ค. 3. ์ด์ call stack memory์ aํจ์๊ฐ ์ ์ฅ๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์๋ณ์ b์ c๊ฐ callstack์ ์ ์ฅ๋๋ค(b : 10, c : function(){}). 4. ๋ค์ cํจ์๊ฐ ํธ์ถ๋๊ณ console.log(b)๋ฅผ ๋ง๋๋ค. ํ์ฌ ํ์ฑํ ์ํ์ธ c ์ปจํ ์คํธ์์ b๋ฅผ ๊ฒ..
-
๐์๋ฐ์คํฌ๋ฆฝํธ 2 | ์ค์ฝํ(scope), let vs var vs const์๋ฐ์คํฌ๋ฆฝํธ 2021. 11. 15. 17:39
์ค์ฝํ(scope) ์ค์ฝํ๋ ์ฝ๊ฒ ๋งํด ๋ณ์์ ์ ํจ๋ฒ์์ด๋ค. function start(){ for (let i = 0; i < 5; i++){ console.log(i); } console.log(i); } start(); ์์ ์ฝ๋๋ฅผ ์คํ ์์ผ๋ณด๋ฉด for ๋ฌธ ์์ console.log(i) ๋ ์ ์คํ๋ ๋ฐ๋ฉด, for ๋ฌธ ๋ฐ์ console.log(i)๋ i๊ฐ ์ ์๋์ด ์์ง ์๋ค๊ณ ์๋ฌ๊ฐ ๋ฌ ๊ฒ์ ๋ณผ ์ ์๋ค. ๊ทธ ์ด์ ๋ i๊ฐ for ๋ฌธ ์์์๋ง ์ ํจํ ๋ณ์์ด๊ธฐ ๋๋ฌธ์ด๋ค. ์์ ์ค๋ฅ๋ฅผ ํด๊ฒฐํ๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ด ๋ณ์๋ฅผ ์์ ๋ฐ์์ ์ ์ธํ์ฌ ์ค์ฝํ์ ๋ฒ์๋ฅผ for๋ฌธ ๋ฐ์ผ๋ก ํ์ฅ์ํฌ ์ ์๋ค. function start(){ let i = 0; for(i = 0; i < 5; i++){ console...
-
๐์๋ฐ์คํฌ๋ฆฝํธ 1 | ๊ธฐ๋ณธํ ๋ฐ์ดํฐ์ ์ฐธ์กฐํ ๋ฐ์ดํฐ์๋ฐ์คํฌ๋ฆฝํธ 2021. 11. 13. 16:09
๊ธฐ๋ณธํ๊ณผ ์ฐธ์กฐํ์ ๊ตฌ๋ถํ๋ ๊ธฐ์ค ๋ฐ์ดํฐ ํ์ ์ ์ข ๋ฅ๋ ํฌ๊ฒ ๊ธฐ๋ณธํ๊ณผ ์ฐธ์กฐํ 2๊ฐ์ง๋ก ๋๋๋ค. ๊ธฐ๋ณธํ๊ณผ ์ฐธ์กฐํ์ ๊ตฌ๋ถ ์ง๋ ๊ฐ์ฅ ํฐ ์ ์ ์ค์ ๊ฐ ์ ์ฒด ๋ณต์ฌ vs ์ค์ ๊ฐ์ด ๋ค์ด์๋ ์ฃผ์ ๊ฐ ๋ณต์ฌ์ด๋ค. - ๊ธฐ๋ณธํ (copy value of a) let a = 1; let b = a; a += 10; console.log(a) //11 console.log(b) //1 ์์ ์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด a์ ๊ฐ์ด ๋ณํ๋๋ผ๋ b์ ๊ฐ์ ๊ทธ๋๋ก ์ธ ๊ฒ์ ๋ณผ ์ ์๋ค. let b = a; ์ฝ๋๋ฅผ ํตํด a๊ฐ ์ ์ฒด๊ฐ ๋ณต์ฌ๋์ด b๋ผ๋ ๋ณ์์ ๋ด๊ฒผ๋ค. a, b๋ ์๋ก ์ํฅ์ ๋ฐ์ง ์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ์กด์ฌํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ๊ธฐ๋ณธํ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ๋๋ ์๋์ ๊ฐ์ ์์๋ก ์ ์ฅ๋๋ค. 1. ๋ณ์ ์์ญ์์ ๋น ๊ณต๊ฐ(@1003 : ์์์ ..
-
๐๏ธ ์๋ฃ๊ตฌ์กฐ ๊ณต๋ถํ๊ธฐ 4 | ๋ณํฉ ์ ๋ ฌ(merge sort)data structure 2021. 1. 19. 09:05
๋ณํฉ ์ ๋ ฌ(merge sort) ๋ณํฉ ์ ๋ ฌ ๋๋ ํฉ๋ณ ์ ๋ ฌ์ ๋น๊ต ๊ธฐ๋ฐ์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์๋ฅผ ๋ค์ด, ์ ๋ ฌ๋ ๋ ๊ฐ์ ๋ฐฐ์ด์ด ์๋ค๊ณ ํ์. let arr1 = [4,6,7,8]; let arr2 = [1,5,6,7]; let result = []; ์ ๋ ฌ๋ ๋ ๋ฐฐ์ด์ ํ๋์ ๋ฐฐ์ด๋ก ํฉ์น๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํด์ผํ ๊น? ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ ์ด๋ฏธ ๋ ๋ฐฐ์ด์ด ์ ๋ ฌ๋ ์ํ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ์์ ๊ฐ๋ผ๋ฆฌ ๋น๊ต๋ฅผ ํ๋ ๊ฒ์ด๋ค. ์ฌ๊ธฐ์ ๋งํ๋ ๊ฐ์ฅ ์์ ๊ฐ์ 0๋ฒ์งธ ์ธ๋ฑ์ค์ ์์นํ ์์์ด๋ค. ์ฒ์์๋ 4์ 1์ ๋น๊ตํ๋๋ฐ 1์ด 4๋ณด๋ค ์์ผ๋ฏ๋ก result์ 1์ด ๋จผ์ ๋ค์ด๊ฐ๊ฒ ๋๋ค. 4 > 1 result.push(1); ๊ทธ ๋ค์ ๋น๊ต๋์์ 4์ 1์ ๋ค์ ์ซ์์ธ 5์ด๋ค. 4 < 5 result.push(4); ๋ ์์ ..
-
๐๏ธ ์๋ฃ๊ตฌ์กฐ ๊ณต๋ถํ๊ธฐ 3 | ์ฐ๊ฒฐ ๋ฆฌ์คํธ (Linked List)data structure 2020. 12. 29. 14:09
์ฐ๊ฒฐ ๋ฆฌ์คํธ(Linked List) ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ํฌ๊ธฐ๊ฐ ๋์ ์ธ ์๋ฃ๊ตฌ์กฐ๋ก, ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ฑํ๋ ์์์ธ ๋ ธ๋(Node)์ ์ฐ๊ฒฐ๋ก ์ด๋ฃจ์ด์ง ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ๊ฐ์ด ๋ค์ด์ฌ ๋๋ง๋ค ๋ ธ๋๋ฅผ ๋ง๋ค์ด ์ ์ฅํ๊ฒ ๋๋ค. ๋ ธ๋(Node) ๋ ธ๋๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ฑํ๋ ์์๋ค์ ๊ฐ๋ฆฌํค๋ ๋ฐ, ๋ ธ๋์ ๊ตฌ์ฑ์ ํฌ๊ฒ ๋งํฌ, ๋ฐ์ดํฐ ํ๋๋ก ๊ตฌ์ฑ๋์ด์๋ค. ๋ฆฌ์คํธ(List) ์๋ฃ๊ตฌ์กฐ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์ดํดํ๊ธฐ ์ ์ ๋ฆฌ์คํธ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ดํดํด๋ณด์. List๋ Dynamic Array๋ก ๋์ ์ธ ์ด๋ ์ด๋ฅผ ๋ปํ๋ค. ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ฌ ๋๋ง๋ค ๋์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๋ฆฌ์คํธ ์๋ฃ๊ตฌ์กฐ๊ฐ ์๋ ์ ์ ์ธ ์ด๋ ์ด(๋ฐฐ์ด) ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฑ ์ฐ๋ฆฌ๊ฐ ์ง์ ํด์ค ๋งํผ์ ๊ณต๊ฐ์ ์ฌ์ฉํด์ผ ํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ด๋ฆฌํ๊ธฐ ์ฝ๋ค๋ ..
-
๐ฆ ์นํฉ(Webpack) 1 | ์นํฉ์ ๊ฐ๋ , ๋ฒ๋ค๋ฌ(Bundler), ์นํฉ ์ฌ์ฉ๋ฐฉ๋ฒwebpack 2020. 12. 27. 18:54
์น ๊ฐ๋ฐ์ ๊ณต๋ถํ ๋ ์์ฃผ ๋ฑ์ฅํ๋ ๋จ์ด '์นํฉ', ์นํฉ์ด๋ ๋ฌด์์ผ๊น? ํ๋์ ์น ํ์ด์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ .sassํ์ผ(css), .jsํ์ผ, .htmlํ์ผ, .jpg ์ด๋ฏธ์ง ํ์ผ ๋ฑ ์๋ง์ ํ์ผ์ด ์๊ฒจ๋๋ค. naver.com ํ์ด์ง์ ์ ์ํ๋๋ผ๋ ๊ต์ฅํ ๋ง์ JS,CSS, Img ํ์ผ๋ค์ ๋ถ๋ฌ์ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. ํ์ง๋ง ์ด๋ ๊ฒ ๋ง์ ํ์ผ์ ์๋ฒ์ ๊ณ์ ํต์ ํ๋ฉฐ ๋ฐ์์ฌ ๊ฒฝ์ฐ, ๋ ๋๋ง ์๋๊ฐ ๋๋ ค์ง ๊ฒ์ด๋ค. ๋ํ, ๊ฐ์ ๋ณ์๋ช ์ ์ฌ์ฉํ๋ ๋ค๋ฅธ ํ์ผ์ด ์๋ค๋ฉด, ๋ฎ์ด์์์ง๋ ๋ฑ ๋ฌธ์ ์ ์ด ์๊ธด๋ค. ๋ฐ๋ก ์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ๋์ ๋ ๊ฐ๋ ์ ๋ชจ๋(module)์ด๋ค. ์คํฌ๋ฆฝํธ์ ํ์ ์ ๋ชจ๋๋ก ๋ฐ๊พผ ํ, export, import๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ ๋ณ์๋ฅผ ๊ฐ์ง๊ณ ์๋๋ผ๋ ๊ฐ๊ฐ ๋ถ๋ฆฌํด์ ์ฌ์ฉํ ์ ์๋ค. ..
-
๐ AWS ๋ฐฐํฌ | ๋๋ฉ์ธ ๊ตฌ๋งค ํ aws S3 ๋ฒํท๊ณผ ์ฐ๊ฒฐํ๊ธฐdeployment 2020. 12. 27. 17:37
๐ค Route 53์ด๋ ๋ฌด์์ผ๊น? ์๋ง์กด์์ ์ ๊ณตํ๋ Domain Name System ์น์๋น์ค์ด๋ค. ์น ํ์ด์ง์ ๋๋ฉ์ธ์ ๋ถ์ฌ์ฃผ๋ ์๋น์ค๋ก, ์ฌ์ฉ์์ ์์ฒญ์ ec2, elastic load balancing ๋ก๋ ๋ฐธ๋ฐ์, s3 ๋ฒํท ๋ฑ aws์์ ์คํ๋๋ ์ธํ๋ผ์ ์ฐ๊ฒฐํ ์ ์๋๋ก ๋์์ค๋ค. ๋๋ S3๋ฒํท๊ณผ ์ฐ๊ฒฐ์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด ์๋น์ค๋ฅผ ์ด์ฉํ๊ธฐ๋ก ํ๋ค. ๋๋ ๊ฐ๋น์์์ ๋๋ฉ์ธ์ ๊ตฌ๋งคํ์ง๋ง, route 53์์๋ ๋๋ฉ์ธ ๊ตฌ๋งค ์๋น์ค๋ ์ ๊ณตํ๋ค. ๋ด๊ฐ ํ ์ผ์ 1. example.com ๋๋ฉ์ธ ์ด๋ฆ ๋ฑ๋ก 2. Amazon S3๋ฒํท์ ๋ง๋ค๊ณ ์น ์ฌ์ดํธ๋ฅผ ํธ์คํ ํ๋๋ก ๋ฒํท์ ๊ตฌ์ฑ ์ด ๋ ๊ฐ์ง์ด๋ค. ์ฑ๊ณตํ์ ์์๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ด๊ณ ๋๋ฉ์ธ ์ด๋ฆ์ ์ ๋ ฅํ์์ ๋, ํธ์คํ ํ ์นํ์ด์ง๊ฐ ์ ๋ ๋๋ง ๋์ด์ผ ํ๋ค..
-
๐๏ธ ์๋ฃ๊ตฌ์กฐ ๊ณต๋ถํ๊ธฐ 2 | ์คํ(stack) vs ํ(queue)data structure 2020. 12. 18. 13:50
์คํ(stack) ์ด๋ ๊ฒ ์ฑ ์ด ๋ฌด๋๊ธฐ๋ก ์์ฌ์์ ๋, ๊ฐ์ฅ ๋ง์ง๋ง์ ์์ ์ฑ ์ ๊ฐ์ฅ ๋จผ์ ๊บผ๋ธ ํ์ ๋ค๋ฅธ ์ฑ ์ ๊บผ๋ผ ์ ์๋ค. ์คํ์ ๊ฐ์ฅ ๋ง์ง๋ง์ ๋ค์ด์จ ๊ฒ์ด ๊ฐ์ฅ ๋จผ์ ๋๊ฐ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค(LIFO : Last In, First Out). ๋ค๋ก๊ฐ๊ธฐ, ๊ณ์ฐ๊ธฐ ๋ฑ๋ ์คํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ ์์ด๋ค. ์ฌ๋ฌ๊ฐ์ง ๋ฉ์๋ stack์ ์ฃผ์ ๋ฉ์๋๋ก๋ push, pop, top/peek ๋ฑ์ด ์๋ค. 1. push : ์คํ๊ณต๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ง์ด๋ฃ๋(์ ์ฅํ๋) ๋ฉ์๋์ด๋ค. 2. pop : ์คํ๊ณต๊ฐ์ ์ต์๋จ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด๋ ๋ฉ์๋์ด๋ค. 3. peek : ์ ์ผ ์ต๊ทผ์ ๋ค์ด๊ฐ ๋ฐ์ดํฐ, ์ต์์ ๋ฐ์ดํฐ(top)๋ฅผ ์ฝ๋ ์์ ์ด๋ค. (๋ฐ์ดํฐ์ ์ํฅ์ ์ฃผ์ง ์๋๋ค) ์คํ ์๋ฃ๊ตฌ์กฐ ์ฝ๋๋ก ์์ฑํด๋ณด๊ธฐ class Stack{ cons..