본문 바로가기
[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #33 ~ #40 [Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #33 ~ #40 출처 : Effective Objective-C #33 : Weak 참조를 사용하여 리테인 순환을 피하라. 참조를 weak 로 만들면 리테인 순환을 피할 수 있다. weak 참조는 자동으로 nil 로 채워질 수도, 채워지지 않을 수도 있다. 자동으로 nil 로 설정되는 것은 ARC 에서 소개된 새로운 기능이다. 그리고 런타임에서 구현되었다. 자동으로 nil 로 채워지는 weak 참조를 읽는 것은 항상 안전하다(반드시 정상 객체가 아니면 nil 이기 때문). 그 말은 절대로 할당 해제되는 참조를 포함하지 않는다는 것이다. #34 : 오토릴리스 풀을 사용하여 최고 메모리 .. 2017. 10. 5.
[Effective Objective-C] #38 많이 사용하는 블록 타입은 typedef 를 이용해 타입을 생성하라 [Effective Objective-C] #38 많이 사용하는 블록 타입은 typedef 를 이용해 타입을 생성하라 출처 : Effective Objective-C -블록은 내재 타입(inherent)이다.블록은 적절한 타입의 변수에 할당될 수 있다. -블록의 타입은 다음과 같이 생겼다.return_type (^block_name) (paramters) 블록 변수(block-variable) 정의는 변수 이름을 맨 오른쪽에 두는 다른 타입들과 달리 변수 이름을 가운데 둔다.이로 인해 블록 타입 정의 문법을 기억하고 읽기가 매우 어려워진다.그렇기 때문에 자주 사용되는 블록 타입을 위한 타입 정의를 만드는 것은 좋은 생각이다.특히 다른 사람들이 사용하는 API 일 때 유용하다.이와 같이 이름 뒤에 블록 타.. 2017. 10. 2.
[Effective Objective-C] #20 프라이빗 메서드 이름에 접두어를 사용하라 [Effective Objective-C] #20 프라이빗 메서드 이름에 접두어를 사용하라 출처 : Effective Objective-C -프라이빗 메서드에 접두어를 붙이는 것이 좋다.퍼블릭 메서드와 프라이빗 메서드를 깔끔히 구분하여 디버깅할 때 도움이 된다. -프라이빗 메서드에 표시를 해두면 메서드 이름이나 시그너처를 바꿀 때 한 번 더 생각하게 된다.메서드가 퍼블릭이면 변경을 좀 더 신중하게 생각해야 한다.클래스의 퍼블릭 API 로 바꾸는 것이 적절하지 않을 수 있기 때문이다.퍼블릭으로 변경하면 해당 클래스 사용자는 그들의 코드를 해당 변경에 맞게 갱신해야 한다.그러나 메서드가 내부를 위한 것이면 외부에 공개된 퍼블릭 API 에 영향을 끼치지 않고 오직 해당 클래스의 코드만 변경하면 된다. -사용할.. 2017. 8. 31.
[Effective Java] 가급적 상속(inheritance) 보다는 컴포지션(composition)을 사용하자. 가급적 상속(inheritance) 보다는 컴포지션(composition)을 사용하자. - 상속은 코드를 재사용하는 강력한 방법이다. 그러나 일을 하는데 가장 좋은 도구는 아니다. 잘못 사용하면 부실한 소프트웨어를 초래한다. - 동일 프로그래머가 서브 클래스와 수퍼 클래스의 구현을 관장하는 같은 패키지 내에서 상속을 사용하는 것은 안전하다 상속을 위해 특별히 설계되고 문서화된 클래스를 확장(extends) 하기 위해 상속을 사용하는 것도 안전하다. 그러나 다른 패키지에 걸쳐 일반적인 실체 클래스로부터 상속을 받는 것은 위험하다. - 상속은 캡슐화(encapsulation) 을 위배한다. 올바른 동작을 위해 서브 클래스는 자신의 수퍼 클래스가 구현하는 상세 내역에 의존한다. 수퍼 클래스의 구현 내역은 소프.. 2016. 10. 27.
반응형