์ด๊ฒ์ Ubuntu Online, Fedora Online, Windows ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ ๋๋ MAC OS ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ์ ๊ฐ์ ์ฌ๋ฌ ๋ฌด๋ฃ ์จ๋ผ์ธ ์ํฌ์คํ ์ด์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ OnWorks ๋ฌด๋ฃ ํธ์คํ ์ ๊ณต์ ์ฒด์์ ์คํํ ์ ์๋ count_unknown_ext ๋ช ๋ น์ ๋๋ค.
ํ๋ก๊ทธ๋จ:
์ด๋ฆ
sloccount - ์์ค ์ฝ๋ ์ค ์(SLOC)
๊ฐ์
์ฌ๋ก์นด์ดํธ [--๋ฒ์ญ] [--์บ์] [--์ถ๊ฐ] [ --datadir ์๋ฐฐ ๊ท์น์ ] [--๋ฐ๋ฅด๋ค]
[--์ค๋ณต] [--๊ต์ฐจ] [--autogen] [--๋ค์ค ํ๋ก์ ํธ] [--ํ์ผ ์] [--๋์]
[--์ธ๋ถ] [ --๋ ธ๋ ฅ F E ] [ --์ผ์ F E ] [ --์ฌ๋ ๋น์ฉ ๋น์ฉ ] [ --๊ฐ์ ๋น
๊ฐ์ ๋น ] [ --addlang ์ธ์ด ] [ --addlangall ] [--] ๋๋ ํ ๋ฆฌ
๊ธฐ์
sloccount๋ ์ ์์์ ํฌํจ๋ ๋ฌผ๋ฆฌ์ ์์ค ์ฝ๋ ์ค(SLOC)์ ๊ณ์ฐํฉ๋๋ค.
์ง์ ๋ ๋๋ ํ ๋ฆฌ ์ธํธ. ์ด๋ค ํ์ผ์ด ์์ค ์ฝ๋์ธ์ง ์๋์ผ๋ก ๊ฒฐ์ ํฉ๋๋ค.
๊ฐ ํ์ผ์ ์ฌ์ฉ๋๋ ์ปดํจํฐ ์ธ์ด๋ฅผ ์๋์ผ๋ก ๊ฒฐ์ ํฉ๋๋ค. ์ ์ํด
๊ธฐ๋ณธ๊ฐ์ SLOC ๊ฒฐ๊ณผ๋ฅผ ์์ฝํ๊ณ ๋ค์ํ ์ถ์ ๊ฐ(์: ๋ ธ๋ ฅ ๋ฐ
๊ฐ๋ฐ ๋น์ฉ), ๊ทธ๋ฌ๋ ๊ทธ ์ถ๋ ฅ์ ๋ค์ํ ์ต์ ์ ์ํด ์ ์ด๋ ์ ์์ต๋๋ค.
sloccount์ ๋ ์ด์์ ๋๋ ํ ๋ฆฌ ๋ชฉ๋ก์ ์ ๊ณตํ๋ฉด ์นด์ดํธ๊ฐ ๋ถํ ๋ฉ๋๋ค.
๊ทธ ๋ชฉ๋ก์ ๋ฐ๋ฅด๋ฉด. ํ ๊ฐ์ง ์ค์ํ ์ ํ ์ฌํญ์ด ์์ต๋๋ค.
๋งค๊ฐ๋ณ์๋ก ์ง์ ๋ ๋๋ ํ ๋ฆฌ๋ ์๋ก ๋ฌ๋ผ์ผ ํฉ๋๋ค. ์ด๋ฌํ ์ด๋ฆ์ ๊ทธ๋ฃนํ์ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
์์ฝ ์ ๋ณด. ๋ฐ๋ผ์ "sloccount /usr/src/hello /usr/local/src/hello"๋ฅผ ์คํํ ์ ์์ต๋๋ค.
์ด ์ ํ์ sloccount์ ๋งค๊ฐ๋ณ์์๋ง ์ ์ฉ๋ฉ๋๋ค.
์ต์์ ๋๋ ํ ๋ฆฌ๋ ๋์ผํ ๊ธฐ๋ณธ ์ด๋ฆ์ ๊ฐ์ง ์ ์์ต๋๋ค.
sloccount์ ๋จ์ผ ๋๋ ํ ๋ฆฌ๋ง ์ ๊ณตํ๋ฉด sloccount๋ ์๋์ผ๋ก
๋ณด๊ณ ๋ชฉ์ ์ ์ํ ํฉ๋ฆฌ์ ์ธ ๋ถ์(์ ์ฉํ ๋ณด๊ณ ์ ์์ฑ) ์
์ด ๊ฒฝ์ฐ ๋๋ ํ ๋ฆฌ์ ๋ ๊ฐ ์ด์์ ํ์ ๋๋ ํ ๋ฆฌ๊ฐ ์์ผ๋ฉด ํด๋น ํ์ ๋๋ ํ ๋ฆฌ
๊ณ ์ฅ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ๋จ์ผ ๋๋ ํ ๋ฆฌ์ ํ์ผ๋ฟ๋ง ์๋๋ผ
๋๋ ํ ๋ฆฌ(๋๋ sloccount์ ๋งค๊ฐ๋ณ์๋ก ์ผ๋ถ ํ์ผ์ ์ ๊ณตํ๋ ๊ฒฝ์ฐ), ํด๋น ํ์ผ์
๋ค๋ฅธ ๋ด์ฉ๊ณผ ๊ตฌ๋ณํ ์ ์๋๋ก "top_dir" ๋๋ ํ ๋ฆฌ์ ํ ๋น๋ฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก "src"๋ผ๋ ํ์ ๋๋ ํฐ๋ฆฌ๊ฐ ์์ผ๋ฉด ํด๋น ํ์ ๋๋ ํฐ๋ฆฌ๊ฐ ๋ค์ ์์๋ฉ๋๋ค.
"src_" ์ ๋์ฌ๊ฐ ๋ถ์ ๋ชจ๋ ์ถ๊ฐ ํ์ ๋๋ ํ ๋ฆฌ์ ํจ๊ป ๋ค์ด๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋๋ ํ ๋ฆฌ "X"๊ฐ
ํ์ ๋๋ ํ ๋ฆฌ "modules"๋ฅผ ํฌํจํ๋ "src" ํ์ ๋๋ ํ ๋ฆฌ๊ฐ ์๋ ๊ฒฝ์ฐ sloccount๋ ๋ค์์ ๋ณด๊ณ ํฉ๋๋ค.
"src_modules"์ ๋ํ ๋ณ๋์ ์นด์ดํธ.
sloccount๋ ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฌํ ๋๋ ํ ๋ฆฌ์ ๋ชจ๋ ํ์ ํญ๋ชฉ์ ๊ณ ๋ คํฉ๋๋ค.
๊ทธ๋ ์ง ์์ผ๋ฉด ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋ฌด์ํฉ๋๋ค.
sloccount๋ "SLOCCount"๋ผ๋ ๋๊ตฌ ํจํค์ง์ ์ผ๋ฐ์ ์ธ ํ๋ฐํธ ์๋์ ๋๋ค. ์ฐธ๊ณ
์ ์ฒด ํจํค์ง์ ์ด๋ฆ์ ๋๋ฌธ์์ด๊ณ ์ด ํ๋ฐํธ ์๋ ํ๋ก๊ทธ๋จ์ ์ด๋ฆ์
ํ์ง ์์ต๋๋ค.
sloccount๋ ์ผ๋ฐ์ ์ผ๋ก ์ผ์ ์๊ฐ, ๋ ธ๋ ฅ ๋ฐ ๋น์ฉ์ ์ถ์ ์น๋ฅผ ๋ณด๊ณ ํฉ๋๋ค.
๋จ์ผ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ํ์ฑ ๊ฐ๋ฐ์์ ํ๊ท ์๋ ์ถ์ ํฉ๋๋ค. ์ด๊ฒ๋ค์
๋จ์ง ์ถ์ ์น์ผ ๋ฟ์ด๋ฉฐ ๋์ ์๊ฒจ์ ธ ์์ง ์์ต๋๋ค. ๊ฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋งค๊ฐ๋ณ์๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
๊ฒฌ์ .
์ต์
--๋ฒ์ญ SLOCCount์ ๋ฒ์ ๋ฒํธ๋ฅผ ๋ณด๊ณ ํ๊ณ ์ฆ์ ์ข ๋ฃํฉ๋๋ค. ์ด ์ต์
๋ค๋ฅธ ์ต์ ๊ณผ ์ ์ฉํ๊ฒ ๊ฒฐํฉํ ์ ์์ต๋๋ค.
--์บ์ ๋ค์ ๊ณ์ฐํ์ง ๋ง์ญ์์ค. ๋์ ์ด์ ์คํ์์ ์บ์๋ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉํ์ญ์์ค.
--cached ๋๋ --append ์ต์ ์ด ์์ผ๋ฉด sloccount๋ ์๋์ผ๋ก
๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ ๋ค์ ๋ง๋ญ๋๋ค.
--์ถ๊ฐ ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ์์ ์ด์ ๊ณ์ฐ์ ์ ๊ฑฐํ์ง ๋ง์ญ์์ค. ๋์ ์ถ๊ฐ
๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ์ ํ์ฌ ๋ด์ฉ์ ๋ํ ๋ถ์.
--datadir ์๋ฐฐ ๊ท์น์
์ง์ ๋ ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ์ ์บ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ์ฌ์ฉํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์
"~/.slocdata".
--๋ฐ๋ฅด๋ค ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋ฐ๋ฅด์ญ์์ค.
--์ค๋ณต
๋ชจ๋ ์ค๋ณต์ ๊ณ์ฐํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ์ผ์ ๋ด์ฉ์ด ๋์ผํ ๊ฒฝ์ฐ(๊ฒฐ์ ๋ ๋๋ก
MD5 ํด์ ๊ฐ ์ฌ์ฉ), ํ๋๋ง ๊ณ์ฐ๋ฉ๋๋ค.
--๊ต์ฐจ ๋ถ๋ฅ์ ๋ค๋ฅธ ๋ถ๋ถ์์ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ์ค๋ณต์ ๊ณ์ฐํฉ๋๋ค. ๋ฐ๋ผ์,
์ต์์ ๋๋ ํ ๋ฆฌ์ ๋ค์ํ ํ๋ก์ ํธ๊ฐ ํฌํจ๋์ด ์๊ณ ์ํ๋ ๊ฒฝ์ฐ
๊ฐ ํ๋ก์ ํธ์์ ๊ณ์ฐํ ๋ค๋ฅธ ํ๋ก์ ํธ์ ์ค๋ณต ํญ๋ชฉ์ ์ ํํ๋ ค๋ฉด ์ด ์ต์ ์ ์ ํํ์ญ์์ค.
--autogen ์๋์ผ๋ก ์์ฑ๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ ์์ค ์ฝ๋ ํ์ผ์ ๊ณ์ฐํฉ๋๋ค. ๋ณดํต
์ด๋ค์ ์ ์ธ๋ฉ๋๋ค.
--๋ค์ค ํ๋ก์ ํธ
๋ค๋ฅธ ๋๋ ํ ๋ฆฌ๋ ๋ค๋ฅธ ํ๋ก์ ํธ๋ฅผ ๋ํ๋ ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ทธ๊ฒ์
๋ชจ๋ ์์ค ์ฝ๋๊ฐ ๋จ์ผ ํ๋ก์ ํธ์ ์ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์ด๊ฒ์ํ์ง ์์ต๋๋ค
์ด ํ์ผ ์ ๋๋ SLOC ๊ฐ์ ๋ณ๊ฒฝํ์ง๋ง ๋ ธ๋ ฅ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
๋ฐ ์ผ์ ๊ฒฌ์ . ์ด ์ต์ ์ด ์ฃผ์ด์ง๋ฉด ๋ ธ๋ ฅ์ ๋ณ๋๋ก ๊ณ์ฐ๋ฉ๋๋ค.
๊ฐ ํ๋ก์ ํธ(๊ทธ๋ฆฌ๊ณ ํฉ์ฐ), ์ผ์ ์ ์์ ์ผ์ ์ ๋๋ค.
๊ฐ์ฅ ํฐ ํ๋ก์ ํธ.
--ํ์ผ ์ SLOC ๋์ ํ์ผ ์๋ฅผ ํ์ํฉ๋๋ค.
--๋์ "์์ด๋"(ํญ์ผ๋ก ๊ตฌ๋ถ) ํ์์ผ๋ก ํ์ํฉ๋๋ค.
--์ธ๋ถ ์ธ๋ถ ์ ๋ณด, ์ฆ ๋ชจ๋ ์์ค ์ฝ๋ ํ์ผ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ํ์ํฉ๋๋ค.
--๋ ธ๋ ฅ F E
๋ ธ๋ ฅ ๋ชจ๋ธ์ ๋ํ ์์ธ๊ณผ ์ง์๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. ๋ ธ๋ ฅ(์ง์ -
๊ฐ์)์ F*(SLOC/1000)^E๋ก ๊ณ์ฐ๋ฉ๋๋ค.
--์ผ์ F E
์ผ์ ๋ชจํ์ ๋ํ ์์ธ๊ณผ ์ง์๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. ์ผ์ (๊ฐ์ ๋จ์)
F*(๋ ธ๋ ฅ)^E๋ก ๊ณ์ฐ๋ฉ๋๋ค.
--์ฌ๋ ๋น์ฉ ๋น์ฉ
ํ๊ท ์ฐ๋ด์ ๋ค์์ผ๋ก ๋ณ๊ฒฝ ๋น์ฉ.
--๊ฐ์ ๋น ๊ฐ์ ๋น
์ค๋ฒํค๋ ๊ฐ์ ๋ค์์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. ๊ฐ์ ๋น. ์์ ๋น์ฉ์ ๋ ธ๋ ฅ์ผ๋ก ๊ณ์ฐ *
์ธ๊ฑด๋น * ๊ฐ์ ๋น.
--addlang ์ธ์ด
๋ณด๊ณ ํ ``์ธ์ด''๋ก ๊ธฐ๋ณธ์ ์ผ๋ก ๊ณ ๋ ค๋์ง ์๋ ์ธ์ด๋ฅผ ์ถ๊ฐํ์ญ์์ค.
ํ์ฌ ์ธ์ด์ ๋ํ ์ ์ผํ ์ ํจํ ๊ฐ์ "makefile", "sql" ๋ฐ
"html". ์ด๋ฌํ ํ์ผ์ ์ผ๋ฐ์ ์ผ๋ก SLOC ์์ ํฌํจ๋์ง ์์ง๋ง
SLOC๋ ๋ด๋ถ์ ์ผ๋ก ๊ณ์ฐ๋๋ฉฐ ํ์ผ ์์ ํ์๋ฉ๋๋ค.
์ด๋ฌํ ์ธ์ด๋ฅผ ๋ ๊ฐ ์ด์ ํฌํจํ๋ ค๋ฉด --addlang์ ์ ๋ฌํ์ฌ ์ํํ์ญ์์ค.
๋ ๋ฒ ์ด์(์: --addlang makefile --addlang sql.
--addlangall
์ผ๋ฐ์ ์ผ๋ก ์ต์ข ๋ณด๊ณ ์์ ํฌํจ๋์ง ์๋ ๋ชจ๋ ์ธ์ด๋ฅผ ์ถ๊ฐํฉ๋๋ค.
๋ ธํธ
์ ๋์ค ๊ณ์ด ์ต์ ์ ์ฌ์ฉํ๋ ๋ค๋ฅธ ๋ง์ ํ๋ก๊ทธ๋จ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ด๋ฆ์ด
๋์(``-'')๋ ์ต์ ์ผ๋ก ์๋ชป ํด์๋ ์ ์์ต๋๋ค. ๋ถ์ํ ๋๋ ํ ๋ฆฌ๊ฐ
๋์๋ก ์์ํ๊ณ ์ด์ค ๋์(``- -'')๋ฅผ ์ฌ์ฉํ์ฌ ์ต์ ๋ชฉ๋ก์ ๋์ ๋ํ๋ ๋๋ค.
๋๋ ํ ๋ฆฌ๋ฅผ ๋์ดํ๊ธฐ ์ ์.
onworks.net ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ์จ๋ผ์ธ์ผ๋ก count_unknown_ext ์ฌ์ฉ