본문 바로가기

Programming/리팩토링

[리팩토링 기술-5] 반복문을 처리하는 리팩토링

👀 반복문 (Loops)

 

- 프로그래밍 언어 초기부터 있었던 반복문은

처음에는 별다른 대안이 없어서 간과했지만

최근 자바와 같은 언어에서 함수형 프로그래밍을 지원하면서 

반복문에 비해 더 나은 대안책이 생겼다.

 

- "반복문을 파이프라인으로 바꾸는 (Replace Loop with Pipeline)" 리팩토링을 적용하면

필터나 맵핑같은 파이프라인 기능을 사용해

보다 빠르게 어떤 작업을 하는지 파악할 수 있다.

 

 

 

🙌  반복문을 파이프라인으로 바꾸기 (Replace Loop with Pipeline)

 

- 고전적인 반복문을 파이프라인 오퍼레이션을 사용해 표현하면 코드를 더 명확하게 만들 수 있다.

 

(1) filter : 전달받은 조건의 true에 해당하는 데이터만 다음 오퍼레이션으로 전달

 

(2) map : 전달받은 함수를 사용해 입력값을 원하는 출력값으로 변환하여 다음 오퍼레이션으로 전달

 

 

[  Berfore  ]

 

 

 

[  After 

stream에 들어있는 요소들을 한번 순회하면서

각각의 요소들을 fiter하고 mapping 하고 다시 filter 한 다음에

최종적으로 collect로 하나의 컬렉션으로 묶는 방법이다.

 

 


👀 반복되는 switch문 (Repeated Swtiches)

 

- 예전에는 switch문이 한 번만 등장해도 다형성 적용을 권장했다.

 

- 최근에는 다형성이 꽤 널리 사용되고 있으며,

여러 프로그래밍 언어에서 보다 세련된 형태의 switch문을 지원하고 있다.

 

- "반복해서 등장하는 동일한 switch문"이 존재할 경우,

새로운 조건을 추가하거나 기존의 조건을 변경할 때

모든 switch문을 찾아서 코드를 고쳐야 한다.

 

 

 

🙌  개선된 swtich문

[  Berfore  ]

 

 

 

[  After 

 

 

 

출처 : 인프런 강의 (백기선 - 코딩으로 학습하는 리팩토링)