FrontEngineer JungBam

리팩토링이란?(feat.엘리) 본문

개발일지

리팩토링이란?(feat.엘리)

정밤톨 2023. 4. 25. 06:40

1. 리팩토링이란?

소프트웨어 기능을 보존하면서 설계, 구조 및 구현을 개선
리팩토링을 할때에 기능을 추가하거나 버전을 업그레이드하는 것은 금지임. 기존의 코드를 개선하는 것이지 기능을 개선하는 것이 아니라는 것을 확실히 알아야 함.

 

2. 리팩토링을 하는 이유

- 유지보수가 용이해짐.(각각의 코드가 고유한 일을 수행하는 것이 보장됨.)
- 추상화, 설계가 좋아짐에 따라 코드를 이해하고 의도를 파악하기 쉬워짐.
- 기능추가, 확장이 용이해짐.
- 버그를 수정하는 것이 빨라짐.
그럼 처음부터 설계하고 클린코드로 작성하면 되잖아?
☞ 개발 초기 설계는 최소한의 설계이지 완벽한 설계가 될 수 없음. 또한, 프로젝트가 커지면 커질수록 기능이 하나가 추가되더라도 매번 각각의 기능을 분리해서 추가하는 것은 어려움.
☞ 유저나 클라이언트의 요구사항이 계속 변경되는 것은 빈번하기 때문에 미리 예측하고 설계하기란 불가능함.

3. 어떻게 하는 것인가?

기존 코드의 기능과 동작을 유지하는 테스트 코드를 통해 어떤 점이 문제가 되는지 확인하고 확인되는 문제에 따라 리팩토링 기법을 적용해나가며 코드를 개선한다.

4. 언제?

- 프로젝트 시작단계
  좋은 디자인 패턴으로 코드를 깔끔하게 작성하는 것이 best!
  하지만, 우선적으로는 기능구현을 위한 코드를 작성해야함.
  ☞ 테스트 코드를 작성하며 자연스럽게 리팩토링을 진행함.
  ☞ 3의 법칙 : 비슷한 일을 세번째 하게 되면 리팩토링 실시.

- 프로젝트 유지보수단계
  버그를 검증할 수 있는 테스트 코드를 통해 버그 수정
  기존 기능들에 대한 테스트 확인
      
- 오래된 프로젝트
  수정이 필요한 모듈/코드 한정적으로 테스트 추가
반응형
Comments