본문 바로가기

OOP(객체지향 프로그래밍) / FP(함수형 프로그래밍) 본문

개발/알쓸코잡

OOP(객체지향 프로그래밍) / FP(함수형 프로그래밍)

자전하는명왕성 2023. 1. 25. 17:53

지난 nestJS 포스팅에서 OOP와 FP에 대해 잠깐 언급한 적 있다.

이름으로 보아 대략적으로 무슨 의미인지는 알 것 같기는 하나, 

알 것 같은 것과 아는 것은 다르기에 포스팅을 해보려 한다.

 

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

객체지향 프로그래밍은, 그 말마따나 객체를 중심으로 하여 객체 간의 상호 작용을 통해 로직을 구성하는 방법을 의미한다.

여기서 객체란 실제 사물을 프로그래밍에서 모델링하는 것으로 각각의 속성과 메서드를 갖는다.

* 속성 : 상태, 성질, 데이터 // 메서드 : 객체의 기능, 데이터를 조작하기 위한 연산을 의미한다.

사실 무슨 말인지 모르겠지만, 아래와 같은 느낌이 아닐까 싶다.

let 개 = {
  속성 : {
    상태 : 건강함,
    성질 : 사나움,
    데이터 : 털이 김
  },
  메서드 : {
    객체의 기능 : 잘 뜀,
    데이터 조작을 위한 연산 : 털을 깎으면 짧아짐
  }
}

 

 

OOP 의 특징

  • 캡슐화 - 하나의 객체에 관해 그 객체가 특정 목적에 대해 필요한 변수나 메서드를 하나로 묶는 것을 의미한다.
  • 상속성 - 기존 상위 속성에 근거해 새로운 하위 속성의 재사용성을 향상시킨다.
  • 다형성 - 서로 다른 속성의 객체가 같은 동작을 수행할 때, 각자의 특성에 맞게 동작한다. 
  • 추상화 - 객체들이 공통적으로 필요로 하는 속성이나 동작을 하나로 추출하는 과정이다.

 

FP (함수형 프로그래밍)

함수형 프로그래밍은 자료처리를 함수로 취급하고 우선시하여 상태와 가변 데이터를 멀리하는 방법을 의미한다.

일반적으로 함수형 프로그래밍은 유지보수가 쉽기에, 이 효과를 극대화하여 활용하는 방식이다.

 

FP 의 특징

데이터 불변성 - 함수 밖에서 데이터를 변형하지 않고, 필요 시 함수 안에서 변형하여 사용한다. 

순수 함수 - 매개변수에만 의존하며, 부수효과(side-effect)를 일으키지 않는 함수를 말한다.

유지관리 쉬움 - 함수 밖에서는 데이터가 변형하지 않기에, 프로그램 유지보수에 유리하다.

모듈화 - 작은 모듈은 빠르게 작성할 수 있으며, 함수는 만들어 둘 시 재사용이 용이하기에 개발 시간을 단축시킨다.

 

 

이미지 출처 https://pixabay.com/

'개발 > 알쓸코잡' 카테고리의 다른 글

JWT (JSON Web Token)  (0) 2023.01.30
DB Schema & ERD  (0) 2023.01.26
원시자료형(primitive type) & 참조자료형(reference type)  (0) 2023.01.26
Set 객체  (0) 2023.01.26
about Git  (0) 2023.01.25
Comments