본문 바로가기

카테고리 없음

좋은 코드(클린 코드)란 무엇인가

반응형

 글을 쓸 때도 잘 읽히는 글을 쓰기 위해서는 한 문단에 한 주제를 담거나, 두괄식으로 문장을 쓰거나 접속사를 활용하는 등의 방법을 사용할 수 있습니다. 소스코드라는 것도 개발자의 논리적인 생각을 표현한 일종의 글이므로, 좋은 글을 쓰는 방법과 같이 좋은 코드를 쓰는 방법 또한 존재합니다. 소스코드만 보고 협업을 하는 다른 팀원들이 논리가 간단하고 가독성이 좋아 쉽게 이해한다면 이를 좋은 코드, 즉 클린 코드라고 말합니다.

 처음 코드를 작성할 때부터 잘 짜 둔다면 수정 및 변경이 필요할 때 큰 힘을 들이지 않고, 비교적 짧은 시간 내에 수정이 가능합니다. 따라서 이상적인 코드를 작성한 경우에는 문제가 발생했을 경우 문제에 대응하는 속도에 큰 차이가 존재하지 않습니다. 그러나 저번 글에서 설명한 바와 같은 나쁜 코드를 작성하여 가독성까지 떨어진다면 어느 부분에서 문제가 발생했는지 파악하기 어려워져, 문제에 대응하는 속도가 급격히 느려지게 될 것입니다.

 개발을 할때 실제 코드를 작성하는 시간보다, 코드를 읽고 이해하는 시간이 10배 정도 더 소요된다고 합니다. 특히나 개발자의 특성상 팀원들과 협업하여 함께 코드를 짜거나, 이미 짜인 코드를 읽고 수정하는 업무가 많은데, 이때 클린한 코드가 짜여 있다면 수정 및 기능 추가에 소요되는 시간을 줄여 효율성을 높일 수 있게 됩니다.

 

클린 코드의 주요 원칙

 클린 코드의 일반적인 주요 원칙은 아래에서 소개하는 바와 같이 코딩 표준을 준수하고 단순하게 만들어 가독성을 높이기 위한 방법입니다.

1. Follow Standard Conventions : 코딩의 표준, 아키텍처 표준 및 설계 가이드를 준수하라.

2. Keep it Simple, Stupid : 단순한 것이 효율적이며, 복잡함을 최소화하라.

3. Boy Scout Rule : 참조되거나 수정되는 코드는 원래보다 깔끔해야 한다.

4. Root Cause Analysis : 항상 근본적인 원인을 찾아라. 그렇지 않으면 반복될 것이다.

5. Do Not Multiple Languages in One Source File : 하나의 파일은 하나의 언어로 작성하라.

 

클린 코드의 주요 원칙 (설계 관점)

 설계 관점에서 클린 코드를 이야기할 때에는 SOLID 원칙을 적용합니다. 이러한 원칙은 소프트웨어 작업에서 개발자가 소스 코드를 읽기 쉽고 확장하기 쉽게 될 때까지 리팩터링 할 수 있도록 적용된 지침입니다.

S (SRP) : 단일 책임 원칙, 한 클래스는 하나의 책임만 가져야 한다.

O (OCP) : 개방-폐쇄 원칙, 클래스는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.

L (LSP) : 리스코프 치환 원칙, 파생 클래스의 메서드는 기반 클래스의 메서드를 대체하여 사용될 수 있어야 한다.

I (ISP) : 인터페이스 분리 원칙, 클라이언트가 사용하지 않는 메서드에 의존하지 않아야 한다.

D (DIP) : 의존관계 역전 원칙, 추상화된 것은 구체적인 것에 의존하면 안 된다.

 

그 외 클린 코드의 위한 규칙

 앞서 언급한 클린 코드의 주요 원칙 외에도, 다양한 클린 코드를 위한 규칙들이 존재합니다. 대표적으로 의도가 분명하고 발음하기 쉬운 변수명, 함수명, 클래스명으로 코드를 작성한다는 내용과, 함수 기능 중 직관적으로 파악하기 어려운 세부사항은 주석으로 남긴다는 내용, 읽기 쉬운 흐름 제어를 만들기 위해 조건문, 반복문을 최적화시킨다는 내용 등이 존재합니다.

 

클린 코드 사용의 이점

 클린 코드를 위한 원칙과 규칙들을 지킨다면, 가독성이 좋은 코드가 되고, 의존성을 줄여주며, 오류 발생 확률이 줄어듭니다. 또한 소스코드의 성능이 최적화되고, 소스코드 로직의 의도가 잘 드러나 협업과 코드 수정에 도움이 되고, 테스트 코드를 쉽게 작성하는 부분에 있어서도 도움을 얻을 수 있습니다.

반응형