728x90
반응형
소프트웨어 공학에서 리팩토링(refactoring)은 '결과의 변경 없이 코드의 구조를 재조정함'을 뜻합니다.
더 정확히 얘기하면
- 주로 가독성을 높이고 유지보수를 편하게 하는 것.
- 버그를 없애거나 새로운 기능을 추가하는 행위는 아님.
- 사용자가 보는 외부 화면은 그대로 두면서 내부 논리나 구조를 개선하는 유지보수 행위.
로 얘기 할 수 있습니다.
쉽게 얘기하면 현재 코드의 동작은 그대로 유지하면서 더 이해하기 쉽고, 생각하기 쉽고, 확장하기 쉽게끔 재구성하는 것을 말하는 것이죠.
Refactoring 목적
리팩토링의 목적은, 소프트웨어를 더 이해하기 쉽고 수정하기 쉽게 만드는 것에 있습니다.
리팩토링은 성능을 최적화시키는 것이 아닌 코드를 신속하게 개발할 수 있게 만들어주고, 코드 품질을 좋게 만들어주는 것이죠.
코드가 이해하기 쉽고, 수정하기 쉽다면 개발 속도가 증가하겠죠?
Reafctoring의 사용 시기
Reafctoring의 사용 시기는 아래와 같습니다.
- 삼진 규칙(3번의 중복 / 3번의 같은 행위를 한다면 리팩토링을 진행하자.)
- 기능을 추가할 때 리팩토링을 하자.
- 버그를 수정해야 할 때 리팩토링을 하라.
- 코드 검토(Code Review)를 할 때 리팩토링을 하라.
Reafctoring의 절차
소규모 변경 후 동작여부를 테스트하고 작동할 경우 다음단계로 넘어가고, 그렇지 않을경우 undo 후 리팩토링을 진행하시면 됩니다.
리팩토링을 알아볼 때 클린 코드와 리팩토링에 차이도 많이 언급하는데요. 리팩토링이 더 넓은 의미를 가지고 있는데
아래의 표를 참조하시기 바랍니다.
클린 코드 | 리팩토링 |
단순히 가독성을 높이기 위한 작업 | 클린 코드를 포함한 유지보수를 위한 코드 개선 |
같은 부분은 설계부터 잘 이루어져 있는 것이 중요함. | 결과물이 나온 이후 수정이나 추가 작업이 진행될 때 개선해 나가는 것 |
참조
728x90
반응형
'프로그래밍(Basic) > 이론' 카테고리의 다른 글
[바미] 다수의 요청에 의해서 데이터를 CRUD 원활하게 관리하기. (0) | 2023.01.30 |
---|---|
[바미] IPC (2) | 2022.12.29 |
[바미] Object, Class, Instance. (0) | 2022.12.27 |
[바미] Java - Garbage Collection (0) | 2022.12.06 |
[바미] 선형성(Linearity)에 대해 (0) | 2022.11.01 |