레거시 코드의 단점
- 긴 클래스, 긴 메서드
- 복잡한 코드
- 이상한 이름
- 많은 중복
- 테스트 코드 없음
리팩터링 예시
1. 미사용 코드 삭제
- 미사용 코드가 있을 때는 바로 삭제 하지말고 TODO로 일자를 남기고 6개월 지나고 삭제한다.
- 미사용 메서드를 호출하는 것을 지울때는 그 미사용 메서드 안에서 상태값을 변경하는지 확인하고 삭제를 한다.
- 리플렉션으로 접근하는 코드인지 확인해 봐야한다.
2. 매직 넘버
값일치를 할때 비교하는 숫자를 매직넘버라고 하는데 이 매직넘버는 상수나 열거 타입으로 부여하면 더 가독성이 있다.
3. 이름 변경
기능에 맞는 클래스명 매소드 명은 가독성을 좋게한다
4. 메서드 추출
관련 코드끼리 묶어서 별도 메서드로 추출한다.
- 메서드 추출을 잘못하면 오히려 코드를 탐색하는데 가독성이 떨어진다.
public void register(RegisterRequest req){
int sameIdCount = userRepository.countById(req.getId());
if (sameIdCount > 0) throw new DupIdException();
}