728x90
반응형
안녕하세요🐶
빈지식 채우기의 비니🙋🏻♂️입니다.
오늘의 포스팅은 WWDC 2023의 일곱 번째 - 스위프트의 새로운 기능 -3 에 대해 알아보도록 하겠습니다.
1. ~Copyable
2. Actor and Concurrency
1. ~Copyable
- Struct에서 deinit 을 사용하게끔 해주는 기능입니다.
- Class 처럼 참조타입으로 작동되게끔 만들어줍니다. ( 값이 범위를 벗어날 때, deinit 호출 )
- 예를 들어 close를 호출한 뒤 파일에 값을 쓰려고 할 수 있다.
- 주의가 필요하다.
- 수동으로 닫기 위해서는 타입의 범위가 벗어나기 전에 close 메서드를 호출해야 한다.
- 그러지않으면 Darwin의 리소스 누수가 생긴다.
- 리소스 누수를 방지하기 위해 class로 선언 후 deinit을 작성한다.
- 자동으로 범위가 벗어났을 시 자동으로 close 를 호출시키게 한다.
- 하지만 이러한 방법은 Class 의 특성으로 추가 메모리를 할당해줘야 한다.
- ~Copyable 프로토콜을 채택하여 Class의 참조타입처럼 작동되게 한다.
- deinit 작성하여 자동으로 close 호출시키게 한다.
- close는 consuming 키워드를 사용할 수 있다.
- close 호출 시 소유권을 포기하여 값을 사용하지 않음을 뜻한다.
- 뿐만 아니라 close 호출 후 write을 하였을 때, 위와 같이 오류 메시지를 보여줘 실수를 방지할 수 있다.
2. Actor and Concurrency
- Swift는 동시성 추상모델이며, 다양한 환경과 라이브러리에 도입할 수 있다.
- Task
- 어디서나 실행가능한 순차적인 작업 단위
- 'await'이 있으면 작업을 일시 중지한 다음 작업을 계속할 수 있게 되면 다시 시작할 수 있다.
- Actors
- 동기화 메커니즘으로, 고립된 상태에서 상호 배제된 접근을 제공한다.
- 외부에서 Actors에 진입하려면 await가 요구되는데, 이것은 작업을 일시중지하기 위해 필요합니다.
- Task
- 여러 곳에서 사용할 수 있는 동시성 처리 API 이다.
- Swift의 동시성 모델은 Single 스레드의 cooperative 큐를 제공합니다.
Swift Concurrency
1. 추상 모델에 포함된 테스트 및 액터가 광범위한 동시성 프로그래밍을 가능하게 합니다.
2. 추상 모델 자체는 굉장히 유연하며 서로 다른 환경에서도 도입할 수 있다.
3. 어떠한 지점에서 커스터마이징을 진행하여 Swift Concurrency가 도입되지 않은 코드에서도 유연하게 작동됩니다.
이상으로 [WWDC 2023] (7) 스위프트의 새로운 기능 - 3 포스팅을 마치겠습니다.
틀린 부분이나 궁금한 사항은 댓글 남겨주세요~
참고
728x90
반응형
'Apple 🍎 > WWDC 2023' 카테고리의 다른 글
[WWDC 2023] (6) 스위프트의 새로운 기능 - 2 (0) | 2023.09.08 |
---|---|
[WWDC 2023] (5) 스위프트의 새로운 기능 - 1 (0) | 2023.09.07 |
[WWDC 2023] (4) Swift Macro (0) | 2023.09.06 |
[WWDC 2023] (3) SwiftData (0) | 2023.08.29 |
[WWDC 2023] (2) Widget 확장 (0) | 2023.08.28 |