Procedural Programming
๐ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์
- Procedural Programming | ์ ์ฐจ์ ํ๋ก๊ทธ๋๋ฐ
- Object-Oriented Programming | ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- Functional-Programming | ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- Event-Driven-Programming | ์ด๋ฒคํธ ๊ธฐ๋ฐ ํ๋ก๊ทธ๋๋ฐ
๐ซ Procedural Programming | ์ ์ฐจ์งํฅ ํ๋ก๊ทธ๋๋ฐ
Procedure ํ๋ก์์ (Routine ๋ฃจํด, SubRoutine ์๋ธ๋ฃจํด, Method ๋ฉ์๋, Function ํจ์)
๋ฅผ ์ด์ฉํ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์
VS ์์ฐจ์ ํ๋ก๊ทธ๋๋ฐ, ์์ฐจ์ ๋ช
๋ น ์ํ
์ถ์ํ, ์ฌ์ฌ์ฉ์ฑ
Procedural โ Procedure
์ ์ฐจ
์ ์ง์คํ๋ ๊ฒ์ด ์๋๋ผ (์ ์ฐจ/์์์ ๋ฐ๋ผ ๋ช
๋ น์ด๋ฅผ ์คํํ์๋ ๊ฒ์ด ์๋๋ผ), ํ๋ก์์
์ ์ง์คํ๋ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์
๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ์ ์ ์ฐจ
๋ฅผ ๊ฐ์ง๊ณ , ์์์ ๋ฐ๋ผ ๋ช
๋ น์ด ์คํ๋๋ค.
ํ๋ก์์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด ๋ ์ ํฉํ ์ง๋ ๋ชจ๋ฅธ๋ค
ํจ์๋ ์
๋ ฅ์ด ๋ค์ด์์ ์ถ๋ ฅ์ด ๋๊ฐ๋ ๋ธ๋๋ฐ์ค๋ก ๊ฐ์ฃผ๋๋ค.
์ ์ฐจ ์งํฅ์์ ์ฌ์ฉ๋๋ ์ค๊ณ ๋ฐฉ๋ฒ์ ํํฅ์ ์ค๊ณ (Top Down Design) ์ด๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค.
ํํฅ์ ์ค๊ณ ๋ฐฉ๋ฒ์์๋ ๋ฌธ์ ๋ฅผ๋ ์์ ์๋ธ ํ๋ก์์ ๋ก ๋ถํดํ์ฌ ์ํ๋ ์์ค์ ๋๋ฌํ ๋๊น์ง ์ด ๊ณผ์ ์ ๋ฐ๋ณตํจ์ผ๋ก์จ ์์คํ
์ ์ค๊ณํ๋ ๋ฐฉ๋ฒ์ ๋งํ๋ค.
๐ซง ๋ฌธ์ ์
๋ฐ์ดํฐ๊ฐ ํจ์์ ๋ถ๋ฆฌ๋๋ค.
๋ง์ ๊ฒฝ์ฐ์, ์ ์ฐจ ์งํฅ ๋ฐฉ๋ฒ์์๋ ๋ฐ์ดํฐ๊ฐ ํ๋ก๊ทธ๋จ์ ์ค์ํ ๋ถ๋ถ์์๋ ๋ถ๊ตฌํ๊ณ ํ๋ก๊ทธ๋๋จธ๋ค์ ํจ์ ์์ฑ์๋ง ์ ๊ฒฝ์ ์ฐ๊ฒ ๋๋ค.
1. ๊ณผ๋ํ ์ ์ญ๋ณ์์ ์ฌ์ฉ
๋ง์ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๋ ์ ์ญ ๋ณ์์ ์ ์ฅ๋๋ค. ์ด ๊ฒฝ์ฐ, ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ๊ฒ์ ํต์ ํ ์ ์์ด์ ์ด๋ค ํจ์๋ ์ง ์ฝ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ท๋ชจ๊ฐ ํฐ ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ, ๋ง์ ํจ์๋ค์ด ์ฝ๊ฒ ์ ๊ทผํ๊ฒ ํ๊ธฐ ์ํด์ ์ ์ญ ๋ณ์์ ํต์ฌ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฒ ๋๋ค. ํ์ง๋ง ์ ์ญ ๋ณ์๋ ๋ชจ๋ ํจ์์ ๋ํ์ฌ ๊ฐ๋ฐฉ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ ์ญ ๋ณ์์ ๊ฐ์ ์๋ชป ์ค์ ํ ๊ฐ๋ฅ์ฑ๋ ๋ง์์ง๋ค.
2. ํ๋ก๊ทธ๋จ์ ์ดํด๊ฐ ์ด๋ ค์์ง๋ค
์ ์ฐจ ์งํฅ์์๋ ์์ ๋ค์ด ํจ์๋ก ์์ฑ๋๋ค. ํ์ง๋ง ์ธ๊ฐ์ด ๋์์ ์ดํดํ ์ ์๋ ํจ์์ ์ซ์๋ ์ ํ๋์ด ์๋ค. ๋ฐ๋ผ์ ์๋ก ์ํธ ์์ฉํ๋ ์๋ฐฑ ๊ฐ์ ํจ์๋ฅผ ์ดํดํ๋ ๊ฒ์ ์ฝ์ง ์๋ค.
3. ๋ณ๊ฒฝํ๊ณ ํ์ฅํ๊ธฐ๊ฐ ์ด๋ ต๋ค
์ ์ฐจ ์งํฅ์ ๊ฒฝ์ฐ, ํ๋ก๊ทธ๋จ์ ๋ณต์ก๋๊ฐ ์ด๋ ์ ๋ ์ด์์ผ๋ก ์ปค์ง๊ฒ ๋๋ฉด ํ๋ก๊ทธ๋จ์ ๋ณ๊ฒฝํ๊ธฐ๊ฐ ์ด๋ ค์์ง๋ค. ์ข ์ข ํ๋์ ํจ์๋ฅผ ์์ ํ๋ฉด ๋ค๋ฅธ ํจ์๋ค์ด ์ํฅ์ ๋ฐ๊ฒ ๋๊ธฐ ๋๋ฌธ์ด๋ค.