냄새 13. 반복문
- etc/리팩토링
- 2023. 5. 10.
들어가기 전
이 글은 인프런 백기선님의 강의를 복습하며 작성한 글입니다.
냄새 13. 반복문 (Loops)
- 프로그래밍 언어 초기부터 있었던 반복문은 처음엔 별다른 대안이 없어서 간과했지만, 최근 Java와 같은 언어에서 함수형 프로그래밍을 지원하면서 반복문에 비해 더 나은 대안책이 생겼다.
- '반복문을 파이프 라인으로 바꾸기' 리팩토링을 적용하면 필터나 맵핑과 같은 파이프라인 기능을 사용해 가독성있는 코드를 제거할 수도 있다.
여기서 '반복문 냄새'는 반복문 자체가 나쁘다는 것을 의미하지는 않는다. 최근 언어에서 함수형 프로그래밍을 지원하면서, 반복문을 좀 더 가독성 있는 형태로 제공할 수 있기 때문에 이 부분으로의 전환을 고려해볼 수 있다는 것이다.
그렇다면 일반적인 반복문을 사용하는 것과 파이프라인을 사용하는 것은 어떤 차이가 있을까? 예를 들어 For / While 문으로 Collection 요소들에 순차적으로 작업을 한다고 해보자. 이 때 다음 형태로 작업을 한다고 가정해보자.
- 변수를 할당함.
- 이 변수를 바탕으로 비즈니스 로직을 수행함.
- 로직의 수행 결과를 Collection에 담음.
이런 일련의 작업들이 For문에 길게 작성되어있는 것보다 자바에서 제공하는 '파이프라인'을 사용해 코드를 개선하면, 조금 더 읽기 쉽고 이해하기 좋은 코드가 될 수 있다는 것이다. '반복문 냄새'는 '파이프 라인'을 적용해서 좀 더 가독성 있는 코드로 바꿔볼 것을 제안한다.
'etc > 리팩토링' 카테고리의 다른 글
리팩토링 34. 계층 합치기 (0) | 2023.05.10 |
---|---|
냄새14. 성의없는 요소 (1) | 2023.05.10 |
냄새 12. 반복되는 Switch 문 (0) | 2023.05.10 |
리팩토링 33. 반복문을 파이프라인으로 바꾸기 (0) | 2023.05.10 |
리팩토링 32. 조건부 로직을 다형성으로 바꾸기 (0) | 2023.05.10 |