본문 바로가기
utils

[vscode] Refactoring

by ds31x 2025. 4. 2.
728x90
반응형

Sorftware의 외부 동작은 보존하면서
내부 구조 (~내부의 코드 구현)을 개선하는 프로세스

refactoring이라고 정의함. (Martin Fowler)

0. 주요 목적

  • code의 readability 향상.
  • 유지 보수성 개선.
  • 확장성 증가.
  • 성능 최적화 (optional)

refactoring 은 코드의 품질을 지속적으로 개선하는 중요한 실천 방법임.
"작동하는 코드"를 넘어 "잘 작동하는 깨끗한 코드"를 만드는 과정이라고 할 수 있음.


1. 주요 예

  • method extraction : 긴 메소드를 여러 작은 메소드로 분리.
  • remove duplicate code : 반복되는 code를 function으로 변경.
  • variable (or function, method) renaming: 더 명확하고 의미있는 이름으로 변경
  • class splitting(클래스 분할) :
    • 지나치게 많은 기능의 class를 여러 class로 분리.
    • 가급적 single responsibility principle을 지킬 것 (SOLID 원칙에서 S에 해당).

참고: "Factoring"과 "Refactoring"의 차이:

  • "Factoring"은 일반적으로 무언가를 더 작은 부분으로 나누는 과정을 의미.
    • Linear Algebra 등에서는 matrix를 여러 matrix의 곱으로 분해하는 것을 가리킴.
  • "Refactoring"은 소프트웨어 개발 분야로 한정시 코드의 내부 구조를 개선하는 특정한 과정을 가리킴.

2. vscode의 refactoring 기능

다음은 vscode에서 refactoring에서 사용하기 쉬운 기능들 중 일부를 소개한다.

2-1. method extraction

앞서 설명한 내용 중에서 method extraction과 remove duplicate code 를 위해 사용가능한 기능임.

함수로 묶을 코드를 선택하고 우클릭하여 Refactor...를 고르고 Extract method를 선택하면 됨.

일부 코드들을 새로운 function인 new_func()으로 추출하는 과정을 보여줌.


2-2. f2 를 이용한 변수 또는 함수의 이름 일괄 변경.

바꾸고자 하는 변수명 또는 function (or method)명에 cursor를 가져다놓고

f2 (macOS에서 fn + f2 ) 를 누르고 변경하면

관련된 변수명이 일괄로 바뀜.

test_m.py 와 test.py 에서 사용되는 new_test_func() 함수를 rf_test_func() 함수로 바꾸는 과정을 보여줌.


같이보면 좋은 자료

2025.01.17 - [utils] - [summary] vscode

 

[summary] vscode

vscode 소개 (visual studio 와 비교)https://ds31x.blogspot.com/2023/07/env-visual-studio-code-and-visual-studio.html?view=classic [Env] Visual Studio Code and Visual StudioVisual Studio Code (vscode)는 Visual Studio와 달리, code editor임을 강

ds31x.tistory.com