๐ [Deep Dive] 01. ํ๋ก๊ทธ๋๋ฐ
1.1 ํ๋ก๊ทธ๋๋ฐ์ด๋?
๐ ์ฆ, ํ๋ก๊ทธ๋๋ฐ์ด๋ 0๊ณผ 1๋ฐ์ ์์ง ๋ชปํ๋ ๊ธฐ๊ณ๊ฐ ์คํํ ์ ์์์ ๋๋ก
ย ย ย ย ์ ํํ๊ณ ์์ธํ๊ฒ ์๊ตฌ์ฌํญ์ ์ค๋ช
ํ๋๊ฒ. -> ๊ฒฐ๊ณผ๋ฌผ์ด ์ฝ๋.
- ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ ์ง๊ฐ๊ณผ ์ง๊ด์ ์์ญ, ๋ฌธ์ ๋ฅผ ๋ฐ๋ผ๋ณด๋ ์ฐ๋ฆฌ์ ์ฌ๊ณ ์ ๊ฒฝํ์ ์ํฅ.
- ์ปดํจํ
์ฌ๊ณ (Computational thinking)
- ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ์์ ๊ณ ๋ คํ ๋ ์ปดํจํฐ์ ์
์ฅ์์ ๋ฐ๋ผ๋ด์ผํจ.
- ์ฌ๋์ ์ฌ๊ณ ๋ฐฉ์
- ๋งค์ฐ ํฌ๊ด์ ์ด๋ฉฐ์ค์ํ์์ ๊ฒฝํํ๋ ์ต์ํ ์ฌํญ์ ๋ํด ๋น์ฐ์ํ๋ ์์ดํ ์ธ์์ด ์์.
- ์ปดํจํฐ์ ์ฌ๋์ ์ฌ๊ณ ๋ฐฉ์ ์ฐจ์ด
- [๋ฃ๋ค] -> ์ฌ๋์ ์ฌ๊ณ ๋ฐฉ์: ์ด ํ์๋ ๊ฐ๋จํ๊ณ ๋น์ฐํ ๊ธฐ๋ฅ.
ย ย ย ย ย ย ย ย ย -> ์ปดํจํ
์ฌ๊ณ : ์ปดํจํฐ์๊ฒ ์ด ํ์ ์ค๋ช
ํ๋ ๊ฒ์ ๋จ์ํ์ง ์์.
- [์๋ฆฌ์ ํฌ๊ธฐ] -> ์ฌ๋์ ์ฌ๊ณ ๋ฐฉ์: ์๋์ ์ธ ๊ฐ๋
์ผ๋ก ํฌ๋ค, ์๋ค๋ก ํํ.
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย -> ์ปดํจํ
์ฌ๊ณ : ์์ ๊ฐ๋
์ธ ์ซ์๋ฅผ ์ฌ์ฉํด,
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย "๋ณผ๋ฅจ์ 60์ผ๋ก ์กฐ์ ํ๋ผ"
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ๋ผ๊ณ ์ ํํ ์์น๋ก ๋ช
๋ นํด์ผ ์คํ.
๐ ์ปดํจํฐ์ ์ฌ๋์ ์ฌ๊ณ , ์ธ์ง์ ๋ฐฉ์์ด ๋ฌ๋ผ์ ์ปดํจํฐ์ ๊ด์ ์์ ๋ฌธ์ ๋ฅผ ์ฌ๊ณ ํด์ผ ํจ.
ย ย ย ย โจ์ฆ ๋
ผ๋ฆฌ์ , ์ํ์ ์ฌ๊ณ ๊ฐ ํ์.
- 2์กฑ ๋ณดํ ๋ก๋ด์ ๋์์ธ (ํ๋ฆ๋)
- "๊ฑท๋ค"๋ผ๋ ๊ธฐ๋ฅ์ ๋์์ธํ๋ ค๋ฉด
- ํ๋จํด์ผ ํ๋ ์ํ์ ๊ทธ ์ํ๋ฅผ ํ๋จํ๋ ์๊ธฐ, ๊ทธ๋ฆฌ๊ณ ํ๋จ ๊ธฐ์ค์ ์ ์ํดํํจ.
- ์ด๋ฅผ ๋ฐํ์ผ๋ก ์์ ๋จ์๋ก ๋ถํด ํ๊ณ ์ฒ๋ฆฌ(process)์ ์คํ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ .
ใด ์๋ฅผ ๋ค์ด ์ด๋ฏธ์ง์์์ ์ฅ์ ๋ฌผ์ด๋ ๋ฌด์(ํฌ๊ธฐ, ์์ง์๋ฑ)์ธ์ง, ์ด๋ค ๋ฒ์๋ด์
ย ย ย ย ์๋ ๊ฒ์ธ์ง ๋ช
ํํ ์์นํํด์ ํ๋ก๊ทธ๋๋ฐ ๋ด์์ ์ฌ์ฉ๋ ๋ชจ๋ ๊ฐ๋
์
ย ย ย ย ํ๊ฐ ๊ฐ๋ฅํ๋๋ก ์ ์.
1.2 ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
- ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ์์ ์ปดํจํฐ๋ก ์ ๋ฌ.
- ์ปดํจํฐ๊ฐ ๋ช
๋ น์ ์ํํ๊ธฐ ๋๋ฌธ์ ์ปดํจํฐ๊ฐ ์ดํดํ ์์๋ ๊ธฐ๊ณ์ด๋ก ๋ช
๋ น์ ์ ๋ฌ.
- 16์ง์๋ก๊ตฌ์ฑ๋จ, ๊ธฐ๊ณ์ด๋ ๋นํธ๋จ์๋ก ๊ธฐ์ . ์ฐ๋ฆฌ ์ธ์ด์ ์ฒด๊ณ๊ฐ ์์ ๋ค๋ฆ.
๐ป x86 ์ํคํ
์ฒ์ ๋ฆฌ๋
์ค ํ๊ฒฝ์์ "Hello world"๋ฅผ ์ถ๋ ฅํ๋ ๊ธฐ๊ณ์ด ์ฝ๋.
7F 45 4C 46 01 01 01 00 00 00 00 00 00 00 00 00 02 00 03 00 01 00 00 00 35 40 B3 04 2C
00 00 00 00 00 00 00 00 00 00 00 34 00 20 00 01 00 00 00 00 00 00 00 00 40 B3 04 B2 0C
EB 1C 62 00 00 00 62 00 00 00 05 00 00 00 00 10 00 00 48 65 6C 6C 6F 20 77 6F 72 6C 64
0A B9 4C 40 B3 04 93 CD 80 EB FB
- ์ฌ๋์ด ๊ธฐ๊ณ์ด๋ก ์ง์ ๋ช
๋ นํ๋ ๊ฒ์ ์ด๋ ต๊ธฐ ๋๋ฌธ์ "ํ๋ก๊ทธ๋๋ฐ ์ธ์ด"๋ก ํ๋ก๊ทธ๋จ ์์ฑํด
๊ธฐ๊ณ์ด๋ก ๋ณํํ๋ ๋ณํํด์ฃผ๋ ๋ฒ์ญ๊ฐ์ธ ์ปดํ์ผ๋ฌ, ์ธํฐํ๋ฆฌํฐ๋ฅผ ์ด์ฉ.
์ฌ๋(ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์
๋ ฅ) -> ์ปดํ์ผ๋ฌ,์ธํฐํ๋ฆฌํฐ(๊ธฐ๊ณ์ด๋ก ๋ฒ์ญ) -> ์ปดํจํฐ(์ถ๋ ฅ)
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋
- ์ฌ๋๊ณผ ์ปดํจํฐ๊ฐ ์ปดํ์ผ๋ฌ, ์ธํฐํ๋ฆฌํฐ๋ฅผ ํตํด ๋ชจ๋๊ฐ ์ดํดํ ์ ์๋๋ก ์ฝ์๋ ํํ์ ์ธ๊ณต์ด.
- ๊ตฌ๋ฌธ(syntax)๊ณผ ์๋ฏธ(semantics)์ ์กฐํฉ์ผ๋ก ํํ๋จ.
๐ป "Hello world"๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ค ํ๋์ธ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋.
console.log("Hello world");
๐ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํด ์ปดํจํฐ์๊ฒ ์คํ์ ์๊ตฌํ๋ ์ปค๋ฎค๋์ผ์ด์
1.3 ๊ตฌ๋ฌธ๊ณผ ์๋ฏธ
-
์ด๋ค ์ธ์ด๋ ๋ฌธ๋ฒ์ ๋ง๋ ๋ฌธ์ฅ์ ๊ตฌ์ฑํ๊ณ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ์ธ์ด์ ์ญํ ์ ์ถฉ์คํ ์ํ.
-
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ณ์์๋ ์ด๋ ํ ํ์
์ ๊ฐ๋ ํ ๋นํ ์ ์๊ธฐ์ ์๋ ์ฝ๋๋ ๋ฌธ๋ฒ์ ์ผ๋ก๋ ๋ฌธ์ ๊ฐ ์์ง๋ง number๋ผ๋ ์ด๋ฆ์ ๋ฌธ์์ด์ด ํ ๋น๋์ด ์์ด ์๋ฏธ์ ์ผ๋ก๋ ์ณ์ง ์์.
const number = "string";
consol.log(number * number);
- ๋ฌธ์ ํด๊ฒฐ์ ํตํด ๋ง๋ค์ด๋ธ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ์์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฌธ๋ฒ์ ์ฌ์ฉํด ์ฝ๋๋ก ํํ.
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์ ๊ณตํ๋ ๋ฌธ๋ฒ์ ์ฌ์ฉํด ๋ณ์๋ฅผ ํตํด ๊ฐ์ ์ ์ฅํ๊ณ ์ฐธ์กฐํ๋ฉฐ,
์ฐ์ฐ์๋ก ๊ฐ์ ์ฐ์ฐ, ํ๊ฐํ๊ณ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ์ ์ํ ํ๋ฆ์ ์ด๋ก ์ฝ๋์ ์คํ ์์๋ฅผ ์ ์ดํ๊ณ
ํจ์๋ก ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฌธ์ ์งํฉ์ ๋ง๋ค๋ฉฐ ๊ฐ์ฒด, ๋ฐฐ์ด ๋ฑ์ผ๋ก ์๋ฃ๋ฅผ ๊ตฌ์กฐํ ํจ.
- ์ฝ๋๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฌธ๋ฒ์ ๋ถํฉํ๋ฉด์ ์๊ตฌ์ฌํญ ์คํ(๋ฌธ์ ๊ฐ ํด๊ฒฐ) ๋์ด์ผ ์๋ฏธ๊ฐ ์์.
๐ ํ๋ก๊ทธ๋๋ฐ์
์๊ตฌ์ฌํญ์ ์งํฉ์ ๋ถ์ํด์ ์ ์ ํ ์๋ฃ๊ตฌ์กฐ์ ํจ์์ ์งํฉ์ผ๋ก ๋ณํํ ํ, ๊ทธ ํ๋ฆ์ ์ ์ดํด ๋ฌธ์ ํด๊ฒฐ.
๐ฉโ๐ป STUDY ๊ด๋ฆฌ
- Notion | ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive ๊ณต๋ถ ๊ณํ๊ณผ ์งํ๋ฅ
- GitHub | ์ฝ๋์์ค ๊ด๋ฆฌ
๐์ถ์ฒ
์๋ฌธ ์ถ์ฒ: [์ฑ
] ๋ชจ๋์๋ฐ์คํฌ๋ฆฝํธ DeepDive