본문 바로가기
IT.인터넷

Xcode 프로젝트 소스 라인 수 구하기 및 메서드 수 구하는 스크립트.

by Mr-후 2017. 11. 9.
반응형

Xcode 프로젝트 소스 라인 수 구하기 및 메서드 수 구하는 스크립트.



어제 저녁, 퇴근시간이 다 되어 갈 무렵 갑자기 회사 프로젝트들의 소스 라인 수를 조사하라는 엄명이 떨어졌다. 뭔 짓인지...


예전 소프트웨어 공학이나 SI 프로젝트에서 코드 라인수를 가지고 투입 인원 대비 산출물 관리를 하는 방식이 있었다는 소리만 들었는데 뚱단지 같이 왜 갑자기 소스 코드 라인 수가 필요해진 걸까? 


고도화를 위한 사전 업무 파악의 차원이라는데 도무지 이해가 가질 않는다. 

코드의 질과 상태를 알지도 못하면서 단지 코드 라인 수와 메서드의 숫자로 고도화 사전 업부 파악이 가능한지 나로서는 도통 이해가 가질 않는다. 


여튼 인터넷 검색을 해서 보니, 여러 많은 분들이 코드라인 수 세는 스크립트와 툴들을 소개 해 둔 것들이 있어 나름 정리를 해보았으며, 후배 녀석의 프로그래밍 능력을 통해 정확하지는 않지만 정규표현식을 통해 구현 클래스 파일내에 선언된 Objective-C 메서드(멤버, 클래스)들의 카운트를 구하는 스크립트까지 도움을 받아 깔끔하게 정리해서 리포트를 제출했다. 




제각기 기능의 차이는 조금씩 있겠지만 3 항목은 그진 동일한 기능을 하는 프로젝트 들이다. 


2012년도에 작성된  Native App의 경우는 십만줄에 가까운 코드를 보유하고 있으며 6천개가 넘는 메서드가 있다.

네이티브 앱의 경량화를 통해 정적 라이브러리 형태로 개선 InApp Module의 경우도 약 3만줄의 코드가 있는 걸 볼 수 있다. 


올해, 2017년 8월부터 시작된 InApp Module 의 Framework작업과 고도화를 통해 개선된 결과는 6천 라인으로 줄어 들었으면 872개의 메서드를 가지는 프레임워크 가 탄생하게 되었다. 


요청사항이 있어 정리를 해 본 것인데 굉장히 뿌듯한 느낌이다. 엉청난 압축이 있었고 불필요한 코드와 변수, 상수를 제거 하면서 가독성 높은 코드 작업을 지향했던 결과 인듯 하다. 




이 자료를 만드는데 사용한 툴은 윈도우 프로그램인 LineCounter라는 실행파일이다. 

해당 파일과 사용법은 다음 블로그를 참고 하면 된다. 


소스 라인 카운트 (http://shaeod.tistory.com/370)


그외 맥북에서 실행해서 얻을 수 있는 스크립트는 다음 블로그에 잘 정리가 되어 있다. 


맥에서 작성한 코드 라인수 보기 (http://devsc.tistory.com/57) 



구현된 클래스에서 메서드의 수를 찾는 스크립트는 후배 녀석이 짜준 코드를 응용하면 된다. 


find . \( -iname \*.m -o -iname \*.mm \) -exec grep -c '^[+-]\s\{0,\}(' '{}' \+ | awk 'BEGIN {FS=":"} {sum += $2} END { print "sum="sum }'



확장자가 *.m , *.mm 파일을 대상으로 구현된 메서드 -(, +( 에 대응되는 수를 찾아 결과를 출력하는 스크립트, 또 쓰일 일이 있을지는 모르겠지만, 정리를 해 두는 것이 좋을 것 같아 올려 둔다. 





반응형