OOP
-매서드 중심
객체(오브젝트)와 클래스
-데이터를 오브젝트를 객체로 캡슐화, 클래스를 기반으로 생성됨
- state(데이터)와 이를 변경시키는 메서드(행동)이 단위 결합되있음
FP
-함수 중심
순수함수
-순수 함수는 동일 입력 동일 출력. 데이터는 변경 불가능
OOP적 사고
-> 데이터와 행동의 결합
FP적 사고
->데이터와 행동 따로
OOP
-> 가변상태는 메서드를 통해 상태 변경
FP
-> 상태는 변경되지 않고, 상태 변화를 해야할경우, 새로운 상태를 생성해야함.
그냥 존나 쉽게 예시를 들어줌
OOP의 I/O처리 변경
FP 처리 변경
사이드 이펙트를 격리하는 SaveToFileAsync가 있어야함
즉
FP는 순수함수(외부 상태 변경 X, 입력값만을 사용해 출력값 계산)
비순수함수(사이드 이펙트 발생)
이렇게 분리시키는 과정이 있어야함.
OOP 코드에서는 User 클래스가 파일 I/O를 직접 처리함. 이는 User 클래스에서는 사이드 이펙트를 포함하고 있음
FP 코드에서는 사이드 이펙트가 FileIO 로 격리되어 있음. 즉 유저에 관련된 정보들은 순수 함수로 구현되어있음.
댓글 0