절차지향언어와 객체지향언어

조해빈·2023년 4월 3일
0

짧은이론

목록 보기
16/23

절차지향언어 (Procedural Programming)

절차지향언어는 프로그램을 일련의 절차나 순서로 구성하여 작성한다.

프로그램의 기능을 수행하기 위해 데이터를 처리하는 방법에 중점을 두며, 각각의 함수나 서브루틴 등으로 나누어 작성한다. 대표적으로 C, Pascal, Fortran 등이 있다.

절차지향언어는 개체를 순차적으로 처리하여 프로그램 전체가 유기적으로 연결되어야 한다. 자동차 제조를 예로 들자면, 자동차는 엔진, 차체, 핸들, 의자, 바퀴 순으로 차례대로 만들어져야 한다. 서로 분리되어도 안 되고, 순서가 틀려도 안 된다. 절차지향 프로그래밍 역시 이와 같다.

절차지향언어의 장점

절차지향언어의 구조는 컴퓨터 운영체제의 처리구조와 유사하다. 따라서 처리 속도가 빠르다는 것이 절차지향언어들이 가지는 가장 강력한 장점이다.

절차지향언어의 단점

모든 구성요소가 유기적으로 연결되어 있다는 말인즉, 하나가 고장났을 때 시스템 전체가 고장난다는 뜻일 수 있다. 절차지향언어는 이러한 관점에서 유지 보수가 매우 까다로운 편이다. 이는 디버깅이 어렵다는 말이기도 하다.

또한, 실행 순서가 정해져 있기 때문에 코드의 순서가 바뀌면 결과가 달라질 가능성이 높다. 이러한 면에서 생산 효율이 떨어진다고 말할 수 있다. 코드의 유지보수와 확장성이 용이하지 않기 때문이다.

객체지향언어 (Object-oriented Language)

컴퓨터로 예를 들자면, 컴퓨터에 쓰이는 모든 부품(모니터, 키보드, 스피커 등)과 컴퓨터가 제공하는 모든 기능(화면이 켜짐, 소리가 남 등)이 전부 객체의 개념이 될 것이다.
객체지향언어란 프로그램을 다수의 객체로 만들고, 이들끼리 서로 상호작용하도록 만드는 프로그래밍 언어다. 컴퓨터의 모든 부품을 적절히 연결하고 조립해서 컴퓨터가 제대로 작동하도록 만드는 것이라고 볼 수 있겠다. 자바, c++, 파이썬, 액션스크립트, 스위프트 등이 있다.

객체지향언어의 장점

코드의 재사용성이 높다. 객체지향 언어에서는 객체 간의 상호작용으로 프로그래밍을 하기 때문에 하나의 객체를 변경하면 그 객체를 사용하는 모든 코드에서 변경된 내용을 적용할 수 있다. 또한, 객체 간의 관계를 이용하여 복잡한 문제를 해결할 수 있다.

위의 맥락에서 유지 및 보수가 보다 용이해졌다. 이는 즉 생산성이 증대한다고 말할 수 있다.

객체지향언어의 단점

일반적으로 처리 속도가 보다 느리다는 단점이 있다. 설계의 복잡성이 쉽게 증가할 수 있는 객체지향언어는 객체 간의 상호작용으로 프로그래밍을 하기 때문에 이 과정에서 발생하는 처리 시간이 상대적으로 더 소모된다. 또한, 객체지향언어는 대체로 초기 학습 비용이 높고 배우기에 어렵다는 평이 있다. (그치만 C가 더 어렵지 않나...)

profile
JS, CSS, HTML, React etc

1개의 댓글

comment-user-thumbnail
2023년 4월 4일

절차 지향 언어가 그런거군요! 잘 배워 갑니다 ^^

답글 달기