웹사이트 검색

cloc - 다양한 프로그래밍 언어로 코드 줄 계산


다양한 프로젝트를 진행하는 동안 때로는 진행 상황에 대한 보고서나 통계를 제공해야 하거나 단순히 코드의 가치를 계산해야 할 수도 있습니다.

"cloc – 코드 줄 계산"이라는 간단하면서도 강력한 도구가 있습니다. 이 도구를 사용하면 코드의 모든 수를 계산하고 주석과 빈 줄을 동시에 제외할 수 있습니다.

모든 주요 Linux 배포판에서 사용할 수 있으며 여러 프로그래밍 언어와 파일 확장자를 지원하며 사용하기 위한 특정 요구 사항이 없습니다.

이 튜토리얼에서는 Linux 시스템에 cloc을 설치하고 사용하는 방법을 배우게 됩니다.

Linux 시스템에서 Cloc을 설치하고 사용하는 방법

cloc 설치는 쉽고 간단합니다. 아래에서는 관련 패키지 관리자를 사용하여 다양한 운영 체제에 cloc를 설치하는 방법을 볼 수 있습니다.

sudo apt install cloc                  # Debian, Ubuntu
sudo yum install cloc                  # Red Hat, Fedora
sudo dnf install cloc                  # Fedora 22 or later
sudo pacman -S cloc                    # Arch
sudo emerge -av dev-util/cloc          # Gentoo https://packages.gentoo.org/packages/dev-util/cloc
sudo apk add cloc                      # Alpine Linux
sudo pkg install cloc                  # FreeBSD
sudo port install cloc                 # Mac OS X with MacPorts
brew install cloc                      # Mac OS X with Homebrew
npm install -g cloc                    # https://www.npmjs.com/package/cloc

Cloc은 특정 파일이나 디렉토리 내의 여러 파일에서 줄 수를 계산하는 데 사용할 수 있습니다. cloc을 사용하려면 cloc 뒤에 검사하려는 파일이나 디렉터리를 입력하면 됩니다.

다음은 bash 파일의 예입니다. 문제의 파일에는 bash에 다음 코드가 포함되어 있습니다.

cat bash_script.sh

이제 cloc을 실행해 보겠습니다.

cloc bash_script.sh

보시다시피 파일 수, 빈 줄, 주석 및 코드 줄 수를 계산했습니다.

cloc의 또 다른 멋진 기능은 압축 파일에도 사용할 수 있다는 것입니다. 예를 들어, 최신 WordPress 아카이브를 다운로드하고 cloc을 실행했습니다.

cloc latest.tar.gz

결과는 다음과 같습니다.

다양한 종류의 코드를 인식하고 언어별로 통계를 구분해 놓은 것을 확인할 수 있습니다.

디렉터리에 있는 여러 파일에 대한 보고서를 받아야 하는 경우 “--by-file ” 옵션을 사용하면 각 파일의 줄 수를 계산하고 그에 대한 보고서를 제공할 수 있습니다. 파일이 많고 코드가 수천 줄에 달하는 프로젝트의 경우 시간이 걸릴 수 있습니다.

구문은 다음과 같습니다.

cloc --by-file <directory>

cloc의 도움말은 쉽게 읽고 이해할 수 있지만 일부 사용자가 유용하다고 생각할 수 있는 cloc과 함께 사용할 수 있는 몇 가지 추가 옵션을 포함하겠습니다.

  • --diff set1set2 소스 파일 간의 코드 차이를 계산합니다. 입력은 파일과 디렉터리의 혼합일 수 있습니다.
  • --git – 입력이 파일 또는 디렉터리 이름으로 처음 식별되지 않은 경우 입력이 git 대상으로 인식되도록 강제합니다.
  • --ignore-whitespace--diff와 파일을 비교할 때 가로 공백을 무시합니다.
  • --max-file-size= – 지정된 MB보다 큰 파일을 건너뛰려는 경우.
  • --exclude-dir=, – 쉼표로 구분된 특정 디렉터리를 제외합니다.
  • --exclude-ext=, – 지정된 파일 확장자를 제외합니다.
  • --csv – 결과를 CSV 파일 형식으로 내보냅니다.
  • --csv-delimiter= 문자를 구분 기호로 사용합니다.
  • --out= – 결과를 <file>에 저장합니다.
  • --quiet – 모든 정보 메시지를 표시하지 않고 최종 보고서만 표시합니다.
  • --sql= – SQLite와 같은 데이터베이스 프로그램에서 읽을 수 있는 create 및 insert 문으로 결과를 작성합니다.
결론

Cloc은 확실히 가지고 있으면 좋은 약간 유용한 유틸리티입니다. 매일 사용하지는 않지만 보고서를 생성해야 하거나 프로젝트가 어떻게 진행되고 있는지 궁금할 때 도움이 될 수 있습니다.