🌒 프로그래밍 패러다임
Procedural Programming | 절차지향 프로그래밍
Procedure 프로시저 (Routine 루틴, SubRoutine 서브루틴, Method 메소드, Function 함수)
를 이용한 프로그래밍 패러다임
VS 순차적 프로그래밍, 순차적 명령 수행
추상화, 재사용성
Procedural → Procedure절차에 집중하는 것이 아니라 (절차/순서에 따라 명령어를 실행하자는 것이 아니라), 프로시저에 집중하는 프로그래밍 패러다임
모든 프로그래밍은 절차 를 가지고, 순서에 따라 명령이 실행된다.
프로시저 지향 프로그래밍이 더 적합할지도 모른다
함수는 입력이 들어와서 출력이 나가는 블랙박스로 간주된다.
절차 지향에서 사용되는 설계 방법은 하향식 설계 (Top Down Design) 이라고도 불린다.
하향식 설계 방법에서는 문제를더 작은 서브 프로시저로 분해하여 원하는 수준에 도달할 때까지 이 과정을 반복함으로써 시스템을 설계하는 방법을 말한다.
문제점
데이터가 함수와 분리된다.
많은 경우에, 절차 지향 방법에서는 데이터가 프로그램의 중요한 부분임에도 불구하고 프로그래머들은 함수 작성에만 신경을 쓰게 된다.
1. 과도한 전역변수의 사용
많은 경우, 데이터는 전역 변수에 저장된다. 이 경우, 데이터에 접근하는 것을 통제할 수 없어서 어떤 함수든지 쉽게 데이터를 변경할 수 있다. 일반적으로 규모가 큰 프로그램의 경우, 많은 함수들이 쉽게 접근하게 하기 위해서 전역 변수에 핵심적인 데이터를 저장하게 된다. 하지만 전역 변수는 모든 함수에 대하여 개방되어 있기 때문에 전역 변수의 값을 잘못 설정할 가능성도 많아진다.
2. 프로그램의 이해가 어려워진다
절차 지향에서는 작업들이 함수로 작성된다. 하지만 인간이 동시에 이해할 수 있는 함수의 숫자는 제한되어 있다. 따라서 서로 상호 작용하는 수백 개의 함수를 이해하는 것은 쉽지 않다.
3. 변경하고 확장하기가 어렵다
절차 지향의 경우, 프로그램의 복잡도가 어느 정도 이상으로 커지게 되면 프로그램을 변경하기가 어려워진다. 종종 하나의 함수를 수정하면 다른 함수들이 영향을 받게 되기 때문이다.