OOP vs FP

Kingmo·2022년 4월 30일
0
post-custom-banner

1. OOP

OOP는 Object Oriented Programming의 약자로 객체지향 프로그래밍을 뜻한다.

OOP는 객체지향 프로그래밍이란 프로그램을 단순히 데이터와 처리방법으로 나눈 것이 아니라,
객체(object)라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 방식이다.

객체란 하나의 역할을 수행하는 메소드와 변수의 묶음으로 봐야한다.

OOP의 장점

  • 코드의 재사용성 증가
  • 생산성 향상
  • 유지보수 편리

OOP의 단점

  • 개발속도가 느리다.
  • 실행속도가 느리다.

2. FP

FP는 Functional Programming의 약자로 함수형 프그래밍을 뜻한다.
과거 명령형 프로그래밍을 기반으로 개발했던 개발자들은 개발하는 소프트웨어의 크기가 커짐에 따라,
엉켜있는 스파게티 코드를 유지보수하는 것이 매우 힘들다는 것을 깨닫게 되었다.

따라서 이를 해결하기 위해 함수형 프로그래밍 이라는 프로그래밍 패러다임에 관심을 갖게 되었다.
함수형 프로그래밍은 거의 모든 것을 순수 함수로 나누어 문제를 해결하는 기법으로
작은 문제를 해결하기 위한 함수를 작성하여 가독성을 높이고 유지보수를 용이하게 해준다.

FP의 장점

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

FP의 단점

  • 순수함수를 구현하기 위해서는 코드의 가독성이 좋지 않을 수 있다.
  • 함수형 프로그래밍에서는 반복이 for문이 아닌 재귀를 통해 이루어지는다,
    이러한 스타일은 무한 루프를 일으킬 수 있다.
  • 순수함수를 사용하는 것은 쉬울 수 있지만 조합하는 것은 쉽지 않다.
profile
Developer
post-custom-banner

0개의 댓글