- Published on
2024.02.26
[함수형 코딩] - 13. 함수형 도구 체이닝
체이닝 - 여러 단계를 하나로 조합하는 것
항등 함수 - 인자로 받은 값을 그대로 리턴하는 함수
체인을 명확하게 만들기
- 단계에 이름 붙이기
- 콜백에 이름 붙이기
- 두 방법을 비교
체이닝 팁
- 데이터 만들기
- 배열 전체를 다루기
- 작은 단계로 나누기
- 조건문을 filter()로 바꾸기
- 유용한 함수로 추출하기
- 개선을 위해 실험하기
filter()
와 map()
등 새로운 배열을 만들어내는 함수는 비효율적이라고 생각할 수 있지만, 가비지 컬렉터가 빠르게 처리해서 문제가 되지 않는다. 하지만 어떤 경우에는 비효율적으로 동작할 수 있는데, 다행히 filter()
, map()
, reduce()
는 쉽게 최적화할 수 있다. 이러한 filter()
, map()
, reduce()
의 체인을 최적화하는 것을 스트림 결합이라고 한다.
체이닝 디버깅 팁
- 구체적인 것을 유지하기
- 출력해보기
- 타입을 따라가 보기
이번 챕터는 단계별로 다루는 내용이 많았다. 단계별 구현 방식을 다루거나, 리팩터링의 대상이 되는 코드에 대한 예시, 그리고 그런 예시를 익히기 위한 예제가 많았다.
리팩터링을 위한 체인이라는 새로운 용어가 등장하면서, 함수를 조합한다고 해서 대단한 동작이 나올까 싶었는데, 결과는 대단하지만 과정은 단순한, 좋으면서도 간과하기 쉬운 내용이 아닐까 싶었다.
책의 결론처럼 체인의 각 단계는 원하는 결과에 가까워지도록 데이터를 한 단계식 변환하는 단순한 동작이다. 구체적으로 적은 반복문 등을 함수를 통해 간소화하여 관리하면서, 그러한 함수형 도구들을 마찬가지로 체인을 통해 조합해서 사용하여 동작을 최소화하고, 불필요한 배열의 생성 등을 방지해 보다 효율적으로 사용할 수 있어 좋다.
효율을 많이 고려해서 좋은 코드를 쓰고 싶다는 욕심이 생기면서 이러한 조합을 통한 리팩터링이 많이 도움이 되었다고 생각한다. 🤗👍👍