본문 바로가기
카테고리 없음

클린코드 VS 리팩토링

by cook_code 2023. 1. 18.
반응형

안녕하세요.

오늘은 클린코드와 리팩토링에 관한 이야기를 해보려고 합니다. 

구글 검색 시 두 단어가 혼용되는 경우가 있어 두 개념이 상당히 헷갈렸는데요.

클린코드와 리팩토링 각각의 개념과 두 개념 사이의 차이점에 대해 알아보겠습니다.

 

클린코드

 

- 개념

클린코드란, 가독성이 높은 코드를 말합니다.

- 가독성을 높이기 위해서는 다음과 같이 구현해야 합니다. 

  1. 네이밍 규칙을 준수한다.
  2. 오류가 없어야 한다.
  3. 중복이 없어야 한다. 
  4. 의존성을 최대한 줄인다.
  5. 클래스 혹은 메소드가 한 가지 일만 처리한다. 

 

리팩토링

 

- 개념

프로그램의 외부 동작은 그대로 둔 채, 내부의 코드를 정리하면서 개선하는 것을 말합니다. 

코드의 가독성을 높이고, 향후 이루어질 유지 보수에 큰 도움이 됩니다.

- 리팩토링이 필요한 코드는 다음과 같습니다.

  1. 중복 코드
  2. 긴 메소드 
  3. 거대한 클래스 
  4. switch문
  5. 절차지향으로 구현한 코드 

 

클린코드와 리팩토링의 공통점 & 차이점

 

  • 공통점

복잡한 코드로 인해 발생할 수 있는 잠재적 문제를 해결합니다. 

  • 차이점

클린코드가 단순히 가독성을 높이기 위한 작업이라면,

리팩토링은 클린 코드를 포함한 유지보수를 위한 코드 개선 작업이라고 할 수 있습니다. 

클린코드 같은 부분은 설계부터 잘 이루어지는 것이 중요하고, 

리팩토링은 결과물이 나온 이후 수정이나 추가 작업이 진행될 때 개선해가는 것이 올바른 방향입니다.

 

클린코드와 리팩토링 예시

 - Indent(들여쓰기) 줄이기
- 짧은 조건은 삼항 연산자 사용하기 
- 함수 이름은 snake_case로 지정하고 행동(action)을 이름의 가장 앞에 명명하기 
- 주석이 필요한 복잡한 로직은 함수로 분리하고, 함수명을 주석 대신 사용하기 
- 3줄 이상의 라인이 중복된 코드는 함수로 분리 
- 코드 기능 별로 함수 분리하기
- 함수에 부여되는 인수는 4개를 넘지 않도록 하기 
- 함수의 인수가 많을 경우 Object로 정리하여 Param 사용하기 
- 복잡한 조건은 캡슐화 및 직관적인 이름 명시하기  
- 변수명을 너무 많이 축약하지 말 것 
- else 대신 return을 활용한다. 
- 지역변수 사용 지양하기 
- Composed Method 패턴 적용하기 (추상화 정도 맞추기)

 

참고 URL

반응형