본문 바로가기
TOPCIT

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

by suhsein 2024. 11. 12.
728x90

🛠️코드 리팩토링

코드 스멜

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

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

코드 리팩토링 기법

메소드 정리 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 코드 리팩토링

클린코드

💡 가독성 ⬆️

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

코드 리팩토링

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

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

728x90

'TOPCIT' 카테고리의 다른 글

SW공학 - 프로젝트 관리  (1) 2024.11.12
SW공학 - 소프트웨어 3R  (0) 2024.11.12
정보보안, DB - SQL Injection  (0) 2024.11.12
DB - VIEW, DCL  (0) 2024.11.12
클라우드 컴퓨팅 - 배치 모델과 서비스 모델  (0) 2024.11.05