정의

읽기 쉽고 이해하기 쉬우며, 유지보수가 쉬운 코드
단순히 작동하는 코드를 넘어서서, 다른 개발자들이 쉽게 이해하고 수정할 수 있는 코드
클린 코드는 코드 품질을 높이고 버그를 줄이며, 향후 개발에 드는 비용을 절감하는 데 중요한 역할을 함

특징

1. 가독성
- 코드는 항상 읽히기 쉽게 작성해야 함. -> 팀원들이 쉽게 이해하고 수정할 수 있어 협업에 유리
- 변수명, 함수명, 클래스명 등은 명확하게 의미를 담아야 하며, 모호한 표현은 피함

2. 단순성
- 복잡하지 않고, 문제를 해결하는 가장 간단한 방법을 택하는 것이 중요
- 불필요한 코드를 피하고, 하나의 함수는 하나의 책임만 가지도록 작게 나눔

3. 함수와 클래스의 적절한 크기
- 함수는 가능한 한 짧고, 하나의 작업만 수행해야 함
- 클래스도 단일 책임 원칙(SRP)을 지키며, 하나의 목적을 위해 존재함

4. 명확한 네이밍
- 이름은 코드의 기능을 설명할 수 있는 직관적인 이름을 사용해야 함
- 축약어를 피하고, 기능을 나타내는 명사나 동사 등으로 구성

5. 주석 최소화
- 주석이 없어도 코드가 자체적으로 명확하게 읽히도록 작성
- 코드가 직관적이라면 주석이 거의 필요 없음. 로직이 복잡한 경우에만 필요한 주석을 간결하게 추가

6. 에러 처리
- 예외 상황을 적절하게 처리해야 하며, 코드가 예상치 못한 상황에서도 안정적으로 동작하도록 작성

7. 테스트 가능성
- 코드가 변경되거나 추가될 때 쉽게 테스트할 수 있도록 작성
- 코드의 의존성을 최소화하고, 유닛 테스트와 같은 테스트 코드도 함께 작성하는 것이 좋음

예시

// 클린 코드 이전
public class User {
    private String n;
    private int a;

    public void fn(String n, int a) {
        this.n = n;
        this.a = a;
    }
}
// 클린 코드 적용 후
public class User {
    private String name;
    private int age;

    public void updateUserInfo(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

비고

1. 앞에 공부한 객체지향생활체조원칙이랑 비슷한 느낌! 난 이제까지 클린 코드가 안 되었구나, 신경 써가며 개발해야겠다.

레퍼런스

1. 우테코 프리코스 백엔드 자료, 도서관

 

'개발지식 조각 > Java' 카테고리의 다른 글

일급 컬렉션(First-Class Collection)  (1) 2024.10.31
Static (변수/메서드/클래스)  (0) 2024.10.31
List, Set, Map, Queue  (0) 2024.10.31
제너럴한 명명규칙 정리  (0) 2024.10.31
AssertJ  (0) 2024.10.31

+ Recent posts