개요
개발을 하다 보면 내가 얼마나 코딩을 했는지, 혹은 프로젝트의 코드 줄 수가 얼마나 되는지 궁금하곤 합니다. 이 수로 나타낼 유의미한 지표는 크게 없지만, 그냥 호기심에 검색해보게 되었습니다. 그랬더니 Node.js 에는 cloc 이라는 패키지가 있다는 걸 발견했습니다.
적용과 결과
리눅스와 맥은 perl 이 내장되어 있으므로 설치할 필요는 없지만 윈도우는 별도로 설치를 해야 cloc을 이용할 수 있습니다. 윈도우 유저의 경우 Strawberry Perl 을 설치해주도록 합시다.
이제 cloc 을 global 하게 설치해줍니다.
npm install -g cloc
설치가 완료되면 가장 기본 형태의 명령어를 써봅시다.
cloc --vcs=git
공식 문서를 확인하면 사용할 수 있는 옵션이 굉장히 많습니다. package.json
에서 script
에 명령어를 추가해주면 다음 번에는 npm run cloc
으로 간단하게 이용할 수 있습니다. 저는 그 중에서 --not-match
옵션을 추가하여 package.json
, package-lock.json
, yarn.lock
파일을 제외하였습니다.
{
"name": "프로젝트 이름",
"기타등등": "기타등등",
"scripts": {
"cloc": "cloc --vcs=git --not-match-f=\"(yarn\\.lock|package\\.json|package\\-lock\\.json)\" ."
},
}
아래는 npm run cloc
한 결과입니다.
348 text files.
342 unique files.
56 files ignored.
3 errors:
Unable to read: "sopaseom/(중략...).markdown"
Unable to read: "sopaseom/(중략...).markdown"
Unable to read: "sopaseom/(중략...).markdown"
github.com/AlDanial/cloc v 1.86 T=1.25 s (261.3 files/s, 45512.7 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Vuejs Component 127 2018 4867 26712
JavaScript 139 1355 3972 15246
GraphQL 14 151 76 1000
SVG 14 4 29 337
Pug 9 35 19 299
Sass 4 59 91 235
JSON 8 0 0 140
Markdown 2 43 0 123
HTML 7 0 5 49
YAML 1 0 18 32
Dockerfile 1 20 3 23
Bourne Shell 1 0 0 5
-------------------------------------------------------------------------------
SUM: 327 3685 9080 44201
-------------------------------------------------------------------------------
에러가 나는 걸 보면 아마 한글명 파일은 못읽나 봅니다.
이렇게 스스로가 얼마나 코딩 노예인지를 알 수 있게 되었습니다! 축하합니다.