🫧 클린 코드(Clean Code)
사실 최근까지만 해도 클린 코드의 정의를 잘 모르고 있었다.
코드에 주석을 달면 내 코드를 읽는 사람들이 더 잘 이해할 수 있지 않을까? 라고 생각하며
항상 습관적으로 주석을 달며 코드를 작성했다.
하지만 진짜 좋은 코드는
좋은 코드 > 나쁜 코드 + 좋은 주석
주석으로 설명을 하기 보다는, 코드로 의도를 전달하도록 노력한다.
그렇다면 클린 코드는 무엇일까?
좌측의 그래프를 보면 알 수 있듯이
클린 코드는 그 생산성이 시간이 지나도 일관적으로 유지되고,
나쁜 코드는 계속해서 생산성이 떨어지고 관리 비용이 증가한다.
우측의 그림은 「 깨진 유리창 법칙 」 을 나타내는 그림이다.
즉, 코드는 시간이 지날수록 더 지저분해진다.
결과적으로,
적은 분량으로 코드를 작성하는 것이 목표지만, 가장 주된 목표는 누구나 이해할 수 있는 코드 그리고
이해를 위한 시간이 최대한 짧아야 한다.
간단하게 클린코드의 규칙 몇 가지와 그 예시를 살펴보자.
1. 의도가 분명하게 이름 지을 것
boolean isExpired = false;
int daysSinceLastChangeInfo;
카멜케이스도 지키면서 의도가 분명하게 변수를 선언하는 것이 중요하다.
2. 모호한 단어를 포함하지 말 것
// MultiData userList
MultiData users;
// MultiData authList
MultiData authorities;
접미사로 컨테이너(list)가 포함된 이름은 복수의 의미를 담은 단어로 대체해야 한다.
3. 예외적으로 주석을 명시할 수 있는 경우도 존재
// YYYYMMDD
public void generateDateTime(){
}
4. 가능하면 동사가 앞에 오도록
//public void userLogin() {
//}
public void loginUser() {
}
5. 반복문 쓸 때 i, j, k 말고 명확한 의미를 가지고 있는 단어를 사용
6. 메소드는 최대한 빨리 반환하도록
.. 사실 이외에도 권장되는 규칙들이 많이 존재한다.
하지만 그럼에도 불구하고 가장 중요한 것은
'처음부터 완벽한 소스코드를 작성하는 사람은 아무도 없다.'
앞으로 코드를 작성할 때, 클린코드의 규칙을 지키며 코드를 작성해 내 코드를 누가 읽어도 이해할 수 있도록 작성하기 위해 노력해야겠다는 생각을 하였다!!
'프레임워크(Framework) > Spring' 카테고리의 다른 글
SOLID? (0) | 2024.07.16 |
---|---|
[주문을 JAVA]KPT 회고 (0) | 2024.07.15 |
다형성? (0) | 2024.07.07 |
상속? (0) | 2024.07.04 |
페어 프로그래밍(BubbleSort) (0) | 2024.07.03 |