SW공학 - 코드 리팩토링과 클린코드

·2024년 3월 11일
0

TOPCIT

목록 보기
16/24

🛠️코드 리팩토링

코드 스멜

가독성이 낮고 중복된 로직을 말함

발생 원인 : 주석 없음, 중복 로직, 복잡한 조건

코드 리팩토링 기법

메소드 정리Extract Method그룹으로 묶을 수 있는 코드의 메소드 추출
Replace Parameter with Method객체가 메소드를 호출한 다음, 결과를 다른 메소드에 매개변수로 넘기고 있으면 수신자가 그 메소드를 호출하도록 하는 작업
객체 간 기능 이동Extract Class두 개의 클래스가 해야할 일을 하나의 클래스가 하는 경우, 새로운 클래스를 생성해 필드와 메소드를 이전
Extract Subclass어떤 클래스가 일부 인스턴스에 의해서만 사용되는 기능을 가지고 있다면, 인스턴스만 사용하는 기능을 담당하는 서브클래스를 만드는 작업
🌠Extract Interface(Super class)여러 클라이언트가 한 클래스의 인터페이스의 동일한 부분집합을 사용하고 있다면 부분집합을 인터페이스로 추출
이름Rename Method메소드 이름이 목적을 드러내도록 이름 변경
추측성 일반화Inline Method메소드의 본문이 메소드 이름만큼 명확하다면 해당 본문을 메소드를 호출하는 호출자 안으로 옮기고 메소드를 삭제
Collapse Hierarchy슈퍼클래스와 서브클래스가 별로 다르지 않다면 하나로 통합
중복Replace Magic Number with Symbolic constant특별한 의미를 갖는 숫자 리터럴 존재 시 상수를 만들어 의미가 잘 드러나도록 이름을 짓고 숫자를 상수로 대체하는 방법
Pull up Method동일 기능 메소드를 슈퍼클래스로 이동
Pull up Field동일 기능 필드를 슈퍼클래스로 이동

클린코드 VS 코드 리팩토링

클린코드

💡 가독성 ⬆️

단순히 가독성을 높이기 위한 작업으로 이루어짐

코드 리팩토링

💡 클린코드 기반 ➕ 유지보수 ⬆️

클린코드를 기반으로 한 유지보수를 위한 코드 개선이 이루어짐

profile
티스토리로 블로그 이전합니다. 최신 글들은 suhsein.tistory.com 에서 확인 가능합니다.

0개의 댓글