ํด๋ก์ (closure)๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ณ ์ ์ ๊ฐ๋ ์ด ์๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ฌ์ฉ๋๋ ์ค์ํ ํน์ฑ์ผ๋ก MDN์์๋ ํด๋ก์ ๋ฅผ "ํจ์์ ๊ทธ ํจ์๊ฐ ์ ์ธ๋ ๋ ์์ปฌ ํ๊ฒฝ๊ณผ์ ์กฐํฉ"์ด๋ผ๊ณ ์ ์ํฉ๋๋ค. ๋ฐ๋ผ์ ํด๋ก์ ๋ฅผ ์ดํดํ๊ธฐ ์ํด์ ํจ์๊ฐ ์ ์ธ๋ ๋ ์์ปฌ ํ๊ฒฝ์ ๋ํด ์์์ผํฉ๋๋ค. ๋ ์์ปฌ ์ค์ฝํ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ํจ์๋ฅผ ์ด๋์ ์ ์ํ๋์ง์ ๋ฐ๋ผ ์์ ์ค์ฝํ์ธ ๋ ์์ปฌ ์ค์ฝํ(์ ์ ์ค์ฝํ)๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. const x = 1; function foo () { const x = 10; bar(); } function bar () { console.log(X); } foo(); // 1 bar(); // 1 ์ ์์ ์ foo ํจ์์ bar ํจ์๋ ๋ชจ๋ ์ ์ญ์์ ์ ์๋ ์ ์ญ ํจ์๋ก foo ํจ์์ bar ํจ์ ๋ชจ๋ ..
๋์ปค๋? ๋์ปค๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ฒ ๊ตฌ์ถ, ํ ์คํธ ๋ฐ ๋ฐฐํฌํ ์ ์๋ ์ํํธ์จ์ด ํ๋ซํผ์ ๋๋ค. Go์ธ์ด๋ก ์์ฑ๋ ๋ฆฌ๋ ์ค ์ปจํ ์ด๋ ๊ธฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์คํ์์ค ๊ฐ์ํ ํ๋ซํผ ์ ํ๋ฆฌ์ผ์ด์ ์คํํ๊ฒฝ์ ์ฝ๋๋ก ์์ฑํ ์ ์์ OS๋ฅผ ๊ณต์ , ๊ฒฉ๋ฆฌํํ์ฌ ๊ด๋ฆฌํ ์ ์์ ์ฆ, ๋์ปค๋ ๋ ๋ฆฝ๋ ํ๊ฒฝ์ ๋ง๋ค์ด์ ํ๋์จ์ด๋ฅผ ํจ์จ์ ์ผ๋ก ํ์ฉํ๋ ๊ธฐ์ ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค. Docker๋ ํ์ฌ ๋ง์ ์๋น์ค์์ ์ฌ์ฉ๋๊ณ ์๋ ๊ธฐ์ ๋ก์ ํนํ *MSA์ ๋จ์ ์ธ ๊ด๋ฆฌ์ ๋ณต์ก์ฑ์ ํด๊ฒฐํด์ฃผ๊ธฐ ์ํด ์๋น์ค์ ์ปจํฐ์ด๋ํ๊ฐ ์ด๋ฃจ์ด์ง๋ฉฐ Docker์ Kubernetes๊ฐ ๋ง์ด ๋์ ๋์์ต๋๋ค. *MSA : ์๋น์ค๊ฐ์ ์์กด์ฑ์ ์์ ๊ณ ๊ธฐ๋ฅ์ ์ชผ๊ฐ๋ ๊ฒ์ ์ค์ ์ ์ผ๋ก ์ค๊ณํ ์ํคํ ์ฒ ๊ฐ์ํ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๊ฐ์ํ๋ ํ๋์ ํ๋์จ์ด๋ฅผ ์ฌ๋ฌ ๊ฐ์ ๊ฐ..
์คํ ์ปจํ ์คํธ(execution context)๋? ์คํ ์ปจํ ์คํธ๋ ์์ค์ฝ๋๋ฅผ ์คํํ๋ ๋ฐ ํ์ํ ํ๊ฒฝ์ ์ ๊ณตํ๊ณ ์ฝ๋์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ์ค์ ๋ก ๊ด๋ฆฌํ๋ ์์ญ์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ์ ๋์ ์๋ฆฌ๋ฅผ ๋ด๊ณ ์๋ ํต์ฌ ๊ฐ๋ ์ ๋๋ค. ์์ค์ฝ๋์ ํ์ ECMAScript ์ฌ์์ ์์ค์ฝ๋๋ฅผ 4๊ฐ์ง ํ์ ์ผ๋ก ๊ตฌ๋ถํ๋๋ฐ ํ์ ์ ๋ฐ๋ผ ์คํ ์ปจํ ์คํธ๋ฅผ ์์ฑํ๋ ๊ณผ์ ๊ณผ ๊ด๋ฆฌ ๋ด์ฉ์ด ๋ค๋ฆ ๋๋ค. ์์ค์ฝ๋ ํ์ ์ค๋ช ์ ์ญ ์ฝ๋ - ์ ์ญ์ ์กด์ฌํ๋ ์์ค์ฝ๋ - ์ต์์ ์ค์ฝํ์ธ ์ ์ญ ์ค์ฝํ ์์ฑ - ์ ์ญ ์ฝ๋๊ฐ ํ๊ฐ๋๋ฉด ์ ์ญ ์คํ ์ปจํ ์คํธ๊ฐ ์์ฑ ํจ์ ์ฝ๋ - ํจ์ ๋ด๋ถ์ ์กด์ฌํ๋ ์์ค์ฝ๋ - ์ง์ญ ์ค์ฝํ๋ฅผ ์์ฑ - ํจ์ ์ฝ๋๊ฐ ํ๊ฐ๋๋ฉด ํจ์ ์คํ ์ปจํ ์คํธ๊ฐ ์์ฑ eval ์ฝ๋ - ๋นํธ์ธ ์ ์ญ ํจ์์ธ eval ํจ์์ ์ธ์๋ก ์ ๋ฌ๋์ด ์คํ๋๋ ์..
this ํค์๋ this๋ ์์ ์ด ์ํ ๊ฐ์ฒด๋ฅผ ๋๋ ์์ ์ด ์์ฑํ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฅดํค๋ ์๊ธฐ ์ฐธ์กฐ ๋ณ์์ ๋๋ค. this๋ฅผ ํตํด ์์ ์ด ์ํ ๊ฐ์ฒด ๋๋ ์์ ์ด ์์ฑํ ์ธ์คํด์ค์ ํ๋กํผํฐ๋ ๋ฉ์๋๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค. // ์์ฑ์ ํจ์ function Circle(radius) { // this๋ ์์ฑ์ ํจ์๊ฐ ์์ฑํ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํด this.radius = radius; } Circle.prototype.getDiameter = function () { // this๋ ์์ฑ์ ํจ์๊ฐ ์์ฑํ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํด return 2 * this.radius; }; // ์ธ์คํด์ค ์์ฑ const circle = new Circle(5); console.log(circle.getDiameter()); // 10 ์๋ฐ..
์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด์ ๋ถ๋ฅ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ ๋ค์๊ณผ ๊ฐ์ด ํฌ๊ฒ 3๊ฐ์ ๊ฐ์ฒด๋ก ๋ถ๋ฅํ ์ ์์ต๋๋ค. ์ข ๋ฅ ์ค๋ช ํ์ค ๋นํธ์ธ ๊ฐ์ฒด - ESMAScript ์ฌ์์ ์ ์๋ ๊ฐ์ฒด - ์ ํ๋ฆฌ์ผ์ด์ ์ ์ญ์ ๊ณตํต ๊ธฐ๋ฅ์ ์ ๊ณต - ์๋ฐ์คํฌ๋ฆฝํธ ์คํ ํ๊ฒฝ๊ณผ ๊ด๊ณ์์ด ์ธ์ ๋ ์ฌ์ฉ ๊ฐ๋ฅ - ์ ์ญ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ก์ ์ ๊ณต๋จ - ๋ณ๋์ ์ ์ธ ์์ด ์ ์ญ ๋ณ์์ฒ๋ผ ์ธ์ ๋ ์ฐธ์กฐ ๊ฐ๋ฅ ํธ์คํธ ๊ฐ์ฒด - ์๋ฐ์คํฌ๋ฆฝํธ ์คํ ํ๊ฒฝ์์ ์ถ๊ฐ๋ก ์ ๊ณตํ๋ ๊ฐ์ฒด (ESMAScript ์ฌ์์ ์ ์๋ ๊ฐ์ฒดX) - ๋ธ๋ผ์ฐ์ ํ๊ฒฝ : *ํด๋ผ์ด์ธํธ ์ฌ์ด๋ Web API๋ฅผ ํธ์คํธ ๊ฐ์ฒด๋ก ์ ๊ณต - Node.js ํ๊ฒฝ : ๊ณ ์ ์ API๋ฅผ ํธ์คํธ ๊ฐ์ฒด๋ก ์ ๊ณต ์ฌ์ฉ์ ์ ์ ๊ฐ์ฒด - ์ฌ์ฉ์๊ฐ ์ง์ ์ ์ํ ๊ฐ์ฒด (ํ์ค ๋นํธ์ธ ๊ฐ์ฒด์ ํธ์คํธ ๊ฐ์ฒด์ฒ๋ผ ๊ธฐ๋ณธ ์ ๊ณต๋๋ ๊ฐ์ฒดX)..
strict mode๋? ES5๋ถํฐ ์ถ๊ฐ๋ strict mode(์๊ฒฉ ๋ชจ๋)๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด์ ๋ฌธ๋ฒ์ ์ข๋ ์๊ฒฉํ ์ ์ฉํ์ฌ ์ค๋ฅ๋ฅผ ๋ฐ์์ํฌ ๊ฐ๋ฅ์ฑ์ด ๋๊ฑฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ต์ ํ ์์ ์ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ ์ฝ๋์ ๋ํด ๋ช ์์ ์ธ ์๋ฌ๋ฅผ ๋ฐ์์ํค๋ ๊ธฐ๋ฅ์ ๋๋ค. ์ค๋ฅ๋ฅผ ์ค์ฌ ์์ ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํ ํด๊ฒฐ์ฑ ์ผ๋ก, ์ ์ฌ์ ์ธ ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๊ธฐ ์ด๋ ค์ด ๊ฐ๋ฐ ํ๊ฒฝ์ธ strict mode๋ฅผ ๋ง๋ค๊ณ ๊ทธ ํ๊ฒฝ์์ ๊ฐ๋ฐํ๋ ๊ฒ์ ๋๋ค. *ESLint : ์ ์ ๋ถ์๊ธฐ๋ฅ์ ํตํด ์์ค์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ ์ ์์ค์ฝ๋๋ฅผ ์ค์บํ์ฌ ๋ฌธ๋ฒ์ ์ค๋ฅ๋ฟ๋ง ์๋๋ผ ์ ์ฌ์ ์ค๋ฅ๊น์ง ์ฐพ์๋ด๊ณ ์ค๋ฅ์ ์์ธ์ ๋ฆฌํฌํ ํด์ฃผ๋ ์ ์ฉํ ๋๊ตฌ. ๋ฆฐํธ ๋๊ตฌ๋ฅผ ํ์ฉํ๋ฉด strict mode์ ์ ์ฌํ ํจ๊ณผ๋ฅผ ์ป์ ์ ์์ด ์ค์ ๊ฐ๋ฐ ํ๊ฒฝ์์๋ ESLint..
์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ช ๋ นํ, ํจ์ํ, ํ๋กํ ํ์ ๊ธฐ๋ฐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ง์ํ๋ ๋ฉํฐ ํจ๋ฌ๋ค์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. C++๋ ์๋ฐ์ ๊ฐ์ ํด๋์ค ๊ธฐ๋ฐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ณด๋ค ํจ์จ์ ์ด๋ฉฐ ๋ ๊ฐ๋ ฅํ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ๋ฅ๋ ฅ์ ์ง๋๊ณ ์์ต๋๋ค. ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ก๊ทธ๋๋ฐ์ ๋ช ๋ น์ด ๋๋ ํจ์์ ๋ชฉ๋ก์ผ๋ก ๋ณด๋ ์ ํต์ ์ธ ๋ช ๋ นํ ํ๋ก๊ทธ๋๋ฐ์ ์ ์ฐจ์งํฅ์ ๊ด์ ์์ ๋ฒ์ด๋ ์ฌ๋ฌ ๊ฐ์ ๋ ๋ฆฝ์ ๋จ์, ์ฆ ๊ฐ์ฒด์ ์งํฉ์ผ๋ก ํ๋ก๊ทธ๋จ์ ํํํ๋ ค๋ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ๋๋ค. // ์ด๋ฆ๊ณผ ์ฃผ์ ์์ฑ์ ๊ฐ๋ ๊ฐ์ฒด const person = { name: 'Lee', address: 'Seoul' }; const circle = { radius: 5, getDiameter() { return 2 * radi..
๋ฌธ๋งฅ ๊ตํ์ด๋? ๋ฌธ๋งฅ ๊ตํ์ ํ๋์ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ฌ์ฉ ์ค์ธ ์ํ์์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ฌ์ฉํ๋๋ก ํ๊ธฐ ์ํด, ์ด์ ์ ํ๋ก์ธ์ค์ ์ํ(๋ฌธ๋งฅ)์ ๋ณด๊ดํ๊ณ ์๋ก์ด ํ๋ก์ธ์ค์ ์ํ๋ฅผ ์ ์ฌํ๋ ์์ ์ ๋งํฉ๋๋ค. ์ด๋ ํ ํ๋ก์ธ์ค์ ๋ฌธ๋งฅ์ ๊ทธ ํ๋ก์ธ์ค์ ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก(PCB)์ ๊ธฐ๋ก๋์ด ์์ต๋๋ค. PCB(Process Control Block)๋? ์ด์์ฒด์ ๊ฐ ์์คํ ๋ด์ ํ๋ก์ธ์ค๋ค์ ๊ด๋ฆฌํ๊ธฐ ์ํด ํ๋ก์ธ์ค๋ง๋ค ์ ์งํ๋ ์ ๋ณด๋ค์ ๋ด๋ ์ปค๋ ๋ด ์๋ฃ๊ตฌ์กฐ๋ก ์ปค๋ ์ฃผ์ ๊ณต๊ฐ์ data ์์ญ์ ์กด์ฌํฉ๋๋ค. PCB์ ์ ์ฅ๋๋ ๋ด์ฉ๋ค Process ์ํ : CPU๋ฅผ ํ ๋นํด๋ ๋๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ PC๊ฐ : ๋ค์์ ์ํํ ๋ช ๋ น์ด์ ์์น๋ฅผ ๊ฐ๋ฅดํด CPU Register : CPU ์ฐ์ฐ์ ์ํด ํ ์์ ์ ๋ ์ง์คํฐ์..
- Total
- Today
- Yesterday
- git
- ์๊ณ ๋ฆฌ์ฆ
- ํ๋กํผํฐ
- TDD
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- http
- ์ ์ญ ๋ณ์
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- ์๋ฐ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋์์ธ ํจํด
- ๋ ์์ปฌ ํ๊ฒฝ
- ์ฝ๋ฉํ ์คํธ
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- fp
- JavaScript
- ์นด์นด์ค ์ธํด
- ๋ฐฑ์ค node.js
- ํ๋กํ ์ฝ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- ๋ฐฑ์ค
- ์ด์์ฒด์
- ์ด๋ถํ์
- ๋ฐฑ์ค javascript
- ํฌํฌ์ธํฐ
- Baekjoon
- map
- ๋คํธ์ํฌ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |