OOP vs FP
OOP vs FP
oop는 Object Oriented Programming의 약자이다 class와 object에 기반한 프로그래밍 패러다임(디자인패턴)
oop는 관련된 테이터 끼리 묶어 class를 형성하고 그 안에서 object instance를 만듬으로써 프로그램을 디자인한다
디자인 장점
- oop는 코드의 재사용률을 높이고 코드를 간결하게 함으로서 유지보수가 쉽다는 장점
- 데이터를 안전하게 보존시킬 수 있다 캡슐화 와 추출화 등
*캡슐화 : 캡슐화는 객체의 내부 로직은 감추고 외부에는 상대적으로 안정적인 부분만을 공개함으로써
데이터를 안전하게 보존하는 기법입니다. 캡슐화는 외부에 영향을 주지 않고 객체 내부의
구현을 변경할 수 있기 때문에 내부 로직에 대한 유연함을 제공합니다.
- lmplementation:숨길 부분
- lnterface: 공개할 부분
- 캡슐화는 객체의 "동작 구현" 에 중점.
장점
데이터를 안전하게 보존
개발자의 협업을 수월하게 함
유지보수가 쉽다
가독성의 증가
lnheritence(상속)
상송은 프로토타입을 기반으로 부모 클래스 부터 하위 클래스는 상속을 받는다
유산 상속
상위 클래스의 모든것을 하위 클래스가 모두 이어 받는것 즉 부모가 자식에게 유전자를 물려주듯 부모의 특징을 자식에게 모두 물려주는 행위
장점
코드의 재사용성이 증가
기존에 작성된 클래스를 재사용 불가
자식클래스 설게시 중복되는 멤버를 미리 부모 클래스에 작성 ,자식 클래스에서 해당 멤버를 작성 하지 않아도됨
프로그램 수정시 추가,수정 하더라도 캡슐화를 통해 주변 영향이 적기때문에 유지보수가 쉬워 매우 경제적
Funtional Programming
FP 은 side effet 이 없는 pure function 를 구현함으로서 프로그램을 디자인한다 여러개의 작은 function 을 엮어 하나의 큰 function 을 구현하고 불변성을 지키게 된다
장점
높은 수준의 추상화를 제공
함수 단위의 코드 재사용성이 증가
디버깅이 쉽다
불변성을 지향하기 때문에 프로그램의 동작을 예측하기 쉽다