iOS 캠프 TIL - 2021.01.11 월

Updated:

Play Kahoot!

  • 스위프트 타입의 모든 프로퍼티가 Thread-safe하지는 않음
    • Thread-safe 예시: 마트에서 여러 고객이 한 물건을 사려할 때
  • 스위프트 타입의 모든 프로퍼티는 atomic 하지는 않다
    • atomic하다: 여러 쓰레드에서 접근하지 못하고 하나의 쓰레드에서만 접근가능하다
  • Race Condition: 두 개 이상의 프로세스나 스레드가 하나의 데이터를 공유할 때 데이터가 동기화되지 않는 상황을 뜻하는 용어

학습 활동 - 메모리 구조와 ARC

  • ARC: Reference Count를 관리하고, Reference Countr가 0이면 메모리에서 할당을 해지해줌
  • ARC를 이해해야 하는 이유
    • ARC가 자동으로 해준다지만 만능이 아니다.
    • ARC동작을 이해하고 사용하지 않으면 인스턴스가 메모리에서 해지되지 않는 경우를 만들 수 있다.
  • 구조체, 클래스 선택
    • 구조체는 인스턴스는 스택에, 클래스 인스턴스는 힙에 저장됨 (스택 내부에서 클래스가 있다면 힙에 저장됨???)
    • 힙보다 스택이 더 빠르므로 굳이 클래스를 사용할 이유가 없다면 구조체 사용이 권장됨
    • 타입을 만들때 구조체로 할지 클래스로 할지 매번 고민되지만 아직 잘 모르겠다.
    • 지금까지 선택했던 기준은 인스턴스의 값을 참조만 하면된다면 구조체 사용, 인스턴스의 값을 변경하고 참조해야한다면 클래스를 사용. 왜냐면 구조체는 값타입이라 참조가 할 때 복사되므로 값을 변경하면 복사된 인스턴스의 값만 변경된다.

Leave a comment