Play Kahoot!
- 스위프트 타입의 모든 프로퍼티가 Thread-safe하지는 않음
- Thread-safe 예시: 마트에서 여러 고객이 한 물건을 사려할 때
- 스위프트 타입의 모든 프로퍼티는 atomic 하지는 않다
- atomic하다: 여러 쓰레드에서 접근하지 못하고 하나의 쓰레드에서만 접근가능하다
- Race Condition: 두 개 이상의 프로세스나 스레드가 하나의 데이터를 공유할 때 데이터가 동기화되지 않는 상황을 뜻하는 용어
학습 활동 - 메모리 구조와 ARC
- ARC: Reference Count를 관리하고, Reference Countr가 0이면 메모리에서 할당을 해지해줌
- ARC를 이해해야 하는 이유
- ARC가 자동으로 해준다지만 만능이 아니다.
- ARC동작을 이해하고 사용하지 않으면 인스턴스가 메모리에서 해지되지 않는 경우를 만들 수 있다.
- 구조체, 클래스 선택
- 구조체는 인스턴스는 스택에, 클래스 인스턴스는 힙에 저장됨 (스택 내부에서 클래스가 있다면 힙에 저장됨???)
- 힙보다 스택이 더 빠르므로 굳이 클래스를 사용할 이유가 없다면 구조체 사용이 권장됨
- 타입을 만들때 구조체로 할지 클래스로 할지 매번 고민되지만 아직 잘 모르겠다.
- 지금까지 선택했던 기준은 인스턴스의 값을 참조만 하면된다면 구조체 사용, 인스턴스의 값을 변경하고 참조해야한다면 클래스를 사용. 왜냐면 구조체는 값타입이라 참조가 할 때 복사되므로 값을 변경하면 복사된 인스턴스의 값만 변경된다.
Leave a comment