본문 바로가기
iOS/WWDC

WWDC 2024(Swift6)

by 최지철 2024. 6. 19.
728x90
반응형

WWDC2024를 요약 및 정리해보았습니다.

iOS 18

  • 아이콘을 자유롭게 배치 가능
  • 아이콘 다크 모드 지원
  • 아이콘 색상 변경 가능
  • 컨트롤센터 새로운 커스터마이즈 기능 추가
  • 컨트롤센터 그룹 분류 가능
  • 잠금 화면의 퀵 액세스 버튼
  • 앱을 잠글 수 있는 기능을 탑재, Face ID로 잠금 해제
  • 홈화면 앱아이콘 숨기기 기능
  • 메시지앱 이모티콘이 스티커 기능 강화
  • 지갑앱 아이폰끼리 송금 가능
  • 사진 앱 디자인 변경
  • 보기 기능 통합 간단한 검색

Audio & Home

  • AirPods 고개를 끄덕이거나 고개를 저으면 Siri에게 응답 가능
  • 시끄러운 장소에서도 목소리를 분리하여 선명하게 들리는 기능 탑재
  • 개인화된 공간 오디오 게임 사운드 지원
  • InSight 기능 (등장인물 및 재생 중인 곡 표시)
  • 21:9 프로젝터 지원
  • 새로운 스크린 세이버 추가

watchOS 11 발표

  • 피트니스 앱 기능 강화 (운동 강도, 트레이닝 부하)
  • 건강에 대한 바이탈 어플 탑재
  • 라이브 액티비티 이용 가능
  • 문자에 사진을 제안하는 기능 탑재

iPadOS 18 발표

  • 플로팅 탭 바를 탑재
  • 파일 퀵룩 애니메이션 반응 향상
  • SharePlay 탑재
  • iPad용 계산기 앱 등장
  • 계산 메모 기능 탑재
  • 손으로 쓴 계산식을 인식하고 자동 계산하는 기능
  • 계산 메모는 변수도 대응
  • 그래프 표시 가능
  • 메모의 필기가 보다 원활하게 되는 스마트 스크립트 기능을 탑재
  • 필기 문자의 외형을 정돈 이동, 맞춤법 검사 가능

macOS 15 Sequoia 발표

  • 자신의 iPhone 화면을 미러링하고 조작 기능
  • Mac 트랙패드, 키보드를 사용하여 iPhone을 조작
  • 아이폰의 알림을 표시하는 기능
  • 아이폰 미러링 중에는 아이폰을 스탠바이 표시
  • 영상 통화 시 간단하게 배경을 변경하는 기능 탑재
  • 비밀번호 앱 출시, iPhone이나 Vision Pro, Windows에도 대응
  • 사파리는 웹 페이지의 하이라이트 기능을 탑재
  • 비디오를 중앙에 표시하는 뷰어 기능 탑재
  • Game Porting Toolkit 2 도입
  • 어쌔신 크리드 섀도우즈 게임앱 Mac, iPad 출시
  • 개발자용 베타 버전은 오늘 배포, 일반용 베타 버전은 다음 달 배포
  • 정식 버전 올 가을 발매 예정

Apple AI 새로운 개인화된 인공지능 시스템 Apple Intelligence 발표

  • iOS 18, iPadOS 18, macOS 15에 탑재
  • 언어나 이미지를 이해하고 생성
  • 강력한 프라이버시 기능 및 여러 앱 간 액션 실행
  • A17 Pro 및 M 시리즈 칩 지원
  • Private Cloud Control (Apple 실리콘의 프라이버시 기능을 서버에 적용)
  • 개인 컨텍스트 인식 및 앱 내외 액션 실행
  • 새로운 집중 모드, 스마트 응답, 요약, 문자 교정 기능
  • 메시지 앱에서 Genmoji로 이모티콘 생성 가능
  • Image Playground에서 이미지 생성 기능
  • Keynote, Pages, 프리보드 등에서 사용 가능
  • 사진 앱에 불필요한 항목 삭제
  • 자연스러운 말투로 사진 검색 가능
  • 메모 앱에서 음성을 녹음하고 문자로 변환하여 요약하는 기능
  • 전화 앱에서 문자 변환 및 요약 기능 사용 가능
  • ChatGPT를 탑재하고 Siri와 연동
  • ChatGPT 접근은 무료로, 계정이 필요 없음
  • 올해 안에 ChatGPT를 iOS 18, iPadOS 18, macOS 15에 탑재 예정
  • Apple Intelligence는 iPhone 15 Pro/Max, M1 이상 iPad와 Mac에서 이용 가능
  • 올해 여름부터 미국 영어로 시험적으로 이용 가능
  • 베타 버전은 올해 가을부터 제공

Swift6

이번 WWDC2024기준으로 Xcode와 함께 릴리즈 되었습니다.

이번 Swift 6는 동시성(concurrency)과 데이터 레이스 안전성(data race safety)을 대폭 강화하여 멀티스레드 환경에서의 프로그래밍을 더욱 안정적이고 효율적으로 만들어줍니다.

 

첫번째는 Swift Concurrency의 강화입니다.
Swift 5.5에서 부터 동시성 기능이 도입되었습니다:

  • async/await: 비동기 함수 호출을 쉽게 할 수 있도록 도와줍니다.
  • Actors: 상태를 격리하여 데이터 레이스를 방지하는 객체 지향적인 동시성 모델.
  • Sendable 프로토콜: 여러 스레드 간에 안전하게 전달할 수 있는 타입을 명시적으로 정의하는 프로토콜.

Swift 6는 동시성기능을 강화하고 조금 더 안전하게 기능을 지원합니다.

 

  • 엄격한 동시성 검사(Strict Concurrency Checking): Swift 6에서는 컴파일 타임에 데이터 레이스를 감지하고 방지하는 엄격한 동시성 검사를 도입했습니다.(Apple Developer)​.
  • 강화된 Sendable 프로토콜 검사: Swift 6는 Sendable 프로토콜을 사용하는 코드의 안전성을 더욱 엄격하게 검사하여, 데이터가 여러 스레드 간에 안전하게 전달되는지 확인합니다​ (Apple Developer)​​ (SwiftLee)​.

Swift 5.5에서 Sendable 프로토콜은 동시성 프로그래밍을 위한 중요한 개념으로 도입되었고, Swift 6에서는 이를 더욱 강화하여 데이터 레이스를 방지하는 기능이 향상되었습니다. Swift 6의 개선 사항은 동시성 프로그래밍의 안정성과 신뢰성을 높여주는 중요한 역할을 합니다.

두번째, Noncopyable 타입의 도입입니다.

객체가 복사되지 않도록 제한키워드 입니다.

중요한 리소스를 관리하거나, 특정 객체가 단 하나의 인스턴스로 존재해야 하는 경우에 유용합니다.

 

  • 자원 관리의 효율성:
    • 파일 핸들, 데이터베이스 연결 등과 같은 중요한 리소스를 다룰 때, 복사되지 않도록 하여 리소스 낭비를 방지할 수 있습니다.
  • 명시적 소유권:
    • 특정 객체의 소유권을 명확히 하여, 객체가 복사되어 발생할 수 있는 부작용을 방지합니다.

활용 시나리오

  1. 파일 핸들링: 파일 디스크립터와 같은 시스템 리소스를 관리할 때, 복사되지 않도록 하여 안전성을 높입니다.
  2. 데이터베이스 연결: 데이터베이스 연결 객체가 단 하나의 인스턴스로 존재하도록 하여, 여러 인스턴스에서의 충돌을 방지합니다.
  3. 네트워크 소켓: 네트워크 소켓 객체가 복사되지 않도록 하여, 소켓 연결의 무결성을 보장합니다.

Noncopyable 타입의 이점

  • 메모리 효율성: 불필요한 객체 복사를 방지하여 메모리 사용을 최적화할 수 있습니다.
  • 안정성 향상: 특정 객체의 유일한 소유권을 유지하여, 예기치 않은 복사로 인한 오류를 방지합니다.
  • 코드 명확성: 객체의 소유권과 생명주기를 명확히 하여, 코드의 가독성과 유지보수성을 높입니다.

 

세번째로는, C++ 상호 운용성 강화 입니다.
C++ 코드와의 상호 운용성이 개선되어, 기존의 C++ 라이브러리를 쉽게 활용할 수 있습니다​ (Apple Developer)​.

 

 

 

 

 

 

 

728x90
반응형