๐ธ01์ฅ. ํ๋ก๊ทธ๋๋ฐ
โ
1.1 ํ๋ก๊ทธ๋๋ฐ์ด๋?
ํ๋ก๊ทธ๋๋ฐ(Programming)
๋ณต์กํ๊ณ ๋ช ํํ์ง ์์ ์ ์๋ ๋ฌธ์ (์๊ตฌ์ฌํญ)์ ๋จ์ํ๊ฒ ๋ถํด(decomposition)ํ๊ณ ์๋ฃ๋ฅผ ์ ๋ฆฌํ๊ณ ๊ตฌ๋ถ(modeling)ํด์ผํ๋ฉฐ ์์์ ๋ง๊ฒ ํ์๋ฅผ ๋ฐฐ์ดํด์ผ ํ๋ค.
๋ฌธ์ ํด๊ฒฐ ๋ฐฉ์์ ๊ณ ๋ คํ ๋, ์ปดํจํฐ์ ์ ์ฅ์์ ๋ฌธ์ ๋ฅผ ๋ฐ๋ผ๋ด์ผํ๋๋ฐ, ์ด๋ ํ์ํ ๊ฒ์ด
์ปดํจํ ์ฌ๊ณ (Computational thinking)
์ด๋ค.
์ปดํจํ
์ฌ๊ณ (Computational thinking)
์ปดํจํฐ์ ์ฌ๋์ ์ฌ๊ณ , ์ธ์ง์ ๋ฐฉ์์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์, ์ปดํจํฐ์ ๊ด์ ์์ ๋ฌธ์ ๋ฅผ ์ฌ๊ณ (Computational thinking)ํด์ผ ํ๋ค.
๋ ผ๋ฆฌ์ , ์ํ์ ์ฌ๊ณ ๊ฐ ํ์ํ๋ฉฐ, ํด๊ฒฐ ๊ณผ์ ๋ฅผ ์์ ๋จ์๋ฅผ ๋ถํดํ๊ณ ํจํดํํด์ ์ถ์ถํ๋ฉฐ, ํ๋ก๊ทธ๋๋ฐ ๋ด์์ ์ฌ์ฉ๋ ๋ชจ๋ ๊ฐ๋ ์ ํ๊ฐ ๊ฐ๋ฅํ๋๋ก ์ ์ํด์ผํ๋ค.
โ
1.2 ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด(programming language)
๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ ๋ฐํ์ผ๋ก ์ ์๋ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ์์ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ์ธ์ด์ธ
๊ธฐ๊ณ์ด(machine code)
๋ก ์ ๋ฌํด์ผํ๋ค.ํ์ง๋ง, ์ฌ๋์ด ๊ธฐ๊ณ์ด๋ฅผ ์ดํดํด์ ๊ธฐ๊ณ์ด๋ก ์ง์ ๋ช ๋ น์ ์ ๋ฌํ๋ ์ผ์ ์ด๋ ต๋ค.
๐๋ฐ๋ผ์, ์ฌ๋์ด ์ดํดํ ์ ์๋ ์ฝ์๋ ๊ตฌ๋ฌธ(๋ฌธ๋ฒ)์ผ๋ก ๊ตฌ์ฑ๋
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด(programming language)
๋ฅผ ์ฌ์ฉํด ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ค. ๊ทธ๋ฆฌ๊ณ์ปดํ์ผ๋ฌ(compiler)
ํน์์ธํฐํ๋ฆฌํฐ(interpreter)
๋ฅผ ์ด์ฉํด ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ๊ธฐ๊ณ์ด๋ก ๋ณํํ๋ค.ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋
๊ตฌ๋ฌธ(Syntax)
์์๋ฏธ(Sematics)
์ ์กฐํฉ์ผ๋ก ํํ๋๋ค.
โ
1.3 ๊ตฌ๋ฌธ๊ณผ ์๋ฏธ
๊ตฌ๋ฌธ(Syntax)๊ณผ ์๋ฏธ(Semantics)
์์ ์์ ๋ฅผ ์ดํด๋ณด๋ฉด, ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ณ์์๋ ์ด๋ ํ ํ์ ์ ๊ฐ๋ ํ ๋นํ ์ ์๊ธฐ ๋๋ฌธ์
๊ตฌ๋ฌธ(๋ฌธ๋ฒ)
์ ์ผ๋ก๋ ์ ํ ๋ฌธ์ ๊ฐ ์๋ค.ํ์ง๋ง, number๋ผ๋ ์ด๋ฆ์ ๋ณ์์ ๋ฌธ์์ด์ด ํ ๋น๋์ด ์๊ธฐ ๋๋ฌธ์
์๋ฏธ
์ ์ผ๋ก๋ ์ณ์ง ์๋ค.
ํ๋ก๊ทธ๋๋ฐ์ ๋ชฉ์ ์ ๋ฌธ์ ํด๊ฒฐ์ด๋ค.
๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ ํตํด ๋ง๋ค์ด๋ธ ํด๊ฒฐ ๋ฐฉ์์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฌธ๋ฒ์ ์ฌ์ฉํด ํํํ๋ค.
์ฆ, ์์ฑ๋ ์ฝ๋๋ ํด๊ฒฐ ๋ฐฉ์์ ๊ตฌ์ฒด์ ๊ตฌํ๋ฌผ์ด๋ค.
์ด ๋, ์ํํ๊ณ ์ ํ๋ ๋ฐ๋ฅผ ์ ํํ ์ํํ๋ ๊ฒ, ์ฆ ์๊ตฌ์ฌํญ์ด ์คํ(๋ฌธ์ ๊ฐ ํด๊ฒฐ)๋์ด์ผ ์๋ฏธ(Semantics)๊ฐ ์๋ค.
๊ฐ๋ฐ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์ ๊ณตํ๋ ๋ฌธ๋ฒ์ ์ ์ ํ ์ฌ์ฉํ์ฌ ๋ณ์๋ฅผ ํตํด
๊ฐ์ ์ ์ฅํ๊ณ ์ฐธ์กฐ
ํ๋ฉฐ ์ฐ์ฐ์๋ก๊ฐ์ ์ฐ์ฐ, ํ๊ฐ
ํ๊ณ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ์ ์ํ ํ๋ฆ์ ์ด๋ก์ฝ๋์ ์คํ ์์๋ฅผ ์ ์ด
ํ๊ณ ํจ์๋ก์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฌธ์์งํฉ
์ ๋ง๋ค๋ฉฐ ๊ฐ์ฒด, ๋ฐฐ์ด ๋ฑ์ผ๋ก์๋ฃ๋ฅผ ๊ตฌ์ฒดํ
ํ๋ค.
Last updated