Programming/Algorithm

순차(절차)지향과 객체지향 프로그래밍

gharlic 2015. 7. 11. 19:10

알고리즘을 짬에 있어서의 방법론이 2가지가 있다.

순차지향 프로그래밍과 객체지향 프로그래밍이다.

프로그래밍을 하다보면 이 두가지의 차이점에 대해서 자연스럽게 이해하게 된다.

하지만 정확히 말로 설명하기가 다소 애매하다.

여기서 이해가 안되도 그냥 넘어가도 상관없다.

 

순차(절차)지향 프로그래밍

 알고리즘의 프로세서가 일련의 절차에 의해 돌아가게 되는 프로그래밍이다.

우리가 c언어를 처음배울 때 예재로 흔히 나오던 알고리즘들이 전부 순차지향적인 프로그래밍이다.

우리가 코딩을 할 때 50줄짜리 코딩을 했다고 가정하자.

그럼 그 프로그램이 돌아가는 순서는 1번줄에서 50번줄까지 순서대로 쭈우욱 실행되게 되는 것이다.

 

 순차지향적 프로그래밍의 가장 큰 단점은 유지보수가 어렵다는 점이다.

프로그램 전체가 한 덩어리이기 때문에 무언가를 수정하려면 전체를 다 봐야할 필요가 있다.

프로그램의 규모가 커질 수록 우리가 놓치는 부분이 많아져 오류를 감당할 수 없게 된다.

 

객체지향 프로그래밍

 객체지향이란 데이터와 그 데이터를 처리하는 알고리즘을 포함한 모든것을 캡슐화 하는 것이다.

함수나 구조체 따위로 모든 기능을 독립적인 파일로 분리시켰다고 보면 된다.

각 기능의 입출력 포맷만 명확하다면 특정 부분만 수정하거나 따로 때어내서 사용하기가 용이하다.

 

 

둘 중 어느게 좋은 것인가?

 기능적인 부분만 보면 당연히 객체지향 프로그래밍이 좋다고 할 수 있다.

하지만 정답은 그때그때 다르다이다. 객치지향적일 필요가 없는 부분은 순차지향으로 처리하는 것이 옳다.

불필요한 자료구조를 갖추는데 노력을 들일 필요는 없다.

반응형

'Programming > Algorithm' 카테고리의 다른 글

하노이의 탑  (0) 2015.07.11
순환(재귀)과 반복  (0) 2015.07.11