sonnie
lucky-sonnie
Published in
2 min readJul 19, 2020

--

함수형 프로그래밍(Functional Programming)이란

함수형 프로그래밍(Functional Programming)

함수형 프로그래밍에서는 모든 오퍼레이션이 새로운 데이터 셋을 리턴 한다. input 값을 받으면 데이터 처리를 한 뒤 새롭게 바뀐 값을 리턴해준다(input 값은 변하지 않는다.) 모든 데이터들을 변경 불가능(immutable)하게 했기 때문에 여러 쓰레드가 데이터를 건들여도 race condition이 없다.

여러 쓰레드에서 값을 가져가 데이터를 만들다 보면 서로 다른 아웃풋이 나올 수 있다. 이 아웃풋들을 모으고 모아서 최종값을 만들어낸다.

가장 큰 장점은 Race Condition이 적다는 것이다. Race Condition이란 쓰레드를 여러개 띄워서 한 데이터에 접근해 수정하게 되면(예를들어 ++1인 경우 1이 증가해야 할 것이 2가 증가하게 된다) 기대값과 출력값이 다를 수 있는 것을 말한다. 성능이 좋아서 쓰는 것은 아니다. (C가 제일 좋음)

자바에서 제공하는 Function 인터페이스

Note: Compose와 andThen은 서로 반대이기 때문에 a.andThen(b)는 b.compose(a)와 같다.

참조

https://www.youtube.com/watch?v=XoH9jzblxKQ&t=770s

--

--