BLOG main image
분류 전체보기 (92)
Cocoa Touch (11)
Cocoa (10)
Objective-C (13)
Swift (6)
Development (11)
Tools (11)
Books (7)
etc (21)
Application release (1)
Document Project (1)
105,876 Visitors up to today!
Today 2 hit, Yesterday 3 hit
daisy rss
tistory 티스토리 가입하기!
'Property'에 해당되는 글 1건
2014. 4. 14. 23:03


Objective-C가 계속 발전하면서 오랫동안 Objective-C를 개발하던 사람들에게는 눈에 거슬리는 문법이 하나 있는데 이름 하여 property dot notation이다.

주변에 꽤 오래된 (10년 정도) Objective-C 개발자들(그래 봐야 몇 안되지만)에게 물어보면 대체로 property dot notation에 대해서 부정적이었다.

그들의 생각을 속속들이 모두 들어보지 않았기 때문에 모두들 어떠한 이유로 그런 생각을 가지고 있는지는 모르겠지만 내가 주장하는 큰 이유는 아래와 같다.


1. dot notation을 사용하는 property는 마치 public 변수와 같은 느낌을 준다.

당연히 public 변수는 아니지만 그런 느낌으로 사용되는 것은 부정할 수 없으리라 생각한다. OOP에서 그런것이 그렇게 남발되어서는 안된다고 생각한다. 모든 죄악의 근본이다.


2. message sending syntax의 일관성을 해친다.

뭐 반드시 코드가 일관성을 가져야 하는가에 대해서 강하게 주장하지는 못하겠지만 깔끔하게 정리된 느낌을 주지 못하는 것은 사실이다.


3. Law of Demeter를 너무 쉽게 어기게 만든다.

C++이나 Java같은 언어에서도 메시지 체인은 피해야 할 코딩 습관인데 Objective-C에서도 너무 쉽게 메시지 체인을 만들어 버리게 한다. 물론 dot notation이 아니라도 메시지 체인을 만들 수 있지만 아무래도 매우 번거롭고 보기만 해도 위압적이다. 그러므로 잘 안하게 된다.


결국 1, 3번은 1번이 원인이고 3번이 결과인 셈인것 같다. 여튼 이 주장의 근거로 삼기에 강력한 순으로 따지자면 3, 1, 2쯤 될것 같기도 하고 보는 이에 따라 1, 3, 2쯤 될것 같기도 하고…


이쯤되면 이런 주장이 나올법하다.

“결국 문법은 문법일 뿐 그렇게 사용하지 않으면 괜찮지 않은가? []을 사용하는 메시지 전달 방식도 결국 하기에 따라 동일하지 않은가?”


뭐 맞는 말이다. 하지만 좀 많이 어거지로 같다붙이자면 언어는 사고를 지배한다(사피어-워프 가설. 이런데 갖다 붙이기엔 좀…).

프로그래밍도 근본적으로 언어를 이용하여 컴퓨터의 동작을 기술한다는 점에서 언어를 사용하는 것과 동일 선상에 놓고 볼 수 있을것 같은데 프로그래밍에 사용하는 언어, 그리고 그 언어를 사용하는 습관이 전체적인 애플리케이션의 구조와 동작 방식에 영향을 준다고 생각한다.

즉, 메시지 체인을 만들기 쉬운 문법을 제공하면 그만큼 메시지 체인을 만들 확률이 높아질 수 밖에 없다고 생각한다. 마치 public변수 처럼 사용하기 쉬운 문법을 제공하면 그렇게 코딩하게 된다.


그래서 결론은… 조금 귀찮더라도 dot notation을 사용하지 않고 한번 작업을 해보라고 권해보고 싶다.

어떻게 될것 같냐고?


조금 더 귀찮지만 훨씬 괜찮은 코드가 되어 있을 것이라 생각한다.


Name
Password
Homepage
Secret
prev"" #1 next