์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๊ฐ์ฐ์ค์ ๊ณต์
- .split()
- JavaScript
- arr.push()
- ์์ค๋ฆ~
- for๋ฌธ
- ๊ตฌ๋ฌธ๊ณผ ์๋ฏธ
- ์๋ฆ๋๋ ์๊ณ ๋ฆฌ์ฆ
- array.reduce()
- ํ๋ก๊ทธ๋๋ฐ์ด๋
- ํ๋ก๊ทธ๋๋จธ์ค ๊ณต์ ์ฐ์ฑ
- .map()
- ์ด๋ ค์ด๋ฐใ ใ
- ES6 ๋ธ๋ผ์ฐ์ ์ง์ ํํฉ
- ์๊ณ ๋ฆฌ์ฆ
- ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์๋ฐฐ๊ฒฝ
- ํ๋ ฌ...
- Math.min
- ์๋ฐ์คํฌ๋ฆฝํธ์ ECMAScript
- for๋ฐ๋ณต๋ฌธ
- ์๋ฐ์คํฌ๋ฆฝํธ์ ํน์ง
- ๋ฐฐ์ด ์ต์๊ฐ
- !x.includes()
- ์ผํญ์ฐ์ฐ์
- async-await
- a && b
- Promise.all()
- ์๋ฐ์คํฌ๋ฆฝํธ
- Ajax๋?
- ํ๋ก๊ทธ๋๋จธ์ค
- Today
- Total
Ming's develop story
1์ฅ ํ๋ก๊ทธ๋๋ฐ ๋ณธ๋ฌธ
1.1 ํ๋ก๊ทธ๋๋ฐ์ด๋?
ํ๋ก๊ทธ๋๋ฐ์ด๋ ์ปดํจํฐ์๊ฒ ์คํ์ ์๊ตฌํ๋ ์ผ์ข ์ ์ปค๋ฎค๋์ผ์ด์ ์ด๋ค. ์ด๋ฅผ ์ํด ๋จผ์ ๋ฌด์์ ์คํํ๊ณ ์ถ์์ง ์ ์ํ ํ์๊ฐ ์๋ค. ๋ค์ ๋งํด, ํ๋ก๊ทธ๋๋ฐ์ ์์ ํด๊ฒฐํด์ผ ํ ๋ฌธ์ (์๊ตฌ์ฌํญ)์ ๋ช ํํ ์ดํดํ ํ ์ ์ ํ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ์์ ์ ์ํ ํ์๊ฐ ์๋ค.
์ด๋ ์๊ตฌ๋๋ ๊ฒ์ด ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ด๋ค.
๋๋ถ๋ถ์ ๋ฌธ์ (์๊ตฌ์ฌํญ)๋ ๋ณต์กํ๋ฉฐ ๋ช ํํ์ง ์์ ์ ์๋ค. ๋ฐ๋ผ์ ๋ฌธ์ (์๊ตฌ์ฌํญ)๋ฅผ ๋ช ํํ ์ดํดํ๋ ๊ฒ์ด ์ฐ์ ๋์ด์ผ ํ๋ฉฐ ๋ณต์กํจ์ ๋จ์ํ๊ฒ ๋ถํดํ๊ณ ์๋ฃ๋ฅผ ์ ๋ฆฌํ๊ณ ๊ตฌ๋ถํด์ผ ํ๋ฉฐ ์์์ ๋ง๊ฒ ํ์๋ฅผ ๋ฐฐ์ดํด์ผ ํ๋ค.
์ฆ, ํ๋ก๊ทธ๋๋ฐ์ด๋ 0๊ณผ 1๋ฐ์ ์์ง ๋ชปํ๋ ๊ธฐ๊ณ๊ฐ ์คํํ ์ ์์ ์ ๋๋ก ์ ํํ๊ณ ์์ธํ๊ฒ ์๊ตฌ์ฌํญ์ ์ค๋ช ํ๋ ์์ ์ด๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ฐ๋ก ์ฝ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ์์ ๊ณ ๋ คํ ๋ ์ปดํจํฐ์ ์ ์ฅ์์ ๋ฌธ์ ๋ฅผ ๋ฐ๋ผ๋ด์ผ ํ๋ค. ์ด๋ ํ์ํ ๊ฒ์ด Computational thinking(์ปดํจํ ์ฌ๊ณ )์ด๋ค.
์๋ฅผ ๋ค๋ฉด "๋ฃ๋ค"๋ผ๋ ํ์๋ฅผ ์ฌ๋์ ํ๋์ ๊ฐ๋จํ๊ณ ๋น์ฐํ ๊ธฐ๋ฅ์ผ๋ก ์๊ฐํ๋ค. ํ์ง๋ง ์ปดํจํฐ์๊ฒ ์ด ํ์๋ฅผ ์ค๋ช ํ๋ ๊ฒ์ ๋จ์ํ์ง ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๋์ ์๋ฆฌ์ ํฌ๊ธฐ๋ฅผ "ํฌ๋ค" ๋๋ "์๋ค"๋ก ํํํ๋ค. ํ์ง๋ง ์ ๋ ํํ์ ์๋ฏธ๋ ์๋์ ์ธ ๊ฐ๋ ์ผ๋ก ๊ธฐ์ค์ด ๋ถ๋ช ํํ๋ค. ์ปดํจํฐ์๊ฒ "๋ณผ๋ฅจ์ 20์ผ๋ก ๋ฐ๊ฟ๋ผ" ๊ฐ์ด ๋ช ๋ นํด์ผ ํ๋ค.
์ด์ฒ๋ผ ์ปดํจํฐ์ ์ฌ๋์ ์ฌ๊ณ , ์ธ์ง์ ๋ฐฉ์์ด ๋ค๋ฅด๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ปดํจํฐ์ ๊ด์ ์์ ๋ฌธ์ ๋ฅผ ์ฌ๊ณ ํด์ผ ํ๊ณ ์ด๋ ๋ ผ๋ฆฌ์ , ์ํ์ ์ฌ๊ณ ๊ฐ ํ์ํ๋ฉฐ, ํด๊ฒฐ ๊ณผ์ ๋ฅผ ์์ ๋จ์๋ก ๋ถํดํ๊ณ ํจํดํ ํด์ ์ถ์ถํ๋ฉฐ, ํ๋ก๊ทธ๋๋ฐ ๋ด์์ ์ฌ์ฉ๋ ๋ชจ๋ ๊ฐ๋ ์ ํ๊ฐ ๊ฐ๋ฅํ๋๋ก ์ ์ํด์ผ ํ๋ค.
1.2 ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
์ด์ฒ๋ผ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ ๋ฐํ์ผ๋ก ์ ์๋ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ์์ ์ปดํจํฐ์๊ฒ ์ ๋ฌ๋์ด์ผ ํ๋ค. ์ด๋ ๋ช ๋ น์ ์ํ ํ ์ฃผ์ฒด๋ ์ปดํจํฐ๋ค. ๋ฐ๋ผ์ ์ฌ๋์ด ์ดํดํ ์ ์๋ ์์ฐ์ด๊ฐ ์๋ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ์ธ์ด, ์ฆ ๊ธฐ๊ณ์ด๋ก ๋ช ๋ น์ ์ ๋ฌํด์ผ ํ๋ค.
๊ธฐ๊ณ์ด๋ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์ธ์ด์๋ ๋๋ฌด๋๋ ์ฒด๊ณ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๊ธฐ๊ณ์ด๋ก ์ง์ ๋ช ๋ น์ ์ ๋ฌํ๋ ๊ฒ์ ๋์ ํ ๊ฐ์ฅ ์ ์ฉํ ๋์์ ์ฌ๋์ด ์ดํดํ ์ ์๋ ์ฝ์๋ ๊ตฌ๋ฌธ์ผ๋ก ๊ตฌ์ฑ๋ "ํ๋ก๊ทธ๋๋ฐ ์ธ์ด"๋ฅผ ์ฌ์ฉํด ํ๋ก๊ทธ๋จ์ ์์ฑํ ํ, ๊ทธ๊ฒ์ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ๊ธฐ๊ณ์ด๋ก ๋ณํํ๋ ์ผ์ข ์ ๋ฒ์ญ๊ธฐ๋ฅผ ์ด์ฉํ๋ ๊ฒ์ด๋ค. ์ด ์ผ์ข ์ ๋ฒ์ญ๊ธฐ๋ฅผ ์ปดํ์ผ๋ฌ(compiler) ํน์ ์ธํฐํ๋ฆฌํฐ(interpreter)๋ผ๊ณ ํ๋ค.
์๋ฅผ ๋ค๋ฉด console.log("Hello world")๋ผ๋ ์ฝ๋๋ฅผ ์ ๋ ฅํ๋ฉด ์ปดํ์ผ๋ฌ๊ฐ ์ด๊ฒ์ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ๊ธฐ๊ณ์ด๋ก ๋ณํ์ ํด์ฃผ๋ ๊ฒ์ด๋ค.
ํ๋ก๊ทธ๋๋ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํด ์ปดํจํฐ์๊ฒ ์คํ์ ์๊ตฌํ๋ ์ผ์ข ์ ์ปค๋ฎค๋์ผ์ด์ ์ด๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ๊ตฌ๋ฌธ(syntax)๊ณผ ์๋ฏธ(semantics)์ ์กฐํฉ์ผ๋ก ํํ๋๋ค.
1.3 ๊ตฌ๋ฌธ๊ณผ ์๋ฏธ
ํ๋ก๊ทธ๋๋ฐ ํ์ต์ ์ผ๋ฐ์ ์ผ๋ก ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฌธ๋ฒ์ ๋ฐฐ์ฐ๋ ๊ฒ๋ถํฐ ์์ํ๋ค. ์ด๋ ์ธ๊ตญ์ด ํ์ต๊ณผ ์ ์ฌํ๋ฐ ๋ฌธ๋ฒ์ ์ ์๋ค๊ณ ํด์ ์ธ๊ตญ์ด๋ฅผ ์ํ๋ค๊ณ ํ ์ ์๋ค.
์ธ๊ตญ์ด๋ฅผ ์ํ๋ ค๋ฉด ๋ง์ด๋ ๋ฌธ์ฅ์ ์ ํํ ์ดํดํ ํ, ๋ฌธ๋งฅ์ ๋ฐ๋ฅธ ์ ์ ํ ์ดํ ์ ํ, ๊ทธ๋ฆฌ๊ณ ์์ฐจ์ ์ผ๋ก ๊ฒฐ๋ก ์ ํฅํด ๋์๊ฐ๋ ๋ฌธ์ฅ ๊ตฌ์ฑ์ด ํ์ํ๋ค. ์ฆ, ๋ฌธ๋ฒ์ ๋ง๋ ๋ฌธ์ฅ์ ๊ตฌ์ฑํ๋ ๊ฒ์ ๋ฌผ๋ก ์๋ฏธ(semantics)๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ์ธ์ด์ ์ญํ ์ ์ถฉ์คํ ์ํํ ์ ์๋ค.
const number = 'string';
console.log(number * number); // NaN
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ณ์์๋ ์ด๋ ํ ํ์ ์ ๊ฐ๋ ํ ๋นํ ์ ์๋ค. ๋ฐ๋ผ์ ์ ์์ ๋ ๋ฌธ๋ฒ์ ์ผ๋ก ์ ํ ๋ฌธ์ ๊ฐ ์๋ค. ํ์ง๋ง ์๋ฏธ์ ์ผ๋ก๋ ์ณ์ง ์๋ค. number๋ผ๋ ์ด๋ฆ์ ๋ณ์์ ๋ฌธ์์ด์ด ํ ๋น๋์ด ์๊ธฐ ๋๋ฌธ์ด๋ค. number๋ผ๋ ์ด๋ฆ์ ๋ณ์์๋ ์ซ์๋ฅผ ํ ๋นํ๋ ๊ฒ์ด ์๋ฏธ์ ์ผ๋ก ์ณ๋ค.
๊ฒฐ๊ตญ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ ํตํด ๋ง๋ค์ด๋ธ ํด๊ฒฐ ๋ฐฉ์์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฌธ๋ฒ์ ์ฌ์ฉํด ํํํ๋ค. ์ฆ, ์์ฑ๋ ์ฝ๋๋ ํด๊ฒฐ ๋ฐฉ์์ ๊ตฌ์ฒด์ ๊ตฌํ๋ฌผ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฌธ๋ฒ์ ๋ถํฉํ๋ ๊ฒ์ ๋ฌผ๋ก ์ด๊ณ ์ํํ๊ณ ์ ํ๋ ๋ฐ๋ฅผ ์ ํํ ์ํํ๋ ๊ฒ, ์ฆ ์๊ตฌ์ฌํญ์ด ์คํ(๋ฌธ์ ๊ฐ ํด๊ฒฐ)๋์ด์ผ ์๋ฏธ๊ฐ ์๋ค.
๋๋ถ๋ถ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ "๋ณ์์ ๊ฐ", "์ฐ์ฐ์", "์กฐ๊ฑด๋ฌธ", "ํจ์", "๊ฐ์ฒด" ๋ฑ๊ณผ ๊ฐ์ ๋ฌธ๋ฒ์ ์ ๊ณตํ๋๋ฐ ์ด๋ฅผ ์ ์ ํ ์ฌ์ฉํ์ฌ ์๋ฃ๋ฅผ ๊ตฌ์กฐํ ํ ์ ์๋ค.
๊ฒฐ๊ตญ ํ๋ก๊ทธ๋๋ฐ์ ์๊ตฌ์ฌํญ์ ์งํฉ์ ๋ถ์ํด์ ์ ์ ํ ์๋ฃ๊ตฌ์กฐ์ ํจ์์ ์งํฉ์ผ๋ก ๋ณํํ ํ, ๊ทธ ํ๋ฆ์ ์ ์ดํ๋ ๊ฒ์ด๋ค.
'D E V E L O P ๐ป > Javascript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
2์ฅ ์๋ฐ์คํฌ๋ฆฝํธ๋? (0) | 2022.02.17 |
---|---|
์๋ฐ์คํฌ๋ฆฝํธ ์ ๊ท์ ํํ ๊ธฐ๋ณธ (0) | 2021.12.08 |