본문 바로가기
[2]SW Development Note/[2-1.5]Refactoring

리팩터링

by 오늘도 빛나는 너에게 2020. 8. 9.
728x90

수많은 다른 소프트웨어 개발 용어와 마찬가지로 '리팩터링ctiactatine"도 엔지니어들 사이에서

다소 두리뭉실한 의미로 통용된다

 

'리팩터링'이란 용어는 명사로도 쓸 수 있고, 동사로도 쓸 수 있다.

 

리팩터링: [명사] 소프트웨어의 겉보기 동작은 그대로 유지한 채, 코드를 이해하고 수정하기 쉽도

록 내부 구조를 변경하는 기법

 

리팩터링(하다): [동사] 소프트웨어의 겉보기 동작은 그대로 유지한 채, 여러 가지 리팩터링 기법

을 적용해서 소프트웨어를 재구성하다.

 

 

지금껏 수많은 사람이 코드를 정리하는 작업을 모조리 '리팩터링'이라고 표현하고 있는데

정의를 따르면 특정한 방식에 따라 코드를 정리하는 것만이 리팩터링이다.

리팩터링은 결국 동작을 보존하는 작은 단계들을 거쳐 코드를 수정하고, 이러한 단계들을 순차적으로

연결하여 큰 변화를 만들어내는 일이다.

개별 리팩터링은 그 자체로 아주 작을 수도 있고, 작은단계 여러 개가 합쳐진 모습일 수도 있다.

따라서 리팩터링하는 동안에는 코드가 항상 정상 작동하기 때문에 전체 작업이 끝나지 않았더라도 언제든 멈출수 있다.

 

리펙터링의 목적은 코드를 이해하고 수정하기 쉽게

만드는 것이다. 프로그램 성능은 좋아질 수도, 나빠질 수도 있다. 반면 성능 최적화는 오로지

속도 개선에만 신경 쓴다. 그래서 목표 성능에 반드시 도달해야 한다면 코드는 다루기에 더 어렵게 바뀔 수도 있음을 각오해야 한다.

 

 

리팩터링은 다양한 용도로 활용할 수있고, 또 반드시 그래야 하는 도구다.

 

리팩터링을 하는이유

첫번째  :리팩터링하면 소프트웨어 설계가 좋아진다.

두번째 : 리팩터링하면 소프트웨를 이해하기 쉬워진다.

세번째 : 리팩터링하면 버그를 쉽게 찾을수 있다.

네번째 : 리팩터링하면 프로그래밍 속도를 높일수 있다.

 

 

인용 및 출처 : 리팩터링 코드 구조를 체계적으로 개선하여 효율적인 리팩터링 구현하기 2판

728x90

댓글