클린 코드는 가독성이 좋고, 재사용성이 높으며, 유지보수가 쉬운 코드를 의미한다. 클린 코드를 작성하는 것은 개발자에게 필수적인 능력 중 하나로, 효율적인 개발 흐름을 유지하고 코드의 품질을 높이는 데 큰 도움이 된다.
클린 코드를 작성하기 위한 몇 가지 원칙들은 다음과 같다:
예를 들어, 아래는 클린 코드를 작성하는 한 가지 방법을 보여주는 코드이다.
// Bad
public void p(int a, int b) {
// ...
}
// Good
public void printSumOfTwoNumbers(int firstNumber, int secondNumber) {
// ...
}
위의 예제에서 함수 이름 'p'는 해당 함수가 어떤 작업을 수행하는지 알 수 없다. 반면, 'printSumOfTwoNumbers'는 함수가 두 숫자의 합을 출력한다는 것을 명확하게 알려준다.
코드 리팩토링은 기존의 코드를 구조적, 알고리즘적으로 개선하는 작업을 말한다. 코드의 기능은 그대로 유지하면서, 가독성을 높이고 중복을 제거하며 코드의 품질을 향상시키는 것이 주 목표다.
코드 리팩토링의 주요 기법들은 다음과 같다:
다음은 메소드 추출(Extract Method) 리팩토링 기법의 예제 코드이다.
// Before
public void printDetails() {
printName();
printAddress();
printPhoneNumber();
}
public void printName() {
// ...
}
public void printAddress() {
// ...
}
public void printPhoneNumber() {
// ...
}
// After
public void printDetails() {
printPersonalDetails();
}
public void printPersonalDetails() {
printName();
printAddress();
printPhoneNumber();
}
위의 예제에서 'printDetails' 메소드는 이름, 주소, 전화번호를 출력하는 역할을 한다. 리팩토링 후에는 'printPersonalDetails' 메소드가 이 역할을 대신하게 되었다. 이를 통해 'printDetails' 메소드의 역할이 더 명확해지고, 'printPersonalDetails' 메소드를 재사용할 수 있게 되었다.