본문 바로가기
코드프레소 체험단/Clean Code

[SW 유지보수성 향상을 위한 Clean Code] Clean Code를 위한 Code Refactoring

by 의정부핵꿀밤 2022. 1. 24.
728x90

✨ 이 글은 [ 코드프레소 Java 웹 개발 체험단 활동 ] 내용입니다 ✨

💜 코드프레소 이러닝 강의 수강 중 - SW 유지보수성 향상을 위한 Clean Code 💜

😎 아래의 링크를 통해 프리미엄 IT 교육 서비스, 코드프레소를 확인해보세요 😎

https://www.codepresso.kr/

 

프리미엄 IT 교육 서비스 - 코드프레소

 

www.codepresso.kr


Refactoring

  • SW 품질 향상을 목적으로 기능의 변경 없이, 내부 코드를 변경하는 기술이다
  • 2000년에 Martin Fowler가 소개하였다
  • Refactoring : Improving the Design of Existring Code에서 소개되었다

 

Refactoring 철학

티끌 모아 태산
  • 기존 기능에 변경을 가하지 않는 수준의 아주 작은 코드 개선 작업이다
  • 하나 하나의 Refactoring은 너무 작아서 큰 의미가 없다
  • 그러나 작은 개선이 쌓이면 의미있는 품질 향상이 가능해진다

 

 

Refactorig은 매일 개발의 일부로 진행하는 것

Refactoring isn't another word for cleaning up code
- Martin Fowler
  • Refactoring은 특별한 활동이 아니어서 이를 위해 따로 시간을 내서 수행하는 활동이 아니다!
  • 기능 추가/변경을 위해 코드를 수정하다가 개선이 필요한 코드를 발견하면 개선하는 것이다
  • 보이스카우트 법칙과 일맥상통한다

 

 

Refactoring Process

  • 이는 기능 수정이 아닌 코드 개선이기 때문에 단위 테스트를 통해 기능의 변화가 없으며 제대로 동작하는지 확인할 필요가 있다

 


Code Bad Smell

  • 품질을 저해할 수 있는 가능성을 가진 코드가 보내는 경고 싸인이다
  • Code Bad Smell은 결함이나 에러는 아니다
  • 지속적인 코드 개선을 위해서는 Bad Smell을 맡을 수 있어야 한다!
  • Martin Fowler가 Refactoring 도서에서 22개의 Code Bad Smell의 종류를 정리하였다
  • 이게 다는 아니지만 이를 참고하면 좋다!

 

Code Bad Smell - Examples


Refactoring 카탈로그

  • Code Bad Smell에 대한 다양한 개선 전략들의 모임으로, Category 별로 정리되어 있다
  • Refactoring은 아주 작은 개선 활동이다
  • 너무 당연하다고 판단될 만한 전략들도 다수 존재한다

 

 

Refactoring 카탈로그 - Examples

 

 

Refactoring Examples - Primitive Obsession


Summary : Code Refactoring

  • Refactoring은 매일 지속적으로 수행하는 작은 코드 개선 작업
  • 티끌 모아 태산 : 아무리 작은 개선이라도 이들이 모이면 추후에 큰 품질 개선이 가능하다
  • 개선해야 할 코드의 Bad Smell을 맡는 민감한 코를 갖도록 훈련해야 한다
  • 정리된 Code Bad Smell과 Refactoring Catalog를 참고하는 것은 좋은 습관이다!

 

728x90

댓글