[TDD, 클린 코드] (6) 함수형 프로그래밍

June Lee·2023년 8월 9일
0

좋은 코드

목록 보기
8/8

프로그래밍 종류

명령형 프로그래밍 - java
선언형 프로그래밍
함수형 프로그래밍 -> 선언형 프로그래밍 스타일을 어느정도 익힐 수 있음


함수형 프로그래밍 장점

  1. 멀티 쓰레드, 멀티 cpu 환경에서 상태를 변경하지 않는 방식을 강조하는 함수형 프로그래밍의 이점 (<-> 객체지향)
  2. 데이터를 객체로 변환해서 다루는 비용 부담 -> 대용량 데이터 환경에서
  3. 함수형 프로그래밍은 함수 단위 모듈화 <-> 객체 지향은 객체(메서드, 필드) 단위. 더 작은 단위 모듈화
  4. 더 빠른 작업 (객체는 설계가 더 오래 걸림. 메서드 분리보다 클래스 분리가 힘듦)
  5. 단순함으로의 복귀
  • 함수형 프로그래밍은 인풋, 아웃풋이 항상 있음 => tdd에 더 유리한 부분

함수형 프로그래밍 특징

  1. 변경 불가능한 값을 활용 -> 멀티 스레드 환경에서 이슈가 생길 가능성이 적어짐
  2. 1등시민으로서의 함수 -> 함수가 메서드의 인자, 리턴값으로 사용될 수 있음
  3. 람다와 클로저 (람다: 익명함수)
  4. 고계 함수: 함수를 인자로 받고 함수를 리턴 가능
  5. 사이드 이펙트가 없는 함수 => 상태값 변경으로 인한 오류를 없앰
  • scheme,clojure 로 연습 가능

함수형 프로그래밍에서 배우고 적용할 수 있는 부분

  • 기본틀은 oop 기반
  • 메소드 내부 구현은 FP 지향
  • 객체의 상태 관리는 불변 객체를 지향
profile
📝 dev wiki

1개의 댓글

comment-user-thumbnail
2023년 8월 9일

훌륭한 글 감사드립니다.

답글 달기