OOP(객체지향 프로그래밍) / FP(함수형 프로그래밍) 본문
반응형
지난 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