나에게 클린 코드란?

김민중·2024년 7월 9일
0

클린코드,,

개발자라면 한번쯤은 위 책을 본 적이 있을 것이다. 개발자들 사이 "밥 아저씨"라고 불리는 로버트 마틴이라는 분이 쓴 책이다.

이 책 안에는 말 그대로 클린코드에 관련된 내용이 들어있다. 책은 약 500p가 될 정도로 결코 가벼운 책이 아니다.

하지만 읽어보면 이미 알게모르게 지키고 있는 규칙들이 꽤 많이 있다. 오늘은 이 책을 기반으로 내가 생각하는 클린코드에 대해 다뤄볼 것이다.

내가 생각하는 클린코드

일단 클린코드가 되기 위해선 한 가지 전제가 있다고 생각한다.

요구사항을 모두 수행하는 소프트웨어

소프트웨어가 요구사항을 수행하지 못한다면 클린코드가 아닌 "구현"을 1순위로 두는 게 맞다.

그럼 "요구사항을 모두 수행하는 소프트웨어"라고 가정한다면 "하나의 언어처럼 잘 읽히는 코드"가 클린코드라고 생각한다.

언어처럼 잘 읽힌다는 건 무슨 말일까?

아래 코드를 살펴보자

if(choiceDate == LocalDate.now()){
	System.out.println("True");
}

코드가 간단하기 때문에 어떤 로직인지 쉽게 알 수 있다. 바로 다음과 같은 로직이다.

내가 선택한 날짜가 현재 날짜와 같다면 True를 출력

그렇다면 위 코드는 과연 "언어"처럼 읽히는 코드일까?
내 답은 "아니다"이다. 그 이유는 choiceDate, "==", LocalDate.now() 총 3개의 키워드를 보고 판단해야 하기 때문이다. 그럼 다음과 같은 코드를 살펴보자

if(isChoiceCureentDate()){
	System.out.println("True");
}

위 코드를 보면 "isChoiceCurrentDate()"를 "현재 날짜를 선택했는지"(이)라고 바로 파악이 된다.

즉 choiceDate, "==", LocalDate.now() 같은 것들을 읽지 않아도 "isChoiceCurrentDate()"와 같이 함수 이름만 읽으면 저절로 코드가 파악이 된다.

하나의 언어처럼 잘 읽히는 코드

바로 이 문장이 성립이 되는 것이다.

좀 더 구체적으로 말하면 "메소드로 추출하는 것"=이다. 그리고 이것이 클린코드의 핵심이라고도 생각한다.

클린코드 규칙은 굉장히 많이 있고 앞으로 하나씩 포스팅 할 예정이다.

결론

무조건 가독성이 좋은 코드가 최고인 건 아니다.

임베디드와 같이 성능,메모리가 중요한 분야에서는 잘 읽히는 코드가 아니라 성능이 좋은 코드가 최고일 수 있다.

하지만 이런 특수한 경우를 제외하고는 이미 컴퓨터의 성능이 상향평준화가 되었기 때문에 "하나의 언어처럼 잘 읽히는 코드"가 1순위가 되어야 한다고 생각한다.

왜냐하면 코드가 잘 읽혀야 유지보수가 용이해지고, 궁극적으로 개발생산성이 높아지기 때문이다.

다음 포스팅에서는 좀 더 구체적으로 클린코드에 대해 다뤄봐야겠다.

profile
개발블로그

0개의 댓글