ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์๊ตฌ์ฌํญ
์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐ ์ ์ง๋ณด์ ์ธก๋ฉด์์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ์ด๋ค ์๊ตฌ์ฌํญ์ ๋ง์กฑํด์ผ ํ ๊น?
๋จผ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ์์ ์ ์์ด๋์ด๋ฅผ ์ฝ๊ฒ ํํํ ์ ์๊ฒ ํด์ผํ๋ค. ๋ํ ์์ฑ๋ ํ๋ก๊ทธ๋จ์ ์ฝ๊ฒ ์ ์ง๋ณด์ ํ ์ ์์ด์ผ ํ๋ฉฐ, ์ปดํจํฐ์์ ๋น ๋ฅด๊ฒ ์คํ๋ ์ ์์ด์ผ ํ๋ค.
(1) ํํ ํ๋ถ์ฑ(expressiveness): ํ๋ก๊ทธ๋๋จธ์ ์์ด๋์ด๋ฅผ ์ฝ๊ฒ ํํํ ์ ์๋ค.
(2) ์ ์ง ๋ณด์์ฑ(maintainability): ์์ฑ๋ ํ๋ก๊ทธ๋จ์ ์ฝ๊ฒ ์ ์ง๋ณด์ํ ์ ์๋ค.
(3) ์คํ ๊ฐ๋ฅ์ฑ(executability): ์์ฑ๋ ํ๋ก๊ทธ๋จ์ด ๋น ๋ฅด๊ฒ ์คํ๋ ์ ์๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ค๊ณ ์์น
๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ๊ธฐ๋ฅ๊ณผ ์๊ตฌ์ฌํญ์ ๋ง์กฑํ๊ธฐ ์ํด ๊ณ ๋ คํด์ผํ๋ ์ค๊ณ ์์น ์ค ๊ณตํต์ ์ผ๋ก ๊ฑฐ๋ก ๋๋ ๊ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
(1) ๊ท์น์ฑ(regularity): ์ธ์ด์ ๊ธฐ๋ฅ์ด ์ ์กฐํฉ๋ ์ ์๋ค.
(2) ์ถ์ํ ์ง์(support of abstraction): ์ค์ธ๊ณ์ ๋์์ ๊ฐ๋ตํ ์ถ์ํํ์ฌ ๋ํ๋ผ ์ ์๋ค.
(3) ๋ณต์ก๋ ์ ์ด(complexity control): ๋ณต์กํ ๋์ ๋ฐ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ์ ์ดํ๊ธฐ ์ํด ๋ณต์ก๋๋ฅผ ์ ์ดํ ์ ์๋ค.
๊ท์น์ฑ
๊ท์น์ฑ์ด๋ ์ธ์ด์ ๊ธฐ๋ฅ์ด ์ผ๋ง๋ ์ ์กฐํฉ๋ ์ ์๋๋ ํ๋ ๋ฌธ์ ๋ก์ ์ธ๋ถ์ ์ผ๋ก๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ํ๊ฐ๊ธฐ์ค ์ค ์ผ๋ฐ์ฑ(generality), ์ง๊ต์ฑ(orhogonality), ์ผ๊ด์ฑ(uniformity)์ ์ํด ์ง์๋๋ค.
์ผ๋ฐ์ฑ์ด๋ ์ฐ๊ด๋ ๊ธฐ๋ฅ์ด ๋ ์ผ๋ฐ์ ์ธ ํํ๋ก ํ์ฅ๋ ์ ์๋ ํน์ฑ์ด๋ค. ์๋ฅผ ๋ค์ด, C์ธ์ด์ ๋น๊ต ์ฐ์ฐ์๋ ๋ ์ ์๋ฅผ ๋น๊ตํ๋๋ฐ๋ ์ฌ์ฉํ ์ ์์ง๋ง ๊ตฌ์กฐ์ฒด๋ฅผ ๋น๊ตํ๋๋ฐ๋ ์ฌ์ฉํ ์ ์๋ค. ์ด๋ ์ผ๋ฐ์ฑ์ด ๊ฒฐ์ฌ๋ ๊ฒ์ผ๋ก ๋ณผ ์ ์๋ค.
์ถ์ํ ์ง์
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ์ค์ธ๊ณ๋ฅผ ๋ชจํํํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ค์ธ๊ณ์ ๋์์ ๊ฐ๋ตํ ์ถ์ํํ์ฌ ๋ํ๋ผ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํด์ผ ํ๋ค. ๋ํ ์ถ์ํ๋ ๋ชจํ์ ๋์์ผ๋ก ์ด๋ค ์ฐ์ฐ์ ์ํํ ์ ์๋๋ก ํด์ผ ํ๋ค. ๋ฌผ๋ก ์ฐ์ฐ๋ ์ถ์ํ๋ ํํ๋ก ์ํํ ์ ์์ด์ผ ํ๋ค.
์ผ๋ฐ์ ์ผ๋ก ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์๋ ๋ฐ์ดํฐ ์ถ์ํ ๊ธฐ๋ฅ๊ณผ ์ ์ด ์ถ์ํ ๊ธฐ๋ฅ, ์ถ์ ๋ฐ์ดํฐ ํ์ ์ ์ ์ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
๋ณต์ก๋ ์ ์ด
์ค์ธ๊ณ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋งค์ฐ ๋ณต์กํด์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ๋ฐ๋ผ์ ๋ณต์กํ ๋์ ๋ฐ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ์ ์ดํ๊ธฐ ์ํด ๋ณต์ก๋๋ฅผ ์ ์ดํ ์ ์์ด์ผ ํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์๋ ๋ณต์ก๋๋ฅผ ์ ์ดํ๊ธฐ ์ํด ๋ชจ๋, ํจํค์ง, ์ด๋ฆ ๊ณต๊ฐ ๋ฑ์ ํตํ์ฌ ์บก์ํ ๋ฐ ๋ชจ๋ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
๋ง์ง๋ง์ผ๋ก ์ด๋ฌํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ค๊ณ ์์น๊ณผ ์๊ตฌ์ฌํญ๊ฐ์ ๊ด๊ณ๋ฅผ ๋์์ผ๋ก ํํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
ํฌ์คํ ๋ง์นจ.
๋๊ธ