함수형 프로그래밍
1함수형 프로그래밍(Functional Programming)
함수를 체이닝을 이용해서 사용하는방식. 체이닝은 '.'을 이용해서 체인처럼 연결해서 사용하는 방식을 말한다.
int number = -12345
var result = number.abs().toString().contains('3');
print(result); // true
체이닝 방식은 swift에서도 옵셔널 체이닝 방식으로도 쓰인다.
순수함수를 이용해서 가변적인 데이터 사용을 최소화한다.
객체지향 프로그래밍과는 좀 다른 느낌인거같다.
인터넷에 검색해보니 객체지향 프로그래밍은 명령형(어떻게 할건지에 대한 방식)이고 함수형 프로그래밍은 선언형(무엇을 할 건지를 설명하는 방식)이라고 한다. 두가지의 개발하는 방향이 다른 것 같지만, Swift의 경험에서 보면 결국에는 객처지향 언어이지만 체이닝 방식이 있었던것과 같이 결국에는 서로의 장점이 융화되어서 사용하면 될거같아보인다.
객체지향 프로그래밍의 장점이라고 한다면 객체 단위로 코드를 구성하여 마치 필요한 부품을 만들어놓고 원하는 부품을 때에 따라서 조립해서 쓰는 방식이라고 할 수 있는데, 함수형 프로그래밍은 객체 단위가 아닌 순수함수를 이용해서 가독성을 높이고 유지보수를 용이하게 만드는 방식이라고 한다. 함수형 프로그램을 사용하면코드를 보면 체이닝으로 얽혀있는데 바로바로, 어떤 함수가 사용된것인지 한눈에 보기 편해서 가독성이 좋아지는 것이 바로 보인다.
용어가 익숙하지 않아서 처음에는 생소했지만 기존에 공부했던 Swift에서도 비슷한면이 있는 것을 알고나서는 두려움이 없어졌다. 오히려 굉장히 효율이 좋은 방식이라고 느껴졌다. 바로 함수의 이름이 보이기때문에 이해하기가 쉬워서, Dart언어가 지향하는 철학과 어울린다고 생각했다.
함수형 프로그래밍에 사용하는 함수들이 익숙하지는 않지만 그래도 빠르게 적응해서 사용할 수 있을 거 같다.