안녕하세요. 

저는 iOS 개발을 하다보니깐 XCode를 가지고 개발을 합니다. 

회사 프로젝트라던지, 개인 프로젝트라던지 가끔 엉뚱하게도 "내가 짠 코드는 과연 몇줄일까??" 라는 생각을 하게됩니다.. ㅎㅎ (저만 그런건가요,,)


일단 터미널을 열고 라인 수를 보고자하는 프로젝트 폴더로 cd 명령어를 쳐서 들어갑니다.

cd를 치시고 한칸 뛴다음 폴더를 끌어 넣고 엔터를 치면 폴더 디렉토리로 이동하게 됩니다. (저는 잘 몰라서 일일히 찾아서 들어갔습니다.)


이제 그런후 밑에 명령어를 복사 붙여 넣기 하시면 됩니다.


Swift 만 사용 하셨다면

1
find . \( -iname \*.swift \) -exec wc -l '{}' \+
cs


Objective-C만 사용 하셨다면

1
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h \) -exec wc -l '{}' \+
cs


Swift와 Objective-C를 혼용해서 사용 하셨다면

1
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h -o -iname \*.swift \) -exec wc -l '{}' \+
cs


그리고 마지막으로 

Swift + Objective-C + C + C++

1
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.c -o -iname \*.cc -o -iname \*.h -o -iname \*.hh -o -iname \*.hpp -o -iname \*.cpp -o -iname \*.swift \) -exec wc -l '{}' \+
cs


이렇게 명령어를 치시면 프로젝트에 포함되어 있는 파일 목록들이 나열되면서 마지막에 total 값으로 라인수가 나옵니다.


제가 Project9팀에 있을때 했던 프로젝트 결과값입니다. 3만5천 줄로 나오네요. 

아무래도 Pod나 framework도 포함 되다 보니깐 조금 과장되서 나오는 것도 없진 않지만 그래도 가끔 얼마나 길까 하면서 

알아볼때 유용하게 사용 할 수 있는것 같습니다.



출처 

http://stackoverflow.com/questions/7224569



개발을 하다보면 모르는 부분이나 막히는 부분이 생기면 구글 검색을 통해 많은 사이트등을 들어갑니다.

대표적인 사이트로는 Stack Overflow(여기는 말이 필요없음,, 다만 영어일뿐)가 있고 국내외 블로그, 각 언어의 developer site등 많은 곳을 들어갑니다.

블로그를 들어가보면 텍스트로 설명을 써주고 코드를 보여주는 부분이 있습니다. 만약 일반 설명글과 코드부분의 형식이 같다면 정말 헷갈리는 경우 많습니다.

그래서 대부분의 블로그를 보면 설명과 코드부분은 다르게 표현을 해주는데 기본적인 예로 

1
2
3
int a = 10;
int b = 11;
cout << a+<< endl;
cs

이런식으로 표현을 해줍니다 이렇게 되면 코드와 설명글이 분리가 되어서 쉽게 구분이 되기 때문에 가독성에 효과가 있습니다.

하는 방법은 정말 다양합니다. (HTML 태그, 블로그 내에서 지원, 웹사이트를 통해) 


게 표현 하실수 있게 해주는 Color Scripter라는 웹사이트 입니다. (http://colorscripter.com/)

여기로 들어가시면 첫 화면은

(출처: Color Scripter, 클릭하시면 원본을 보실수있습니다.)

이런 화면으로 시작됩니다. 저기 가운데 흔히 보이는 줄번호가 있고 그 옆에 흰바탕에 블로그에 올릴 코드를 적어주시면 됩니다.

메뉴 툴 박스를 보시면 4가지 기능이 있습니다.

- 언어

언어는 지금 총 20가지의 언어를 지원합니다. (3.0버전 기준)

(지원 목록 : Text, Action Script, ASP, C, C#, CSS, HaXe, HTML, Java, JavaScript, JSP, Objective-c, Perl, PHP, Python, Ruby, SQL, Swift, VisualBasic, XML)

자신이 쓰고 있는 언어를 선택 하시면 그 문법에 따라 코드 하이라이팅이 다르게 표현 될 것입니다. 


스타일 패키지

(출처: Color Scripter, 클릭하시면 원본을 보실수있습니다.)

새가지 스타일을 지원합니다. 마음에 드시는 걸로 사용하시면 됩니다. 개인적으로는 서브라임 블랙을 선호 하는 편입니다.


- 배경

(출처: Color Scripter, 클릭하시면 원본을 보실수있습니다.)

이것도 마음에 드시는 걸로 선택 하시면 됩니다. 

단 배경없음(투명)으로 하실경우 뒷배경의 색으로 표현되서 명확하게 표현이 안되는 부분이 생길수도 있습니다. 


- 세부설정

(출처: Color Scripter, 클릭하시면 원본을 보실수있습니다.)

세부설정을 통해 보여주는 미세한 값들을 수정 할 수 있습니다.


모든 것이 완료 되었다면 이제 사이트 오른쪽 밑에 있는 공유하기(친구들 또는 쉽게 다른 사람에게 URL을 통해 공유 할 수 있는 기능),

클립보드에 복사하기를 통해 (컨트롤+c같은 느낌입니다.블로그 글 쓰는 곳에 붙여넣기를 하시면 쉽게 코드를 이쁘고 가독성 좋게 표현하실수 있습니다.


어제 부터 커뮤니티에

"삼성 대단하네요. 대박 큰 사건 터졌네요 ㄷㄷㄷ.jpg"라는 글이 올라왔습니다

글의 요지는 간단하게 말하면 삼성 폰에 내장 되어 있는 "스마트매니저"라는 앱이 많은 권한을 요구 한다는 글 이었습니다

(출처:http://386dx.com/b/v/ddanzi/13368/1)

 

(클릭시 원본을 볼 수 있으며 첨부된 사진중 일부)


필자는 삼성 폰을 쓰지 않아서 저 앱이 무슨 기능을 하는지 정확히 모릅니다

간단한 검색 또는 이름으로 볼때 전체적인 시스템을 관리 해주는 앱인거 같습니다

안드로이드 초창기 시절 메모리 관리 앱들이 많은 인기가 있었습니다

스마트 매니저와 비슷한 기능을 하는 앱을 예를 들겠습니다

'클린 마스터'라는 앱입니다. 주요기능은 메모리 확보 및 cpu 최적화 등등등 정말 많은 기능들이 있습니다

3000만이상의 다운로드와 설명에는 4억대 이상의 기기의 향상을 도왔다고 설명 되어 있는데,, 권한을 한번 확인 해보겠습니다



(클릭시 원본을 볼수 있으며 출처는 구글스토어 입니다)


스마트 매니저와 비슷한 수준의 권한을 요구 하고 있습니다

또 한가지 앱은 인텔시큐리티사의 맥아피 백신 앱입니다

인텔이 2009년에 인수한 회사의 앱입니다. 권한을 한번 보겠습니다


(클릭시 원본을 볼수 있으며 출처는 구글스토어 입니다)

인텔의 백신 앱 마저 스마트매니저와 비슷한 권한을 요구 하고 있습니다
이런 것처럼 앱을 백신, 보안 또는 시스템 관리를 해야되는 앱은 안타깝지만 많은 권한을 필요로 합니다
제 생각으로는 삼성을 욕하기보다는 안드로이드 문제인거 같습니다
안드로이드 개발에 있어서  가이드를 제시하는 회사는 주인인 구글이기 때문입니다

보통 무료 앱을 보시면 광고가 화면 밑에 배너 광고가 달려 있는 것을 볼 수 있습니다
1인 개발자나 소규모 그룹들은 수익 또는 보조 수익을 위해 광고를 포함시키는 경우가 많습니다
그렇게 되면 광고회사들이 요구한 권한을 앱에 포함 하게 됩니다.
(위치정보, 인터넷 연결 등등)

이런 권한 문제는 안드로이드, IOS 둘다 똑같은 문제 인거 같습니다.
다만 IOS가 다른 방식으로 좀더 사용자에게 확실히 인지를 시키는 방법이기는 합니다

저런 권한을 요구하면서 개발자가 정말 안 좋은 생각을 품는다면 뭔들 못하겠습니까
하지만 Application Software 개발자는 정해진 가이드에 의해 개발을 할 수 밖에 없습니다
이 문제의 답은 안타깝게도 없는거 같습니다

옛날보다 인터넷을 통해 많은 정보를 쉽게 볼 수 있는 시대 입니다
단편만 보지 않았으면 하는 바램으로 글을 작성합니다
(물론 제 생각입니다 이문제에 대한 토론은 환영입니다)


+ Recent posts