티스토리 뷰

왜? 꼭! Objective-C를 알아야만하나?!


이유는 간단하다.  


iOS에서 동작하는 App.을 만들기위해서는 Apple에서 제공하는 xcode(IDE)와 iOS SDK를 이용해야만 한다. 근데, iOS SDK의 대부분이 Objective-C 언어로 작성되어 있어서, 반드시, 조금이라도 알아야 된다.


본인이 처음 Objective-C를 만났을 때의 느낌은....

(당시, MFC/C/C++기반의 윈도우 개발이 주업무 였음...)


이건뭐... 외계어도 아니고... 였다.

([[UIApplication sharedApplication] delegate] 뭐 이런코드를 처음봤는데 어색하지 않다? 그러면, 타고난 iOS개발자이십니다~ ㅋㅋ)


지금은... C/C++/Objective-C/Java/Python... 등 내가 조금이라도 문법을 아는 언어중에 베스트 언어가 되었다. (짱짱짱!!)


내 느낌은 여기까지만 하고 이제 부터 Objective-C 에 대하여 알아보도록 하자.




이름부터 범상치 않은가?


Objective + C 


객체지향적인 C 언어? 말그대로다 C 언어를 기반으로 해서 새롭게 추가된 문법으로 객체지향적인 프로그래밍을 가능하게 해준다. 


그러면, Objective-C 가 있으면 Objective-C++ 도 있나?


있다!


실제로, 작업을 하다보면 많은 라이브러리를 다뤄보게 되는데 소스코드를 보면 C, C++, Objective-C 문법이 짬뽕으로 되어 있는것을 아주 잘! 볼 수 있다. 때문에, C/C++ 을 아는 개발자에게 Objective-C/C++ 은 빠르면 하루면 익힐 수 있다.(나는... 한 1주일은 걸린듯..)


(Objective-C/C++ 에 대한 자세한건 요기: 

http://ko.wikipedia.org/wiki/%EC%98%A4%EB%B8%8C%EC%A0%9D%ED%8B%B0%EB%B8%8C-C)




그러면, 어떻게 생겼는지 보자


Objective-C 에서 선언 : +(void)doSomethingWithMan:(Human *)man;

Objective-C 에서 사용 : [Object doSomethingWithMan:man];


위 처럼 생겼다. 워... 이건뭐 C/C++ 문법하고는 너무나 다르자나!! (외계어라고 느낄법 하죠잉?)

근데, C/C++ 문법으로 대충 비슷하게 바꿔보면 아래와 같다.


C++ 에서 선언: static void Object::doSomething(const Human& man)

C++ 에서 사용: Object.doSomething(man);


암튼, 처음엔 엄청 코드 읽기가 어렵지만, 조금만 익숙해지면 Objective-C/C++ 문법이 코드 가독성이 얼마나 좋은지 알 수 있게 된다.

단, 규칙에 맞게 메소드 네이밍을 잘해야한다. 대충 하면 정말 외계어가 된다. 네이밍에 관하여 Apple 의 개발자들이 정해온 규칙이 있는데 참고해보시길!!강추!  

(요기:https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CodingGuidelines/CodingGuidelines.html)


강추하는 이유가 있다!


애플 개발자들이 위에 가이드라인에 맞춰서 iOS SDK 를 개발해 놓았고, 많은 외부 라이브러리들 또한, 위의 가이드라인에 맞춰 작성되어있기 때문에 적용 및 분석이 쉬워진다. 실무에서도 프로젝트를 진행하다보면 코딩 스타일이 많이 달라서 협업에 어려움이 많은데, 지금 시작하는 단계라면 애초에 좋은 가이드라인에 따라 연습하고 익혀가는것도 나쁘지 않다고 생각한다.(뭐.. 본인 스타일 죽어도 바꾸기 싫다면 어쩔 수 없는거고... 그러면, 같이 일하기 힘들어 지는거고... 그러면 나중에 소고기 사먹겠지...)




어떻게 쓰면 되는건데?


여기부터는 내 경험에 대한 이야기 보다는 남들이 정리 해주신 자료가 너무나도 좋기 때문에 링크를 참고하시길!


링크1:http://snowhouse-textcube.blogspot.kr/2010/01/%EC%95%84%EC%9D%B4%ED%8F%B0-%EA%B0%9C%EB%B0%9C-%EC%99%84%EC%A0%84-%EC%B4%88%EB%B3%B4%EB%8F%84-%EB%B3%B4%EB%8A%94-objective-c-%EA%B8%B0%EC%B4%88%EA%B0%9C%EB%85%90.html





공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함