C++ 코드의 스타일을 자동으로 정리하고 형식을 맞추기 위해, Python에서 yapf
처럼 C++에도 비슷한 도구를 사용할 수 있습니다. 가장 널리 사용되는 도구는 clang-format
이며, 이 도구는 C++, C, 그리고 Objective-C 코드의 형식을 자동으로 맞춰줍니다. clang-format
은 Google Style을 포함한 다양한 코드 스타일을 지원합니다. 다음은 CLI(Command Line Interface) 명령어를 통해 C++ 코드에 Google 스타일을 적용하는 방법입니다.
clang-format
설치하기먼저 clang-format
을 설치해야 합니다. 아래의 명령어로 설치할 수 있습니다:
sudo apt install clang-format
brew install clang-format
choco
를 통해 설치할 수 있습니다.choco install llvm
clang-format
사용하여 C++ 코드 정리하기clang-format
을 사용하여 C++ 코드를 Google 스타일로 정리하는 명령어는 다음과 같습니다:
clang-format -i -style=Google your_code.cpp
clang-format
: 코드 스타일을 자동으로 정리해주는 도구입니다.-i
: 파일을 직접 수정(in-place) 합니다. 즉, 코드를 정리한 뒤 파일에 저장합니다.-style=Google
: Google 코드 스타일을 사용하여 형식을 맞춥니다. Google 스타일은 명확한 가독성을 유지하는데 집중하는 방식으로, C++에서 널리 사용됩니다.your_code.cpp
: 스타일을 맞추려는 C++ 파일 이름입니다.여러 파일에 동일한 명령어를 적용하고 싶다면, 와일드카드를 사용할 수 있습니다. 예를 들어, 현재 디렉터리의 모든 .cpp
와 .h
파일에 Google 스타일을 적용하려면:
clang-format -i -style=Google *.cpp *.h
.clang-format
설정 파일을 통한 스타일 적용프로젝트 전체에 동일한 스타일을 유지하고 싶다면, .clang-format
이라는 설정 파일을 프로젝트 디렉터리에 만들어 사용할 수 있습니다. 이 파일에 스타일을 정의해 두면, 여러 명령을 반복하지 않아도 동일한 스타일로 코드를 형식화할 수 있습니다.
.clang-format
파일 생성하기clang-format -style=Google -dump-config > .clang-format
.clang-format
파일을 생성하며, 파일 내에는 Google 스타일의 기본 설정이 저장됩니다..clang-format
파일을 직접 수정하여 필요한 설정을 추가하거나 변경할 수 있습니다..clang-format
설정 파일을 기반으로 C++ 코드를 정리하려면 다음 명령어를 사용합니다:
clang-format -i your_code.cpp
이 경우 -style
옵션을 생략하면, clang-format
은 디렉터리에 있는 .clang-format
파일을 사용해 형식을 정리합니다.
example.cpp
라는 파일을 Google 스타일로 정리하려면:
clang-format -i -style=Google example.cpp
clang-format
은 Google 스타일 외에도 여러 스타일을 지원합니다. 예를 들어:
-style=LLVM
-style=Microsoft
-style=Chromium
-style=Mozilla
-style=WebKit
이 외에도 사용자 정의 스타일을 .clang-format
파일에 설정할 수도 있습니다.
clang-format
은 C++ 코드 스타일을 자동으로 정리하는 도구입니다.clang-format -i -style=Google your_code.cpp
명령어를 사용하면 됩니다..clang-format
파일을 사용하면 프로젝트 전반에 동일한 코드 스타일을 쉽게 유지할 수 있습니다.이 방법을 사용하면 Python의 yapf
처럼 C++ 코드도 자동으로 형식을 맞추고, 일관된 스타일을 유지할 수 있습니다.
특정 폴더 디렉토리의 모든 하위 디렉토리에 있는 .cpp
및 .h
파일들에 일괄적으로 clang-format
을 적용하려면 재귀적 탐색을 통해 모든 파일을 찾아 clang-format
을 실행해야 합니다. 이를 find
명령어와 함께 사용하여 쉽게 수행할 수 있습니다.
find
와 clang-format
사용하기 (Linux/MacOS)find
명령어를 사용하여 특정 디렉토리 하위의 모든 .cpp
와 .h
파일을 찾아 clang-format
을 적용할 수 있습니다.
find /path/to/your/directory -name "*.cpp" -o -name "*.h" | xargs clang-format -i -style=Google
find /path/to/your/directory
: /path/to/your/directory
경로에서 파일을 찾는 명령어입니다. 하위 디렉토리까지 재귀적으로 탐색합니다.-name "*.cpp" -o -name "*.h"
: 확장자가 .cpp
이거나 .h
인 파일을 찾습니다.-o
: 논리 OR 연산자로, .cpp
또는 .h
파일을 모두 찾습니다.| xargs clang-format -i -style=Google
: 찾은 파일 목록을 xargs
를 사용해 clang-format
에 전달합니다.-i
: 파일을 직접 수정(in-place) 합니다.-style=Google
: Google 스타일로 형식을 맞춥니다.예를 들어, 현재 디렉토리와 하위 디렉토리 내의 모든 .cpp
와 .h
파일에 Google 스타일을 적용하려면 다음과 같이 실행합니다:
find . -name "*.cpp" -o -name "*.h" | xargs clang-format -i -style=Google
이 명령어는 현재 디렉토리(.
)와 모든 하위 디렉토리에서 .cpp
와 .h
파일을 찾고, 그 파일들을 clang-format
으로 일괄적으로 정리합니다.
find
와 -exec
사용하기 (대안)xargs
대신 -exec
옵션을 사용할 수도 있습니다. 이렇게 하면 각 파일에 대해 한 번씩 명령을 실행합니다.
find /path/to/your/directory -name "*.cpp" -o -name "*.h" -exec clang-format -i -style=Google {} +
-exec
: 각 파일에 대해 특정 명령을 실행합니다.clang-format -i -style=Google {}
: {}
는 find
로 찾은 파일의 경로를 나타내며, 각 파일에 대해 clang-format
을 실행합니다.+
: 한 번에 여러 파일에 대해 명령을 실행하도록 합니다.Windows 환경에서는 PowerShell
이나 Git Bash와 같은 Bash 환경을 통해 비슷하게 사용할 수 있습니다.
PowerShell에서는 다음과 같이 재귀적으로 파일을 찾고 clang-format
을 적용할 수 있습니다:
Get-ChildItem -Recurse -Include *.cpp, *.h | ForEach-Object { clang-format -i -style=Google $_.FullName }
Get-ChildItem -Recurse
: 현재 디렉토리와 모든 하위 디렉토리에서 파일을 검색합니다.-Include *.cpp, *.h
: .cpp
와 .h
파일을 검색합니다.ForEach-Object { clang-format -i -style=Google $_.FullName }
: 각 파일에 대해 clang-format
을 실행합니다.find
명령어를 사용해 모든 .cpp
와 .h
파일을 찾아 clang-format
으로 형식을 정리합니다.이 명령어들을 사용하면 디렉토리 전체에 있는 .cpp
와 .h
파일들에 대해 일관된 코드 스타일을 유지할 수 있습니다.