함수 추출Extract Function

대상: 코드 조각을 고유한 함수로 변환할 수 있습니다.What: Lets you turn a fragment of code into its own function.

시기: 다른 함수에서 호출해야 하는 일부 함수에 기존 코드 조각이 있습니다.When: You have a fragment of existing code in some function that needs to be called from another function.

이유: 해당 코드를 복사하여 붙여넣을 수 있지만 중복이 발생합니다.Why: You could copy/paste that code, but that would lead to duplication. 더 나은 솔루션은 다른 함수에서 자유롭게 호출할 수 있는 고유한 함수로 해당 조각을 리팩터링하는 것입니다.A better solution is to refactor that fragment into its own function which can be called freely by any other function.

방법:How:

  1. 추출할 코드를 강조 표시합니다.Highlight the code to be extracted:

    강조 표시된 코드

  2. 다음 작업 중 하나를 수행합니다.Next, do one of the following:

    • 키보드Keyboard
      • Ctrl+R을 누른 다음 Ctrl+M을 누릅니다.Press Ctrl+R, then Ctrl+M. 바로 가기 키는 선택한 프로필에 따라 다를 수 있습니다.(Note that your keyboard shortcut may be different based on which profile you've selected.)
      • Ctrl+. 를 눌러Press Ctrl+. 빠른 작업 및 리팩터링 메뉴를 트리거하고 상황에 맞는 메뉴에서 함수 추출(실험적) 을 선택합니다.to trigger the Quick Actions and Refactorings menu and select Extract Function (Experimental) from the context menu.
    • 마우스Mouse
      • 편집 > 리팩터링 > 함수 추출(실험적) 을 선택합니다.Select Edit > Refactor > Extract Function (Experimental).
      • 코드를 마우스 오른쪽 단추로 클릭하고, 빠른 작업 및 리팩터링 메뉴를 선택하고, 상황에 맞는 메뉴에서 함수 추출(실험적) 을 선택합니다.Right-click the code, select the Quick Actions and Refactorings menu and select Extract Function (Experimental) from the context menu.
      • 왼쪽 여백에 나타나는 전구 아이콘을 클릭하고, 상황에 맞는 메뉴에서 함수 추출(실험적) 을 선택합니다.Click the Lightbulb icon which appears in the left margin and select Extract Function (Experimental) from the context menu.
  3. 함수/메서드 추출(실험적) 창에서 새로운 함수 이름을 입력하고, 코드를 배치하려는 위치를 선택하고, 확인 단추를 클릭합니다.In the Extract Function/Method (Experimental) window, enter the new function name, select where you want the code to be placed, and click the OK button.

    함수 추출 대화 상자

  4. 새 함수는 사용자가 지정한 위치에서 생성되고, 함수는 해당하는 헤더 파일에 프로토타입으로 지정되고, 원본 코드는 해당 함수를 호출하도록 변경됩니다.The new function will be created where you specified, a function prototype in the corresponding header file, and the original code will be changed to call that function.

    함수 추출 결과