객체지향 프로그래밍과 함수형 프로그래밍

LOOPY·2022년 3월 4일
0

기술면접준비

목록 보기
14/15

1. 객체지향 프로그래밍(OOP)

: 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법

  • 함수들의 집합 혹은 변수들의 목록을 관계성 있는 객체들의 집합으로 분류(Classification)하고, 각 분류는 메세지를 받을 수도, 데이터를 처리할 수도, 또 다른 분류에게 메세지를 전달할 수도 있게 만드는 것 / 이것들 하나하나를 '객체'라고 부름
  • 👍🏻 보다 유연하고 유지보수가 쉬우며 확장성 측면에서도 유리
  • 👎🏻 모든 것을 객체로 생각하기 위해 개발 속도와 실행 속도가 느려짐

2. 함수형 프로그래밍(FP)

: 순수 함수(pure function)을 조합하고 공유 상태(shared state), 변경 가능한 데이터(mutable data) 및 부작용(side-effects)를 피하여 프로그래밍하는 패러다임

  • 연계성보다는 함수를 이용해 side effect가 없도록 선언형 프로그래밍을 하는 것
  • 참조 투명성: 값을 다시 할당하지 않는 것
  • 👍🏻 side effect가 없고 비교적 간결
  • 👎🏻 상태(state)가 없음
    BUT, 현재 React에서는 hooks의 state를 통해 함수형 프로그래밍 방식으로도 상태를 가질 수 있다!

👉🏻 말 그대로 패러다임이기 때문에, 좋고 나쁨을 가리기 보다 그때 그때 유리한 방식을 택할 수 있도록 미리 공부해두자!


참고자료
https://velog.io/@huurray/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EA%B3%BC-%ED%95%A8%EC%88%98%ED%98%95-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D
https://mangsby.com/blog/programming/fp-vs-oop/

profile
2년차 프론트엔드 개발자의 소소한 기록을 담습니다 :-)

0개의 댓글

관련 채용 정보