본문 바로가기

프레임워크(Framework)/Spring

클린 코드(Clean Code)

🫧 클린 코드(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