Swift의 함수형 프로그래밍 요소(예: map, filter, reduce)를 사용하는 경우, 어떤 장점이 있으며, 언제 사용하는 것이 적절한가요?

민경준·2024년 1월 7일
1
post-thumbnail

Description

함수형 프로그래밍은 불변성, 순수함수와 같은 특징을 지닌다. 이런 특징들은 코드 가독성과 예측 가능성을 높여주고, 테스트 코드 작성에 용이하다는 장점이 있다. 또, 이런 특징들은 코드의 부작용이 적고 상태 변이가 없기 때문에 병렬 및 동시성 프로그래밍을 작성할 때 사용하는것이 적절하다.

함수형 프로그래밍 패러다임을 채택함으로써 발생할 수 있는 단점은 무엇인가요?

처음에는 학습에 곡선이 있을 수 있어 러닝 커브가 발생 할 수 있고, 함수형 프로그래밍의 경우 for loop 대신 재귀 함수를 사용하기 때문에 직관적이지 않으며 무한 루프에 빠져 스택 오버플로우가 발생 할 가능성도 있다. 또, 불변성의 특징 때문에 값을 변경하지 않고 새로운 값을 생성하여 사용하기 때문에 메모리 문제가 발생할 수 있다.

함수형 프로그래밍과 객체지향 프로그래밍을 어떻게 효과적으로 조합할 수 있나요?

위에 나열했던 장점들을 객체지향 프로그래밍에 적용하면 된다. 불변성 개념을 적용해서 객체의 상태 변경을 피하고, 순수 함수를 통해 코드의 예측 가능성과 테스트 용이성을 올려준다. 그리고 고차 함수와 함수 합성을 도입 하여, 작은 함수들을 조합하여 큰 기능을 만들도록 한다. 그렇게 되면 코드의 가독성과 재사용성이 올라갈 수 있다.

profile
iOS Developer 💻

0개의 댓글