๊ฐ์ฌ : ์ด์ ํ ๊ฐ์ฌ๋ (ํ Cobalt ์์ ๊ฐ๋ฐ์)
MBTI๊ฐ ์์ ์ ๊ฒ์ฌํ์
จ์ ๋ ESFP์๋ค๊ณ ํ์
จ๋๋ฐ ๋๋ ๊ฐ์ผ์
์ ๋ญ๊ฐ ๊ธฐ๋ถ์ด ๋ฌํ๋ค ๐
์ฒซ ํ ๋ฌ ๊ฐ์ ๊ธฐ๋ณธ๊ธฐ์ ์์
์ ์ง์คํ์ ๋ค๊ณ ํ์
จ๋ค
๊ฐ๋ฐ๋ฟ๋ง ์๋๋ผ ๋ญ๋ ๊ธฐ์ด๊ฐ ์ ์ผ ์ค์ํ๋ค๋ ๊ฒ์ ๋๊ตฌ๋ ์ ๊ฒ์ด๋ค
๋ ์ด๋๊น์ง ๊ฒํฅ๊ธฐ ์์ผ๋ก ๊ฐ๋ฐ์ ์ฐ๋จน์ผ๋ก ๋ฐฐ์ด ๋๋์ด๋ผ
์ด๋ฒ ๋ฐ๋ธ์ฝ์ค๋ฅผ ํตํด ์ด์ฉ๋ฉด ๋ง์ง๋ง ๊ธฐํ๋ผ๊ณ ์๊ฐํ๊ณ ๊ธฐ์ด๋ถํฐ ์ด์ฌ์ ์ฐพ์ ๊ณต๋ถํ ๊ฒ์ด๋ค
- ์๋ฃ๊ตฌ์กฐ ๋ฐ ์๊ณ ๋ฆฌ์ฆ
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- ๋ธ๋ผ์ฐ์
- ์ปดํจํฐ ๊ณผํ ์์
- ์ฝ๋ฉ ํ ์คํธ
์ด๋ ๊ฒ 5๊ฐ์ ์น์ ์ ๋๋์ด์ ๊ฐ์ํ ์์ ์ด๋ผ๊ณ ํ์ จ๋ค
- ๊ธฐ๋ณธ๊ธฐ๋ฅผ ํํํ๊ฒ, ์์์ ๊ธฐ๋ฅด๊ธฐ
=> ๋ญ๋ ๊ธฐ๋ณธ์ด ์ค์ํ๋ค... ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ ์ํด์๋ ์ธ์ด ๋ฐ CS์ ๋ํ ์์(์ง์)์ธ ๊ธธ๋ฌ์ผ ํ๋ค
- ์ ๋ต์ ์ฐพ๋ ๊ณผ์ ์ ์ฆ๊ธฐ๊ธฐ(์์ฒญ ์ค์)
=> ์ ๋ต์ ์ฝ๊ฒ ๋ฐ๋ก ์๋ ค๊ณ ํ์ง ๋ง๊ณ ์ค์ค๋ก ์ฐพ์๊ฐ๋ ๊ณผ์ ์ด ์ค์ํ๋ค๊ณ ํ์ จ๋ค. ๊ทธ๋์ผ ๊ธฐ์ต์๋ ์ ๋จ์ ์ ์๋ค.
- ๋ด๊ฐ ๋ฌด์์ ์ํ๊ณ ๋ชปํ๋์ง ํ์ ํ๊ธฐ
=>๋ฉํ์ธ์ง
๋ง์ด ๋ค์ด๋ณธ ๋จ์ด์๋ค. ์์ ์ ์ง์์ ๋ํ ์ธ์ง ์ํ๋ฅผ ํ์คํ๊ฒ ์๊ณ ์์ด์ผ ํ๋ค. ๊ทธ๋์ผ ๋ญ ๋ ์ฐพ์๋ณผ ์ง ์๋ ๊ฒ์ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์๋์ง ์ค์ค๋ก ์๊ฐํ ์ ์๋ค.
- ๊ณต๋ถํ ๊ฒ์ ๊ผญ ๊ธฐ๋กํ๊ณ ๊ฐ๊ธ์ ์ด๋ฉด ๊ณต๊ฐํ๊ธฐ
=> ๋ฒจ๋ก๊ทธ๋ก ๋ธ๋ก๊ทธ๋ฅผ ์ด์ฌ์ฐพ์ ๋ค์ ์์ํ ์ด์ ๋ค. ๋ฆฌ์ฒ๋ ํ์ธ๋ง ๊ณต๋ถ๋ฒ์ฒ๋ผ ์๋ ๊ฒ์ ์ ๋ฆฌํ์ฌ ๊ธฐ๋กํ๊ณ ์ด๋ฅผ ์ด๋ฆฐ์์ด์๊ฒ ์ค๋ช ํ ์ ์์ ์ ๋๋ก ์ฝ๊ณ ๊ฐ๊ฒฐํ ๋จ์ด๋ก ์ค๋ช ํ ์ค ์์์ผ ์ง์ ์ผ๋ก ์ ๊ฒ์ด๋ค.
- ์ง๋ฌธ์ ๋๋ ค์ํ์ง ์๊ธฐ
=> ๋ฉํ์ธ์ง์ ์ฐ๊ฒฐ๋๋ ๋ถ๋ถ์ธ ๊ฒ ๊ฐ๋ค. ํ๋ฃจ๋ฅผ ๋๊ธฐ์ง ๋ง๊ณ ์ง๋ฌธ๋ฌด์๊ฐ ๋์ด์ผ ๊ฒ ๋ค.
๊ฐ๋จํ๊ฒ ์ค๋ช ๋ง ํ์ จ์ง๋ง CS ์ง์์ด๊ธฐ์ ์ถ์ฒํด์ฃผ์ ๊ด๋ จ ๋ ํผ๋ฐ์ค๋ฅผ ์ฐธ๊ณ ํ์ฌ ๋ค์ ์ ๋ฆฌํ ์์ ์ด๋ค.
https://d2.naver.com/helloworld/59361
https://ko.wikipedia.org/wiki/์๋ฐ์คํฌ๋ฆฝํธ_์์ง
https://poiemaweb.com/js-browser
JavaScript์ ์์์ ๋ณ์
๊ธฐ๋ณธ์ ์ธ ๋ณ์์ ์์ ์ ์ธ ๋ฐ ํ ๋น ๋ฐฉ๋ฒ์ ๋ฐฐ์ ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ์๋ฃํ 8๊ฐ์ง์ ๋ํด ๋ฐฐ์ ๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋
ํ ๋น
=>์ฌ์ฉ
=>ํด์
3๊ฐ์ง ๊ณผ์ ์ ๊ฑฐ์นจ
ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ๋ฃ์ด ์ฌ์ฉ ๊ฐ๋ฅํจ
์ต์ข ์ ์ผ๋ก ์ฌ์ฉ์ ๋ง์น ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๊ฑฐ ๊ฐ๋ฅ
๋ณ์๋ ์์๋ฅผ ์ ์ธํ๋ฉด ๊ฐ์ ๋ฐ๋ผ๋ณด๋ ๊ฒ์ด ์๋๋ผ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ฐ๋ผ๋ณด๊ฒ ๋๋ค. (์ฐธ์กฐ)
์์ ํ์
์ด ๋ณ๊ฒฝ๋ ๋๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ก ํ ๋นํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ฐ์ ๋จธ์ ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
์ด๊ฒ์ Heap๊ณผ Call stack์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
Heap์๋ ์ฐธ์กฐ ํ์
, Call stack์๋ ์์ ํ์
์ ๊ฐ์ง๋ค.
๋ฉ๋ชจ๋ฆฌ๋ ํ์ ๋์ด ์๋ค. ๋ฐ๋ผ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค๊ฐ ๊ฐ๋ ์ฐจ๊ฒ ๋๋ฉด
์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ Garbage Collector
๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๋ฆฌํ๋ค.
Garbage Collector๋ ์๋์ ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ ํตํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ค.
Mark and Sweep Algorithm
๋ฟ์ ์ ์๋ ์ฃผ์๋ ๋์ด์ ํ์์๋ ์ฃผ์๋ก ์ ์ (ํ์ดํ๊ฐ ๊ฐ๋ฅดํค์ง ์๋ ๊ฒ, ์ฐธ์กฐํ์ง ์๋ ๊ฒ)
์ด๋ฅผ Garbage Collector๊ฐ ํด๋น ์ฃผ์๋ฅผ ์ง์ฐ๋ ์๊ณ ๋ฆฌ์ฆ
์ด๋ ํ ๊ฒฐ๊ณผ ๊ฐ์ผ๋ก ํ๊ฐ๋๋ ์
์์ ๊ฐ์ ํฌํจํ์ฌ ๋ณ์, ์์, ํจ์ ํธ์ถ ๋ฑ์ผ๋ก ์กฐํฉ ๊ฐ๋ฅ
const a = 11 + 45; // 56
const b = "String" + 4; // "String4"
ํ ๋น ์ฐ์ฐ์
์ค๋ฅธ์ชฝ์ ์๋ ํํ์์ ์ผ์ชฝ ํผ์ฐ์ฐ์ ๊ฐ์ ํ ๋น์ํด
๋ณตํฉ ํ ๋น ์ฐ์ฐ์
=
(๋ฑํธ)์ ๋ค๋ฅธ ์ฐ์ฐ์๋ฅผ ํจ๊ป ์กฐํฉํ์ฌ ์ฌ์ฉ
๋น๊ต ์ฐ์ฐ์
์ข์ธก ์ฐ์ธก ํผ์ฐ์ฐ์๋ฅผ ๋น๊ต, true
or false
๋ฐํ
์ฐ์ ์ฐ์ฐ์
์ฌ์น์ฐ์ฐ ์ํ, Number
๋ฐํ
๋นํธ ์ฐ์ฐ์
๋นํธ๋ฅผ ์ง์ ์กฐ์ (AND, OR, XOR, NOT, L Shift, R Shift)
๋
ผ๋ฆฌ ์ฐ์ฐ์
Boolean์ ํตํด true
, false
๊ฒ์ฆ
์ผํญ ์ฐ์ฐ์
'์กฐ๊ฑด ? ์ฐธ : ๊ฑฐ์ง' ํํ๋ก ์กฐ๊ฑด์ ๋ฐ๋ผ ๊ฐ์ ์ ํ
๊ด๊ณ ์ฐ์ฐ์
๊ฐ์ฒด์ ์์ฑ์ด ์๋์ง ํ์ธํ๊ธฐ ์ํ ์ฐ์ฐ์
typeof
ํผ์ฐ์ฐ์์ ํ์
์ ๋ฐํ, String
์ผ๋ก ๋ฐํ
์ฐธ์กฐ ์ฌ์ดํธ : https://poiemaweb.com/js-operator
ํ๋ฆ์ ์ ์ดํ๋ ๋ฐฉ๋ฒ ์ค ํ๋
์กฐ๊ฑด๊ณผ ๋ฐ๋ณต์ ํตํ์ฌ ์ํ๋ฅผ ์ ์ด
Control Flow : ์ผ๋ฐ์ ์ผ๋ก ์๊ณ ์๋ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ
Goto, If / Then / Else, Switch / Case, For / While
Data Flow : ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๊ฐ๋ฅ
Stateless, Recursion(์ฌ๊ท), Pipe
์กฐ๊ฑด์ด ๋ง์ ๋๋ง ์คํ๋๋ ๋ฌธ(Statements)
if
๊ดํธ ์ ์กฐ๊ฑด์์ด ์ฐธ์ธ ๊ฒฝ์ฐ ์คํ๋๋ ๋ฌธ๋ฒ
else if, else๋ ๊ฐ์ด ์ฌ์ฉ ๊ฐ๋ฅ
์ฃผ์ํ ์ : false ๋ง๊ณ ๋ ๊ฑฐ์ง์ด ๋๋ ๊ฒ์ด ์กด์ฌ
false
, undefined
, null
, 0
, NaN
, ''
(๋น ๋ฌธ์์ด)
switch
๊ดํธ ์ ๊ฐ์ ๋ฐ๋ผ ๋ถ๊ธฐ
case, default์ ํจ๊ป ์ฌ์ฉ
์ฃผ์ํ ์ : case๊ฐ ๋๋๋ ๊ณณ์ break
๋ฅผ ๋ฐ๋์ ์ ์ฉํด์ผํจ (์ผ์ด์ค ๋ถ๊ธฐ)
๋ฐ๋ณต์ ์ธ ์์ ์ ์ง์
์ด๊ธฐ๋ฌธ
, ์กฐ๊ฑด๋ฌธ
, ์ฆ๊ฐ๋ฌธ
์ผ๋ก ๊ตฌ์ฑ// for (์ด๊ธฐ๋ฌธ; ์กฐ๊ฑด๋ฌธ; ์ฆ๊ฐ๋ฌธ)
for (let i=0; i<10; i+=1) {
console.log(i);
}
let x = 0;
while (x<5) {
x += 1;
console.log(x);
}
// 0 1 2 3 4
let x = 0;
do {
console.log("Hi");
} while (x > 3);
// Hi
์ฌ๋ฌ ์๋ฃํ์ ๋ค๋ฃฐ ์ ์๋ ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด์ ๋ํด์ ๋ฐฐ์ ๋ค.
์ ํจ ๋ฒ์, ๋ณ์๊ฐ ์ด๋ ๋ฒ์๊น์ง ์ฐธ์กฐ๋๋์ง ์๋ฏธ
var๋ฅผ ์ฌ์ฉํ๋ฉด ํจ์ ์ค์ฝํ๊ฐ ์ ์ฉ๋๋ฏ๋ก ํธ์ด์คํ ์ด ๋ฐ์ํจ
๋ณ์ ์ ์ธ์ด ์๋จ์ผ๋ก ์ฌ๋ผ๊ฐ๋ฒ๋ฆผ
const์ let์ ๋ธ๋ก ์ค์ฝํ๊ฐ ์ ์ฉ๋๋ฏ๋ก ๋ณ์๋ ์์ ์ ์ธ ์์๋ ํด๋น ํค์๋๋ฅผ ์ฌ์ฉํด์ผ ํจ
var a = 1;
{
var a = 5; // ํธ์ด์คํ
๋ฐ์๋์ด ๋ณ์ ์ ์ธ์ด ์ต์๋จ์ผ๋ก ๊ฐ
console.log(a);
}
console.log(a);
ํจ์๊ฐ ์ ์ธ๋ ํ๊ฒฝ์ ์ค์ฝํ๋ฅผ ๊ธฐ์ต
ํจ์๊ฐ ์ค์ฝํ ๋ฐ์์ ์คํ๋ ๋์๋ ๊ธฐ์ตํ ์ค์ฝํ์ ์ ๊ทผ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ฌธ๋ฒ
ํด๋ก์ ๋ฅผ ์ด์ฉํ์ฌ ๋ด๋ถ ๋ณ์์ ํจ์๋ฅผ ์จ๊ธธ ์ ์์
ํด๋ก์ ๋ฅผ ์ ์์์ผ ํ๋ ์ด์ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉํ๊ธฐ ๋ณด๋จ ์๊ธฐ ํ๋ ๋ฒ๊ทธ๋ฅผ ์ ์์ ํ๊ธฐ ์ํด์์
<์ด์ ํ ๋ฉํ ๋>
์ค์ฝํ๋ฅผ ์๋ชป ์ง์ ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ ๊ฐ๋ฅ
function counting() {
let i = 0;
for (i = 0; i < 5; i += 1) {
setTimeout(function () {
console.log(i);
}, i * 100);
}
}
counting(); // 5 5 5 5 5
0~4๊น์ง๊ฐ ์๋ 5๊ฐ 5๋ฒ ์ถ๋ ฅ๋จ
์ ๊ทธ๋ด๊น?
์ ๋ต์ setTimeout ํจ์๊ฐ ์ข
๋ฃ๋๋ฉด์ ์ฝ๋ฐฑํจ์๊ฐ ์คํ๋ ์์ ์๋
i๊ฐ ์ด๋ฏธ for๋ฌธ์ ์ํด 5๊ฐ ๋์ด ์๊ธฐ ๋๋ฌธ
๋ฐ๋ผ์ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์๋ 2๊ฐ์ง๊ฐ ์์
function counting() {
let i = 0;
for (i = 0; i < 5; i += 1) {
(function (number) {
setTimeout(function () {
console.log(number);
}, number * 100);
})(i);
}
}
counting(); // 0 1 2 3 4
function counting() {
let i = 0;
for (let i = 0; i < 5; i += 1) { // for ๋ฌธ ๋ฃจํ์ let ์ ์ฉ
setTimeout(function () {
console.log(i);
}, i * 100);
}
}
counting(); // 0 1 2 3 4
๐ ํด๋น ๋ด์ฉ์ ๊ณต๋ถํ๋ฉด์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ํ๋ฆฐ ๋ถ๋ถ์ด๋ ์คํดํ๊ณ ์๋ ๋ถ๋ถ์ด ์๋ค๋ฉด ํผ๋๋ฐฑ ๋ถํ๋๋ฆฝ๋๋ค.
๊ด๋ จ ๋ ํผ๋ฐ์ค
[MDN ๊ณต์๋ฌธ์]
https://developer.mozilla.org/ko/docs/Web/JavaScript
[poiemaweb]
https://poiemaweb.com/
[ํ๋ก๊ทธ๋๋จธ์ค ๋ฐ๋ธ์ฝ์ค ์ด์ ํ ๊ฐ์ฌ๋ ๊ฐ์]