1. first class 함수
함수를 일반 값처럼 다룰 수 있다. 함수를 변수에 저장할 수도 있고 함수를 인자로 다른 함수에 전달할 수 있으며, 함수에서 새로운 함수를 만들어 반환할 수도 있다.
2. 불변성 Immutability
함수형 프로그래밍에서는 일단 만들어지고 나면 내부 상태가 절대로 바뀌지 않는 불변 객체를 사용해 프로그램을 작성한다.
3. side effect 없음
함수형 프로그래밍에서는 입력이 같으면 항상 같은 출력을 내놓고 다른 객체의 상태를 변경하지 않으며, 함수 외부나 다른 바깥 환경과 상호작용하지 않는 순수 함수를 사용한다.
이런 함수형 프로그래밍을 하면 장점은?
1. 같은 동작을 하는 명령형 코드에 비해 더 간결하며 우아함
2. 순수함수를 값처럼 사용할 수 있으면 더 강력한 추상화로 코드 중복을 막을 수 있다.
3. 멀티쓰레드를 사용해도 안전함. 불변성 때문에 같은 객체를 여러 쓰레드가 변경할 일이 없어서.
4. 테스트하기 쉬움. 부수 효과가 있는 함수는 테스트를 위해 환경을 구성하는 준비코드가 필요한 반면 순수함수를 그런 준비 코드 없이 독립적으로 테스트 가능.
'기술 공부 끄적끄적 > 프로그래밍 언어' 카테고리의 다른 글
자바에서의 thread safety와 singleton 관련 읽어보면 좋은글 (0) | 2024.02.02 |
---|---|
자바에서의 동시성 문제 해결 (0) | 2024.01.31 |
Java SE 22 (JDK22) 업데이트 내용 (0) | 2024.01.12 |