본문 바로가기

클린코드

[Refactoring] 2. 중복 코드

 

코딩으로 학습하는 리팩토링 - 인프런 | 강의

리팩토링은 소프트웨어 엔지니어가 갖춰야 할 기본적인 소양 중 하나입니다. 이 강의는 인텔리J와 자바를 사용하여 보다 실용적인 방법으로 다양한 코드의 냄새와 리팩토링 기술을 설명하고 직

www.inflearn.com

| 인프런 - 백기선님의 코딩으로 학습하는 리팩토링 강의를 수강하며 정리한 글입니다.


중복 코드
  • 단점
    • 비슷한 것인지, 동일한 것인지 주의 깊게 코드를 살펴보아야 한다.
    • 코드 수정 시, 동일한 모든 곳을 수정해야 한다.
    • 미래의 버그 유발 가능성 제공
      • Ex) A 수정, B 반영 X
  • 방법
    • 함수 추출하기
    • 코드 분리하기
    • 메서드 올리기

Refactoring 1. 함수 추출하기

  • 의도구현 분리하기
  • 코드를 함수로 분리한다면, 함수 이름으로 무슨 일을 하는지 표현할 수 있다.
  • 주석 -> 함수를 추출하는데 있어 좋은 단서
  • 의도를 들어낼 수 있다면 한 줄로 이루어진 메서드도 괜찮다.

Refactoring 2. 코드 정리하기

  • 관련있는 코드끼리 묶어야 가독성이 증가한다.
  • 변수는 사용하는 코드 바로 위선언하자.
  • 관련 있는 코드를 묶은 후 함수 추출하기를 적용하면 더 깔끔한 분리가 가능하다.

Refactoring 3. 메서드 올리기

  • 여러 하위 클래스에 동일한 코드가 있을 경우 사용한다.
  • 비슷하지만 일부 값만 다른 경우, 함수 매개변수화 리팩토링 적용 후 사용한다.
  • 하위 클래스에 있는 코드가 상위 클래스가 아닌 하위 클래스 기능에 의존하고 있다면 필드 올리기 적용 후 사용한다.
  • 두 메소드가 비슷한 절차를 따른다면, 템플릿 메서드 패턴 적용 고려

'클린코드' 카테고리의 다른 글

[Refactoring] 6. 가변 데이터  (0) 2022.09.09
[Refactoring] 5. 전역 데이터  (0) 2022.09.08
[Refactoring] 4. 긴 매개변수 목록  (0) 2022.09.07
[Refactoring] 3. 긴 함수  (0) 2022.09.06
[Refactoring] 1. 이해하기 힘든 이름  (0) 2022.09.05