OOP vs FP

은채·2022년 7월 1일
0

FE-study

목록 보기
7/10

OOP(Object Oriented Programming)

문제를 여러 개의 객체 단위로 나눠 작업하는 방식으로, 객체들이 서로 유기적으로 상호작용하는 프로그래밍 이론 (ex. Java, C#)

OOP는 코드 재사용성과 생산성의 향상 효과를 볼 수 있고, 유지보수의 편의성 덕택에 협업이 중요하고 규모가 큰 대형 프로젝트에 사용되는 프로그래밍 이론

OOP의 장점
1. 코드 재사용성 증가 : 상속을 통해 프로그래밍시 코드의 재사용을 높일 수 있다.
2. 생산성 향상 : 잘 설계된 클래스를 만들어서 독립적인 객체를 사용함으로써 개발의 생산성을 향상시킬 수 있다.
3.자연적인 모델링 : 우리 일상생활의 모습의 구조가 객체에 자연스럽게 녹아들어 있기 때문에 생각하고 있는 것을 그대로 자연스럽게 구현할 수 있다.
4. 유지보수의 우수성 : 프로그램 수정시 추가, 수정을 하더라도 캡슐화를 통해 주변 영향이 적기때문에 유지보수가 쉬워서 매우 경제적이라할 수 있다

OOP의 단점
1. 개발속도가 느린점 :객체가 처리하려는 것에 대한 정확한 이해가 필요하기에 설계단계부터 많은 시간이 소모 된다.
2. 실행속도가 느린점 :객체지향언어는 대체적으로 실행속도가 느리다.
3. 코딩 난이도 상승 : 다중 상속이 지원되는 C++ 같은 경우에 너무 복잡해져 코딩의 난이도가 상승할 수 있다.

OOP 특징
객체 지향 프로그래밍의 가장 큰 특징은 클래스를 이용해 연관 있는 처리 부분(함수)과 데이터 부분(변수)을 하나의 객체(인스턴스)로 묶어 생성해 사용한다는 점

  1. 캡슐화 : 데이터와 코드의 형태를 외부로부터 알 수 없게하고, 데이터의 구조와 역할, 기능을 하나의 캡슐형태로 만드는 방법, 정보은닉을 할 수 있다는 특징
  2. 추상화 : 객체의 공통적인 속성과 기능을 추출하여 정의하는 것 , 객체들의 공통된 특징을 파악해 정의해 놓은 설계 기법
  3. 상속 : 기존 상위클래스에 기능을 가져와 재사용할 수 있으면서도 동시에 새로운 하위 클래스에 새로운 기능도 추가할 수 있는 것, 코드의 중복을 없앨 수 있다
  4. 다형성 : 상속과 연관있는 개념으로 한 객체가 상속을 통해 기능을 확장하거나 변경하여 다른 여러형태(객체)로 재구성 되는 것

FP(Functional Programming)

데이터 처리를 수학적인 함수 계산으로 취급해서 개별적인 상태, 데이터 보다는 작은 부분 동작(함수)의 집합 구성에 더 집중하는 프로그래밍 방식
(Ex. Clojure, Swift, Haskell, Scala)

FP의 장점
1. 높은 수준의 추상화를 제공한다.
2. 함수 단위의 코드 재사용이 증가한다.
3. 디버깅이 쉽다.
4. 불변성을 지향하기 때문에 프로그램의 동작을 예측하기 쉬움

profile
반반무마니

0개의 댓글