프로그래밍 종류
명령형 프로그래밍 - java
선언형 프로그래밍
함수형 프로그래밍 -> 선언형 프로그래밍 스타일을 어느정도 익힐 수 있음
함수형 프로그래밍 장점
- 멀티 쓰레드, 멀티 cpu 환경에서 상태를 변경하지 않는 방식을 강조하는 함수형 프로그래밍의 이점 (<-> 객체지향)
- 데이터를 객체로 변환해서 다루는 비용 부담 -> 대용량 데이터 환경에서
- 함수형 프로그래밍은 함수 단위 모듈화 <-> 객체 지향은 객체(메서드, 필드) 단위. 더 작은 단위 모듈화
- 더 빠른 작업 (객체는 설계가 더 오래 걸림. 메서드 분리보다 클래스 분리가 힘듦)
- 단순함으로의 복귀
- 함수형 프로그래밍은 인풋, 아웃풋이 항상 있음 => tdd에 더 유리한 부분
함수형 프로그래밍 특징
- 변경 불가능한 값을 활용 -> 멀티 스레드 환경에서 이슈가 생길 가능성이 적어짐
- 1등시민으로서의 함수 -> 함수가 메서드의 인자, 리턴값으로 사용될 수 있음
- 람다와 클로저 (람다: 익명함수)
- 고계 함수: 함수를 인자로 받고 함수를 리턴 가능
- 사이드 이펙트가 없는 함수 => 상태값 변경으로 인한 오류를 없앰
함수형 프로그래밍에서 배우고 적용할 수 있는 부분
- 기본틀은 oop 기반
- 메소드 내부 구현은 FP 지향
- 객체의 상태 관리는 불변 객체를 지향
훌륭한 글 감사드립니다.