Refactoring이란?
리팩토링은 코드의 품질과 효율성을 유지하기 위한 필수 프로세스이다.
코드 리팩토링 방법
1. 변수 선언과 초기값을 재정의 하는 부분이 분리되어 있을 필요 X
2. 간단한 if-else 문은 삼항 연산자로 대체
삼항 연상자를 사용할 때의 장점
- 간결성 : 논리가 단순할 때 더 간결한 코드를 허용
- 표현력 : 코드를 보다 표현력 있고 자체 문서화할 수 있음.
- 유지보수성 : 작성하고 읽어야 하는 코드의 양을 줄임으로써 코드를 보다 유지보수 하기 쉽게 만듬
- 성능 : 어떤 경우에는 삼항 연산자가 if-else문보다 더 빠를 수 있음.
3. if-else문을 switch로 전환
switch문이 더 나은 이유
- 가독성 : witch 문은 특히 평가할 조건이 여러 개인 경우 복잡한 if-else 문보다 더 읽기 쉬움.
- 성능 : 경우에 따라 switch 문이 if-else문보다 빠를 수 있음.
일반적으로 switch 문이 해당 코드 블록에 대/소문자 레이블을 매핑하는 조회 테이블인 점프 테이블로 구현되기 때문
- 유지관리 : switch 문은 복잡한 if-else 문보다 유지 관리가 더 쉬울 수 있음. 새 옵션 코드에 추가해야 하는 경우 코드의 다른 부분에 영향을 주지 않고 switch 문에 쉽게 추가 가능
4. 긴 메서드 분해하기
긴 메서드는 이해하고 유지 관리하기 어려울 수 있음. 긴 메서드를 리팩토링 하려면 더 작고 관리하기 쉬운 메서드로 나눌 수 있음. 이렇게 하면 코드를 더 쉽게 읽을 수 있을 뿐만 아니라 테스트 및 디버그도 더 쉬워짐.
5. 중복 코드를 제거하고 메서드 분리
중복 코드는 불일치와 오류를 유발이 가능. 중복 코드를 제거하려면 재사용 가능한 메서드를 만들거나 상속을 사용하여 클래스 간에 공통 코드를 공유할 수 있음.
6. 디자인 패턴 사용하기
디자인 패턴은 일반적인 소프트웨어 디자인 문제에 대한 입증된 솔루션이다. 디자인 패턴을 사용하면 복잡한 코드를 단순화하고 더 쉽게 이해하고 유지 관리 가능
7. 알고리즘 및 데이터 구조 최적화
Java 코드의 성능을 개선하는 것도 리팩토링의 중요한 부분이다. 알고리즘과 데이터 구조를 최적화하기 위해 효율적인 알고리즘, 캐싱 및 지연 로드를 사용할 수 있음.