OOP vs FP

김루루룽·2022년 8월 23일
0

blog✏️

목록 보기
46/61
post-thumbnail

OOP

Object Oriented Programming의 약자로써 class와 object에 기반한 프로그래밍 패러다임(디자인 패턴) 이다.
관련된 데이터끼리 묶어서 class를 형성하고 그 안에서 object instance를 만듬으로써 프로그램을 디자인한다.

장점

  • 코드의 재사용률을 높이고 코드를 간결하게 함으로써 유지보수가 쉽다.(DRY principle)
  • 데이터를 안전하게 보존할 수 있다.(encapsulation와 abstraction등)

대표적인 언어

  • C++, Java, Python, Javascript

특징

  • 캡슐화
  • 추상화
  • 상속
  • 다형성
  • 오버라이딩
  • 오버로딩

FP

Functional Programming
side effect가 없는 pure function을 구현함으로써 프로그램을 디자인한다. 여러개의 작은 function을 엮으며 하나의 큰 function을 구현하고 불변성을 지키게 됨.

장점

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

대표적인 언어

Clojure, Swift, Haskell, Scala

특징

  • 1급객체
  • 고차 함수
  • 불변성
  • 순수 함수

참조:
https://velog.io/@suyeonme

profile
1day 1push..plz

0개의 댓글