기타 Hacker News · 4시간 전

"map은 되는데 reduce는 절대 안 됨"… 유독 개발자들이 reduce를 싫어하는 이유

핵심 요약
  • 한 개발자가 map이나 filter와 달리 reduce를 코드 리뷰에 올리면 항상 '가독성이 떨어진다'는 지적을 받는다고 밝혔습니다.
  • 자바스크립트나 파이썬 등 주요 언어에서 reduce의 가독성 저하, 덜 친숙함, 성능 문제 등이 기피 요인으로 분석되었습니다.
  • 본인은 선호하지만 지적을 받으면 다른 코드로 바꾼다며, 클로저 같은 함수형 언어를 쓸 때는 이런 피드백이 없었다고 전했습니다.
요약 해외의 한 개발자가 자신의 블로그를 통해 프로그래머들 사이에서 유독 함수형 프로그래밍 메서드인 'reduce'가 기피되는 흥미로운 현상에 대해 글을 남겼습니다. 작성자의 경험에 따르면 평소 코드 작성 시 map이나 filter 같은 고차 함수는 자주 사용하며, 이를 코드 리뷰에 올렸을 때 동료들로부터 불만이나 지적을 받는 일은 거의 없었다고 합니다. 다른 코드 설계에 대한 피드백은 많아도 map과 filter 사용 자체를 문제 삼는 사람은 없었다는 것입니다. 하지만 reduce의 경우는 완전히 달랐습니다. 패치에 reduce를 포함해 코드 리뷰를 올릴 때마다 동료 개발자들로부터 "이 부분은 읽기 너무 어렵다"는 피드백을 자주 받았다고 합니다. 실제로 실무 코드베이스에서도 map, filter, some 등에 비해 reduce는 훨씬 적게 쓰이는 추세였습니다. 작성자는 개발자들이 왜 reduce를 꺼리는지에 대해 몇 가지 가설을 제시했습니다. 우선 가독성이 떨어지고 상대적으로 덜 친숙하며, 다른 대안에 비해 성능이 떨어질 수 있다는 점을 꼽았습니다. 또한 자바스크립트(JavaScript), 파이썬(Python), 스위프트(Swift) 같은 언어에서는 reduce 문법이 그리 우아하지 않다는 점도 언급했습니다. 흥미롭게도 함수형 언어인 클로저(Clojure)를 주로 사용하던 시절에는 이런 식의 부정적인 피드백을 전혀 받지 않았다고 덧붙였습니다. 비록 작성자 본인은 reduce를 선호하지만, 보통 리뷰에서 지적이 나오면 굳이 고집부리지 않고 다른 코드로 바꿔서 넘어간다고 밝혔습니다. 그러면서도 개발자 커뮤니티 전반에서 관찰되는 이러한 미묘한 사회적 현상을 기록해두고 싶었다며, 다른 개발자들은 reduce를 어떻게 생각하는지 질문을 던졌습니다.
Sponsored · 광고