분류 전체보기 469

Swift Testing으로 테스트 심화하기 (Go further with Swift Testing) - WWDC24

Swift Testing으로 테스트 심화하기 (Go further with Swift Testing) - WWDC24 코드가 복잡해질수록 테스트를 읽고 이해하기 쉽도록 만드는 것이 더욱 중요모든 엣지 케이스를 방어하기 위해 코드 커버리지를 적당히 유지그룹으로 잘 관리하는것이 어려움.테스트 사이에 숨겨진 종속성으로 인해 테스트가 취약해짐. 테스트는 일반적으로 완벽하기보단 덜 작성되는게 많지만, 잘못된 입력과 예상치 못한 조건을 마주친 경우에도 테스트가 깔끔하게 실패하게 해야함. 이렇게 코드를 작성한 경우에는 try 구문에서 테스트가 실패함.만약 함수가 성공적으로 실행될 경우 expect에서 값을 확인할 수 있음. 반면에 테스트 실패 케이스가 의도대로 실패하는지 확인하려면 do - catch 문을 확인..

apple/WWDC 2025.06.29

Meet Swift Testing - WWDC24

Meet Swift Testing - WWDC24 뛰어난 사용자 경험을 제공하려면 품질과 안전성이 매우 중요. Swift Testing은 새로운 오픈소스 패키지로 Swift 동시성 및 매크로 같은 최신 기능을 도입함.Linux와 Windows 등 모든 주요 플랫폼을 지원함. @Test가 Swift Testing에서 함수가 테스트임을 나타냄.async or throws를 사용할 수 있으며 경우에 따라서 Actor로 격리 가능함. #expect는 매크로로 일반 표현식과 언어 연산자를 허용함.테스트가 실패할 경우에는 코드와 표현식에 대한 값을 캡처함. 테스트가 실패한 경우 #expect에 전달된 표현식에 대한 세부 정보가 하위 값과 함께 표시됨. #expect는 매우 유연해서 연산을 수행할 수 있..

apple/WWDC 2025.06.29

Swift 동시성 사용하기 (Embracing Swift Concurrency) - WWDC25

Swift 동시성 사용하기 (Embracing Swift Concurrency) - WWDC25 동시성을 활용하면 응답성을 향상시킬 수 있음.- Swift Concurrency 동시성 모델은 동시성을 사용하는 코드를 올바르게 작성하기 위해 설계되었음.- 이를 통해 동시성 도입이 명시적으로 이루어지고 동시 작업에서 어떤 데이터가 공유되는지 명확해짐- 컴파일 시점에 이를 확인하므로 안전함 많은 앱은 동시성을 아껴서 사용하고, 어떤 앱은 아예 동시성이 필요 없기도 함.단일 스레드를 사용하는 것에 비해서 동시성은 앱을 복잡하게 만들 수 있어서 필요할 때 도입해야 함. 앱은 모든 코드를 메인 스레드에서 실행하여 시작해야 하며 단일 스레드로도 상당히 많은 코드를 작성할 수 있음.메인 스레드는 앱이 UI 관련 ..

apple/WWDC 2025.06.21

Swift로 메모리 사용량 및 성능 개선하기 (Improve memory usage and performance with Swift) - WWD

Swift로 메모리 사용량 및 성능 개선하기 (Improve memory usage and performance with Swift) - WWDC25 Swift 6.2에서 새로 추가된 기능을 활용해 코드 성능을 이해하고 개선하는 방법을 알아보자 새로운 InlineArray 및 Span 타입을 사용해 제네릭을 알아보고, 탈출할 수 없는 타입에 대해서 알아보고 이러한 타입들을 사용해 보유 및 해제 독점성 및 고유성 검사 기타 추가 작업을 제거할 것. Binary Parsing을 빠르고 안전하게 작성할 수 있는 새로운 오픈소스 라이브러리(Swift Binary Parsing)도 알아볼 예정.이는 속도에 중점을 두고 여러가지 종류의 안전을 관리하는데 필요한 도구를 제공함 이번 세션에서는 코드가 시간을 ..

apple/WWDC 2025.06.15

Instruments를 사용하여 CPU 성능 최적화하기 (Optimize CPU performance with Instruments) - WWD

Instruments를 사용하여 CPU 성능 최적화하기 (Optimize CPU performance with Instruments) - WWDC25 Instruments를 사용해 Apple 실리콘 CPU에 맞게 최적화하는 방법을 알아보자.CPU 리소스를 효율적으로 사용하면 앱에서 대량으로 데이터를 처리하거나 사용자의 인터랙션에 빠르게 응답해야 할 때 눈에 띄는 대기시간을 피할 수 있음.목차 Performance midset CPU에 맞게 코드를 최적화하는 방법에 대해서 알아볼 것. 우선, 데이터를 기반으로 성능 조서에 접근하는 방법을 검토하여 가장 큰 잡재적 속도 향상에 초점을 맞추고자 함. Profilers 코드에서 과도한 CPU 사용량을 식별하는 데 좋은 첫 단..

apple/WWDC 2025.06.14

앱의 전력 사용량 프로파일링 및 최적화하기 (Profile and optimization power usage in your app) - WWDC25

앱의 전력 사용량 프로파일링 및 최적화하기 (Profile and optimization power usage in your app) - WWDC25 안정성에 중요한 요소 중 하나가 배터리 수명. 목차Debug reproducible issues쉽게 재현할 수 있는 문제부터 해결해 볼 예정이며, 실제 사례를 통해 과도한 전력 사용을 식별하고 줄이는 방법을 확인.Uncover hidden issues좀 더 어렵고 구체적인 실제 상황을 파악하는 방법을 알아보고, 어떤 환경에서든 데이터를 수집하는 방법을 알아볼 것Compare power usage코드 구현에 따라 전력 소비에 대해서 비교해보며 앱의 효율성을 측정하고 개선하는 명확한 방법을 알아볼 것Optimization proactively개발 과정 초기..

apple/WWDC 2025.06.11

힙 메모리 분석하기(Analyze heap memory) - WWDC24

힙 메모리 분석하기(Analyze heap memory) - WWDC24 힙 메모리는 앱에서 직간접적으로 사용되며, 개발자가 제어하고 최적화할 수 있는 영역.앱의 Reference 타입이 저장되는 곳이며, 쓰기 작업이 자주 발생하고 수정되기 때문에 중요함.이렇게 수정된 메모리들은 메모리 한도에 포함되어 계산 됨.이번 세션에서는 힙 메모리 측정과 감소 방법에 대해서 주로 다룰 것. 메모리 측정이나 최적화에 대해서 더 알고 싶다면 다른 세션들도 존재함. - 측정하기- 일시적 증가에 대응- 지속적 증자 추적- 메모리 누수 수정하기- 런타임 성능 개선하기총 5가지 세션에 대해서 다룸 힙을 이해하려면 앱의 전체 가상 메모리 내에서 어떤 맥락에 있는지를 알아야 함.앱이 시작되면, 자체적인 빈 가상 메모리 ..

apple/WWDC 2025.06.03

[Crash] Content View returned an invaild size

[Crash] Content View returned an invaild size 크래시 분석- Compositional Layout을 사용할 때 item, group의 width 혹은 height을 모두 estimated로 둔 상태에서 Cell 내부의 레이아웃을 제대로 잡아주지 않은 경우에 발생.- 혹은 ContentConfiguration을 사용할 때 레이아웃 구성상 intrinsiccontentsize을 통해 View의 크기를 결정할 수도 있는데, 값을 넣어주지 않을 때도 발생. 크래시 전체 로그*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Content view returne..

Modern Cell configuration - WWDC21

Modern Cell configuration - WWDC21 데이터, 레이아웃, 셀 총 3가지 범주로 분류 가능함. - Data- Layout- Presentation 이번 세션에서는 View를 구성하는 방식에 중점을 둘 예정. 기본 셀을 사용할 때는 위처럼 사용할 수 있음. 구성할 수 있는 Configuration types은 두가지가 존재함- Background Configuration- Content Configuration Swift에서는 Value Type을 만드는데 비용이 매우 저렴함.즉, Configuration에 대한 변경 사항은 셀에 Configuration을 적용할 때까지 어던 것에도 영향을 미치지 않음. 생성하는데 가볍기 때문에 항상 새 Configuration으로 시..

apple/WWDC 2025.05.17