๐ŸŒธ01์žฅ. ํ”„๋กœ๊ทธ๋ž˜๋ฐ

โœ…1.1 ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ž€?

ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Programming)

ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๋ฌธ์ œ(์š”๊ตฌ์‚ฌํ•ญ)๋ฅผ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•œ ํ›„ ์ •ํ™•ํ•˜๊ณ  ์ƒ์„ธํ•˜๊ฒŒ ์š”๊ตฌ์‚ฌํ•ญ์„ ์„ค๋ช…ํ•˜๋Š” ์ž‘์—…
  • ๋ณต์žกํ•˜๊ณ  ๋ช…ํ™•ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ(์š”๊ตฌ์‚ฌํ•ญ)์„ ๋‹จ์ˆœํ•˜๊ฒŒ ๋ถ„ํ•ด(decomposition)ํ•˜๊ณ  ์ž๋ฃŒ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ๊ตฌ๋ถ„(modeling)ํ•ด์•ผํ•˜๋ฉฐ ์ˆœ์„œ์— ๋งž๊ฒŒ ํ–‰์œ„๋ฅผ ๋ฐฐ์—ดํ•ด์•ผ ํ•œ๋‹ค.

  • ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์„ ๊ณ ๋ คํ•  ๋•Œ, ์ปดํ“จํ„ฐ์˜ ์ž…์žฅ์—์„œ ๋ฌธ์ œ๋ฅผ ๋ฐ”๋ผ๋ด์•ผํ•˜๋Š”๋ฐ, ์ด๋•Œ ํ•„์š”ํ•œ ๊ฒƒ์ด ์ปดํ“จํŒ… ์‚ฌ๊ณ (Computational thinking)์ด๋‹ค.

์ปดํ“จํŒ… ์‚ฌ๊ณ (Computational thinking)

"๋“ฃ๋‹ค(Listen)"๋ผ๋Š” ํ–‰์œ„๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž

๐Ÿ‘ฉ๐Ÿป๐Ÿ‘จ๐Ÿป ์‚ฌ๋žŒ
- ํ•˜๋‚˜์˜ ๊ฐ„๋‹จํ•˜๊ณ  ๋‹น์—ฐํ•œ ๊ธฐ๋Šฅ
- ์†Œ๋ฆฌ์˜ ํฌ๊ธฐ : "ํฌ๋‹ค" or "์ž‘๋‹ค"๋กœ ํ‘œํ˜„ ( ์ƒ๋Œ€์ ์ธ ๊ฐœ๋…, ๊ธฐ์ค€ ๋ถˆ๋ช…ํ™• )

๐Ÿ’ป ์ปดํ“จํ„ฐ
- ์†Œ๋ฆฌ์˜ ํฌ๊ธฐ : "ํ˜„์žฌ ๋ณผ๋ฅจ๋ณด๋‹ค 1๋‹จ๊ณ„ ํฌ๊ฒŒ ์กฐ์ •ํ•˜๋ผ" or "๋ณผ๋ฅจ์„ 60์œผ๋กœ ์กฐ์ •ํ•˜๋ผ" ( ์–‘์  ๊ฐœ๋…์ธ ์ˆซ์ž๋ฅผ ์‚ฌ์šฉ)
  • ์ปดํ“จํ„ฐ์™€ ์‚ฌ๋žŒ์€ ์‚ฌ๊ณ , ์ธ์ง€์˜ ๋ฐฉ์‹์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ์ปดํ“จํ„ฐ์˜ ๊ด€์ ์—์„œ ๋ฌธ์ œ๋ฅผ ์‚ฌ๊ณ (Computational thinking)ํ•ด์•ผ ํ•œ๋‹ค.

  • ๋…ผ๋ฆฌ์ , ์ˆ˜ํ•™์  ์‚ฌ๊ณ ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, ํ•ด๊ฒฐ ๊ณผ์ œ๋ฅผ ์ž‘์€ ๋‹จ์œ„๋ฅผ ๋ถ„ํ•ดํ•˜๊ณ  ํŒจํ„ดํ™”ํ•ด์„œ ์ถ”์ถœํ•˜๋ฉฐ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋‚ด์—์„œ ์‚ฌ์šฉ๋  ๋ชจ๋“  ๊ฐœ๋…์€ ํ‰๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ •์˜ํ•ด์•ผํ•œ๋‹ค.

โœ…1.2 ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(programming language)

  • ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ •์˜๋œ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์€ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด์ธ ๊ธฐ๊ณ„์–ด(machine code)๋กœ ์ „๋‹ฌํ•ด์•ผํ•œ๋‹ค.

  • ํ•˜์ง€๋งŒ, ์‚ฌ๋žŒ์ด ๊ธฐ๊ณ„์–ด๋ฅผ ์ดํ•ดํ•ด์„œ ๊ธฐ๊ณ„์–ด๋กœ ์ง์ ‘ ๋ช…๋ น์„ ์ „๋‹ฌํ•˜๋Š” ์ผ์€ ์–ด๋ ต๋‹ค.

  • ๐Ÿ‘‰๋”ฐ๋ผ์„œ, ์‚ฌ๋žŒ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์•ฝ์†๋œ ๊ตฌ๋ฌธ(๋ฌธ๋ฒ•)์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(programming language)๋ฅผ ์‚ฌ์šฉํ•ด ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ปดํŒŒ์ผ๋Ÿฌ(compiler) ํ˜น์€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ(interpreter)๋ฅผ ์ด์šฉํ•ด ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ๊ตฌ๋ฌธ(Syntax)์™€ ์˜๋ฏธ(Sematics)์˜ ์กฐํ•ฉ์œผ๋กœ ํ‘œํ˜„๋œ๋‹ค.

โœ…1.3 ๊ตฌ๋ฌธ๊ณผ ์˜๋ฏธ

๊ตฌ๋ฌธ(Syntax)๊ณผ ์˜๋ฏธ(Semantics)

const number = "string";
console.log(number * number); // NaN
  • ์œ„์˜ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ณ€์ˆ˜์—๋Š” ์–ด๋– ํ•œ ํƒ€์ž…์˜ ๊ฐ’๋„ ํ• ๋‹นํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌ๋ฌธ(๋ฌธ๋ฒ•)์ ์œผ๋กœ๋Š” ์ „ํ˜€ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.

  • ํ•˜์ง€๋งŒ, number๋ผ๋Š” ์ด๋ฆ„์˜ ๋ณ€์ˆ˜์— ๋ฌธ์ž์—ด์ด ํ• ๋‹น๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜๋ฏธ์ ์œผ๋กœ๋Š” ์˜ณ์ง€ ์•Š๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋ชฉ์ ์€ ๋ฌธ์ œ ํ•ด๊ฒฐ์ด๋‹ค.

img
  • ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ์„ ํ†ตํ•ด ๋งŒ๋“ค์–ด๋‚ธ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•ด ํ‘œํ˜„ํ•œ๋‹ค.

  • ์ฆ‰, ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋Š” ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์˜ ๊ตฌ์ฒด์  ๊ตฌํ˜„๋ฌผ์ด๋‹ค.

  • ์ด ๋•Œ, ์ˆ˜ํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ”๋ฅผ ์ •ํ™•ํžˆ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ, ์ฆ‰ ์š”๊ตฌ์‚ฌํ•ญ์ด ์‹คํ˜„(๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ)๋˜์–ด์•ผ ์˜๋ฏธ(Semantics)๊ฐ€ ์žˆ๋‹ค.

๐Ÿ’ก ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์š”๊ตฌ์‚ฌํ•ญ์˜ ์ง‘ํ•ฉ์„ ๋ถ„์„ํ•ด์„œ ์ ์ ˆํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ํ•จ์ˆ˜์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋ณ€ํ™˜ํ•œ ํ›„, ๊ทธ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ๊ฐœ๋ฐœ์ž๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฌธ๋ฒ•์„ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ์ฐธ์กฐํ•˜๋ฉฐ ์—ฐ์‚ฐ์ž๋กœ ๊ฐ’์„ ์—ฐ์‚ฐ, ํ‰๊ฐ€ํ•˜๊ณ  ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ์— ์˜ํ•œ ํ๋ฆ„์ œ์–ด๋กœ ์ฝ”๋“œ์˜ ์‹คํ–‰ ์ˆœ์„œ๋ฅผ ์ œ์–ดํ•˜๊ณ  ํ•จ์ˆ˜๋กœ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฌธ์˜์ง‘ํ•ฉ์„ ๋งŒ๋“ค๋ฉฐ ๊ฐ์ฒด, ๋ฐฐ์—ด ๋“ฑ์œผ๋กœ ์ž๋ฃŒ๋ฅผ ๊ตฌ์ฒดํ™”ํ•œ๋‹ค.

Last updated