๐Ÿ“’ [Deep Dive] 01. ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๋ฝ€๋กฑํŠธ์˜Œ๋“œยท2022๋…„ 10์›” 10์ผ
0
post-thumbnail

๐Ÿ“’ [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); // NaN
  • ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ํ†ตํ•ด ๋งŒ๋“ค์–ด๋‚ธ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•ด ์ฝ”๋“œ๋กœ ํ‘œํ˜„.
    • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•ด ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์ฐธ์กฐํ•˜๋ฉฐ,
      ์—ฐ์‚ฐ์ž๋กœ ๊ฐ’์„ ์—ฐ์‚ฐ, ํ‰๊ฐ€ํ•˜๊ณ  ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ์— ์˜ํ•œ ํ๋ฆ„์ œ์–ด๋กœ ์ฝ”๋“œ์˜ ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ์ œ์–ดํ•˜๊ณ 
      ํ•จ์ˆ˜๋กœ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฌธ์˜ ์ง‘ํ•ฉ์„ ๋งŒ๋“ค๋ฉฐ ๊ฐ์ฒด, ๋ฐฐ์—ด ๋“ฑ์œผ๋กœ ์ž๋ฃŒ๋ฅผ ๊ตฌ์กฐํ™” ํ•จ.
    • ์ฝ”๋“œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋ฌธ๋ฒ•์— ๋ถ€ํ•ฉํ•˜๋ฉด์„œ ์š”๊ตฌ์‚ฌํ•ญ ์‹คํ˜„(๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ) ๋˜์–ด์•ผ ์˜๋ฏธ๊ฐ€ ์žˆ์Œ.

๐Ÿ“Œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€

์š”๊ตฌ์‚ฌํ•ญ์˜ ์ง‘ํ•ฉ์„ ๋ถ„์„ํ•ด์„œ ์ ์ ˆํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ํ•จ์ˆ˜์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋ณ€ํ™˜ํ•œ ํ›„, ๊ทธ ํ๋ฆ„์„ ์ œ์–ดํ•ด ๋ฌธ์ œ ํ•ด๊ฒฐ.



๐Ÿ‘ฉโ€๐Ÿ’ป STUDY ๊ด€๋ฆฌ

  1. Notion | ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive ๊ณต๋ถ€ ๊ณ„ํš๊ณผ ์ง„ํ–‰๋ฅ 
  2. GitHub | ์ฝ”๋“œ์†Œ์Šค ๊ด€๋ฆฌ

๐Ÿ“์ถœ์ฒ˜

์›๋ฌธ ์ถœ์ฒ˜: [์ฑ…] ๋ชจ๋˜์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ DeepDive

profile
๐ŸŽˆ ํ•จ๊ป˜ ์„ฑ์žฅํ•˜๋Š” ์ฆ๊ฑฐ์šด ๊ฐœ๋ฐœ์ž์˜ ์„ธ๊ณ„๋กœ! ๐ŸŒˆโœจ

0๊ฐœ์˜ ๋Œ“๊ธ€