본문 바로가기
프로그래밍

절차 지향과 객체 지향

by 지나팩 2021. 7. 5.

클래스에 대해 알아보기 전에 먼저 절차지향과 객체지향 프로그래밍에 대해서 간단히 알아보고 넘어가도록 하겠습니다.

 

절차 지향(Procedural Programming)

절차 지향은 컴퓨터의 연산 방식과 유사한 프로그래밍 기법으로 절차를 중요시하여 순서에 따라 연산을 수행합니다. 다만 그냥 절차만 중요시한다기 보단 데이터를 중심에 놓고 순차적으로 실행될 수 있도록 코드를 작성하는 것입니다. 컴퓨터의 연산 처리 방식과 유사해 속도가 빠른 것이 큰 장점입니다. 연산의 순서가 정해져 있다보니 일부만 수정하는 것이 어렵습니다. 특히 큰 프로젝트에선 조금의 수정만으로도 프로젝트 전체 코드를 손봐야하는 경우가 생기기도 하므로 주의를 요해야 합니다. 

객체 지향(Object-Oriented Programming, OOP)

객체 지향은 객체. 조금 쉽게 말해 사람을 포함한 모든 사물과 물체들의 상호작용을 코드로 구현한 것입니다. 각 객체가 가지는 데이터와 기능, 절차를 하나의 덩어리로서 모듈화하여 마치 컴퓨터의 부품처럼 하나씩 조립하여 사용할 수 있도록 만들어 둡니다. 단 여기서 유의해야할 것은 객체지향 프로그래밍이라고 해서 절차를 무시하는 것은 아닙니다. 기본적으로 객체지향도 순서에 의해 연산이 이루어집니다. 단지 객체들 간의 관계, 상호작용에 초점을 두고 코드를 작성합니다.

 

보통은 언어별로 절차지향과 객체지향으로 나누어 버리는 경향이 있지만 사실 언어에 따른 개념은 아닙니다. 물론 반대되는 개념들을 가지고 있긴하나 데이터의 절차에 중점을 두느냐 아니면 객체에 중점을 두고 프로그래밍을 하느냐에 따라 두 개념이 나누어진다고 보시면 됩니다. c언어도 객체 지향적으로 프로그래밍을 할 수 있고 마찬가지로 c# 역시 절차 지향적으로 프로그래밍을 할 수 있습니다.

몇몇 과정들이 빠져있지만 두 개념의 차이점에 대해서 위 이미지를 통해 대략적으로 알아볼 수 있습니다.

댓글