IT_susu

절차지향 vs 객체지향 vs 함수형(지향) 프로그래밍 본문

computer science

절차지향 vs 객체지향 vs 함수형(지향) 프로그래밍

고베베 2018. 10. 19. 20:25

1. 절차지향 프로그래밍

일이 진행되는 순서대로 프로그래밍을 하는 방법이다.


장점 : 코드를 따라가며 읽기가 쉬우며 작성하기에도 쉬운 편이다. 컴퓨터의 처리구조와 비슷해 실행 속도가 빠르다.

단점 : 각각의 코드가 순서에 민감하게 연결되어있어 유지보수가 쉽지 않다. 프로그램을 분석하기가 어렵다.



2. 객체지향 프로그래밍

객체를 먼저 작성하고 함수를 작성하는 형태이다. : 객체간의 상호작용이다.

데이터(객체)를 먼저 디자인하고 데이터에 맞는 메소드를 구현하는 방식이다.  : 상태를 바꾼다. 조작한다. 데이터형에 메서드가 종속된다.

비순수 함수들을 순수객체로 묶는다.


장점 : "(주어)는 (동사)다." 처럼 사람이 생각하는 방식과 닮아있다. 즉, (객체)는 (메소드)다.

   코드의 재사용이 가능하다. 분석과 설계의 전환이 쉽다.

단점 : 처리 속도가 상대적으로 다소 느리다. 설계의 많은 시간이 소요되며 설계를 잘못하면 다시 처음부터 짜야한다. 테스트가 어렵다.



3. 함수형 프로그래밍

함수를 먼저 작성하는 형태다.

함수를 먼저 만들고 함수에 맞는 데이터를 세팅하는 방식이다. : 상태가 없다.


장점 : 사이드이펙트를 미연에 방지한다. 객체지향보다 코드가 간결하다. 

   비절차형이라 평가 시점이 중요하지 않다. 테스트가 쉽다.(1회만으로 신뢰성 보장) 데이터형에 구애받지 않는다.

단점 : 상태를 조작할 수 없다. 


'computer science' 카테고리의 다른 글

MVC 패턴  (0) 2018.10.21
순수함수란?  (0) 2018.10.19
객체지향 프로그래밍(OOP)이란?  (0) 2018.10.19
웹사이트 최적화 : 최소화(minification)  (0) 2018.06.11
시멘틱 웹이란?  (0) 2018.06.11
Comments