C++ 코드 리팩토링
Visual Studio Code의 C/C++ 확장은 런타임 동작을 변경하지 않고 코드 구조, 가독성 및 유지 관리성을 개선하는 데 도움이 되는 여러 리팩토링 기능을 제공합니다. 여기에는 메서드 추출 및 선언 및 정의 생성과 같은 기능이 포함됩니다.
선언 또는 정의 생성
C/C++ 확장이 이러한 항목을 자동으로 생성하도록 하여 함수 선언 또는 정의 생성을 간소화합니다. 이 기능은 멤버 함수, 클래스로서의 네임스페이스 및 템플릿에 적용됩니다.

함수 선언 또는 정의를 생성하려면 다음 중 하나를 수행하십시오.
- 클래스 함수 정의를 선택하고 코드 액션(전구 아이콘)을 선택한 다음 **선언 생성**을 선택합니다. 마찬가지로 정의를 생성하려면 함수 선언을 선택하고 코드 액션을 선택한 다음 **정의 생성**을 선택합니다.
- 함수 선언 또는 정의를 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 **정의/선언 생성**을 선택합니다. 코드에 따라 정의 또는 선언이 생성됩니다.
- 함수를 선택한 다음 **명령 팔레트**(⇧⌘P (Windows, Linux Ctrl+Shift+P))를 사용하고 **선언/정의 생성** 명령을 입력합니다. 코드에 따라 정의 또는 선언이 생성됩니다.
정의 및 선언이 생성되는 위치는 코드에 미리 설정한 패턴을 기반으로 합니다. 예를 들어 이전에 동일한 파일에 정의와 선언을 추가한 경우 확장은 새 항목도 해당 파일에 추가합니다. 함수 순서는 자동으로 유지됩니다.

원본 파일과 다른 파일에 선언 또는 정의를 정의한 경우 확장은 이전 규칙을 따릅니다. 예를 들어 이름이 일치하는 헤더 파일과 소스 파일의 경우 헤더 파일이 소스 파일에 포함되지 않았더라도 두 파일이 모두 식별됩니다. 이 경우 선언 또는 정의가 추가되면 해당 헤더 파일이 소스 파일에서 자동으로 참조됩니다.
그렇지 않은 경우 확장은 현재 파일과 이름이 일치하는 새 헤더 또는 소스 파일을 생성합니다. 이 새 파일에는 생성된 새 선언 또는 정의가 포함됩니다. 새 파일은 현재 파일에서 자동으로 참조됩니다.
템플릿의 경우 함수 템플릿이 헤더 파일에 선언되면 해당 함수 템플릿의 정의가 동일한 헤더 파일에 생성됩니다. 이는 클래스 템플릿의 비템플릿 멤버 함수에도 적용됩니다.
선언 또는 정의 복사
코드에 선언 또는 정의가 추가될 위치를 선택하려는 경우 **선언/정의 복사** 코드 액션을 사용할 수 있습니다. 이렇게 하면 코드에 직접 추가하는 대신 선언 또는 정의가 클립보드에 추가됩니다.
코드 액션을 호출하려면 빠른 수정 기능이 있는 함수를 선택한 다음 코드 액션(전구)을 선택하고 **'YourFunctionName'의 정의 복사** 또는 **'YourFunctionName'의 선언 복사**를 선택합니다.

메서드로 추출
메서드 추출 리팩토링 기능을 사용하면 코드 블록을 별도의 메서드로 추출하여 코드 가독성을 개선하고 중복을 줄이며 코드를 더 모듈화할 수 있습니다.
메서드를 추출하려면 추출하려는 C++ 코드를 선택하고 코드 액션(전구)을 선택한 다음 **함수로 추출**을 선택합니다. 또는 코드를 마우스 오른쪽 버튼으로 클릭하고 **리팩터 > 추출**을 선택하거나 키보드 명령(Windows의 경우 Ctrl + Shift + R, Ctrl + E)을 사용하여 자세한 정보를 얻습니다.
그런 다음 생성된 새 함수의 이름을 지정할 수 있습니다. 선택한 코드를 포함하는 새 함수는 현재 함수 위에 배치됩니다.

빠른 수정/코드 액션
C/C++ 확장은 코드 컨텍스트를 기반으로 C++ 코드를 수정하고 개선하는 방법에 대한 C/C++ 특정 제안을 제공합니다. 기호를 마우스로 가리키고 **빠른 수정** 링크를 선택하거나 코드 옆에 나타나는 코드 액션(전구)을 선택하여 이러한 제안을 볼 수 있습니다. 예를 들어 메서드로 추출할 수 있는 코드 섹션이 있는 경우 전구 아이콘을 선택하면 메서드로 추출할 수 있습니다. 위에서 언급한 기능 외에도 C/C++ 확장은 다음과 같은 상황에서 빠른 수정/코드 액션을 제공합니다.
누락된 헤더 파일 추가
C++ 코드에 알 수 없는 기호가 있고 C/C++ 확장이 작업 영역에서 올바른 헤더 파일을 식별하는 경우 이제 빠른 수정 기능이 제공됩니다. 빠른 수정을 선택하면 필요한 헤더 파일 포함이 현재 C++ 파일의 맨 위에 추가됩니다.

다음 단계
자세한 내용은 계속 읽어보세요.
- C++ 코드 탐색
- 기본 편집 - 강력한 VS Code 편집기에 대해 알아보세요.
- 작업 - 프로젝트 빌드 등을 위해 작업을 사용하세요.
- 디버깅 - 프로젝트와 함께 디버거를 사용하는 방법을 알아보세요.
다른 질문이 있거나 문제가 발생하는 경우 GitHub에 이슈를 제출하십시오. 문제를 진단하는 데 도움이 되도록 확장에서 로깅 정보를 제공하라는 요청을 받을 수 있습니다. 확장 로그 제공에 대한 도움말은 C/C++ 확장 로깅을 참조하십시오.