시뻘건 개발 도전기

함수형 프로그래밍 본문

프로그래밍/JAVA

함수형 프로그래밍

시뻘건볼때기 2022. 7. 6. 14:47
반응형

나는 java를 공부하고 사용할 때 "객체지향적으로 코딩해야한다!"(OOP)라는 생각으로 접근한다고 주입식 교육(?)을 받아왔다. 그런데 java1.8 부터 바뀐 많은 부분 중에 가장 대표적으로 "함수형 프로그래밍 기법"이 도입되었다.

차이점을 예를들어 이야기 하자면 아래와 같다.

 

ex) 각 유저의 정보를 갖고 있는 유저 리스트가 있을 때, unvalified email을 추출한다.

  • OOP
    1. 이메일을 담을 리스트 A 선언
    2. 반복문을 돌면서 email validation check
    3. unvalified email를 A에 추가
  • 함수형 프로그래밍
    1. user list에서 unvalified email을 갖고있는 유저만 추출
    2. 추출된 user list에서 email만을 리스트로 추출

 

접근 방식에 차이점이 보인다. OOP의 경우에는 "어떻게 로직을 구현하는가?"에  포커스가 맞춰지지만, 함수형 프로그래밍에서는 "무엇을 추출할 것인가?"에 포커스를 둔다.

함수형 프로그래밍을 사용하게된다면 역할별로 구성된 함수를 사용하므로 역할이 명확하고, 가독성이 좋고, 유지보수성이 뛰어나며 버그로부터 안전함과 동시에 확장성에 용이하다.

 

그렇다고 OOP를 몰라도 되는 것은 아니다. java는 여전히 OOP에 특화된 언어임에 틀림없다. 함수형 프로그래밍은 이 OOP를 더 효율적으로 사용할 수 있도록해주는 유니크아이템같은 것이다.

반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

Optional  (0) 2022.08.12
Stream  (0) 2022.07.25
Method Reference  (0) 2022.07.14
Functional Interface  (0) 2022.07.06
Lambda Expression  (0) 2022.07.06
Comments