Class
class의 성능을 향상 시킬수 있는 방법들을 나열해보시오.
- 상속하지 않는 클래스를 선언 시에는
final
키워드 붙이기
- 접근이 현재 파일로 제한되는 경우
private
키워드 붙이기
- ARC 모델에서 강한 참조 사이클 제거하기
instance 메서드와 class(타입)메서드의 차이점을 설명해보세요.
- 메서드에 접근할 시에 인스턴스 메서드는 인스턴스 생성 후 인스턴스 이름으로 접근해야 하지만, 타입 메서드는 타입 자체에 속한 속성이기 때문에 타입에 접근연산자(.)를 붙여 접근할 수 있음
타입메서드 중에서, class 메서드와 static 메서드의 차이점을 설명해보세요.
- 클래스에서 class 키워드가 붙은 타입메서드는 상속하여 재정의가 가능하지만, static 키워드가 붙은 메서드는 재정의 불가
Pointer라고 들어봤는지?
lazy 속성이 뭔지? lazy를 마구잡이로 사용할 때 주의할 점이 뭐가 있을까요?
- 지연 저장 속성은 처음 사용될 때까지 초기화되지 않는 속성입니다. 즉, 처음부터 메모리 공간을 할당받지 않고 호출될 시에 메모리 공간을 할당 받습니다.
- 지연 저장 속성은 인스턴스 초기화가 완료될 때까지 값을 알 수 없는 다른 속성을 이용해야할 때나 메모리 공간을 많이 차지하는 경우에 유용합니다.
- 저장 속성에
lazy
키워드를 붙여서 사용할 수 있습니다.
- 주의할 점
- 멀티 스레드 환경에서 지연 저장 속성에 접근할 시에 해당 속성이 아직 초기화되지 않은 경우 한 번만 초기화 된다는 것을 보장하지 않습니다. (Thread safety를 보장하지 않습니다)
Struct