함수형 프로그래밍의 의의

Raymond Yoo·2023년 12월 11일
0
post-thumbnail

함수형 프로그래밍을 처음 접하는 경우라면
새로운 단어들로 인해서 지레 겁먹을 수도 있다.

"내가 기존에 알고 있던 지식을 다 내려놓고
새롭게 받아들일 준비를 해야할까??"
와 같이 부담감을 갖는다거나

"나는 지금까지 개발업무를 맡아서 잘 해냈으니까
함수형 프로그래밍을 배워봤자 시간만 들고 방해가 될 뿐이야.
그냥 기존에 하던 것에나 매진하자"
라는 방식으로 거부감을 갖고 오해를 할 수도 있다.

하지만 실제로는 전혀 그렇지 않다.
함수형 프로그래밍의 기본원칙들은 아주 실용적인 방식으로
모든 개발자에게 도움이 될 것이다.

사람들이 기존에 갖고 있는 프로그래밍에 대한 지식

프로그램을 구현한다고 하면
이름을 정해서 변수를 선언하고
변수에 값을 할당한 뒤 조건문, 반복문을 이용해서 로직을 전개하고
필요한 경우에 함수를 호출해서 해야할 일을 한다.
문자열, 숫자, 이진 타입 등을 지정해서 변수가 하는 일에 제약을 두고
네임스페이스를 이용해서 코드 조각들을 적절하게 모듈화하고
배열, 리스트, 맵 등의 적절한 자료구조를 골라서 사용한다.
클래스, 상속, 메서드 등을 사용해서 적절하게 추상화를 해서
코드를 정제된 구조로 관리할 수도 있다.
이런 수많은 요소를 조합하다보면
최종적으로는 내가 처음에 만들고자 했던
프로그램을 완성할 수 있게 된다.

그러면 이렇게 많은 프로그래밍에 대한 지식 더미에서
함수형 프로그래밍은 어떤 역할을 할 수 있을까??

프로그래밍에 대한 기존 지식, 완성된 프로그램 사이에 빈 공간

함수형 프로그래밍은 기존에 프로그래머들이 알고 있는 지식을
리팩터링하는 역할을 한다.
위에 그림처럼 가득 쌓여있는 프로그래밍 지식 더미 위에
함수형 프로그래밍이라는 계층을 하나 추가하면
완성된 프로그래밍을 조금 더 나은 구조로 만들고
개발자가 변화하는 요구조건에 대응하기에
조금은 편한 구조로 개선할 수 있다.

그러면 여기에 보이는 빈 공간을
함수형 프로그래밍의 핵심요소로 채워나가보자.

<참조>
유튜브 영상, Functional Programming in 40 Minutes • Russ Olsen • GOTO 2018

profile
세상에 도움이 되고, 동료에게 도움이 되고, 나에게 도움이 되는 코드를 만들고 싶습니다.

0개의 댓글