High Performance Swift

Current Status
Not Enrolled
Price
3300
Get Started

 

코스 구매 전 잠깐!

Swifty Swift Code in Practice 코스와 High Performance Swift 코스를 패키지로 구매할 수 있는 찬스를 놓치지 마세요!

 

High Performance Swift

더 나은 앱 성능을 위한 필수 코스

작고 가벼운 앱 수준에서는 문제 될 일이 없지만, 조금만 앱이 복잡해지기 시작하면 바로 고민하게 되는 부분들이 있습니다. 뭘까요?

  • 컴파일, 빌드 할 때 시간을 좀 절약할 수 없을까? 이 시간만 줄여도 더 많은 것을 할텐데.
  • 모든 사용자가 나와 같은 기기를 사용하는게 아니잖아. 구형 기기에서도 잘 돌아갈 수 없나?
  • 앱이 덜 버벅거리게 하려면 어떻게 해야할까?

이런 고민을 하고 계시다면… 축하합니다! 이제 초보자를 벗어나, 점점 ‘성능’ 에 대해 고민하는 개발자로 성장하고 계시군요. 일단 뭐든 만들어서 내 눈에 보이기만 해도 재미있고 즐겁던 시절은 어느새 가고, 점점 앱 내부의 구조나 성능에 대해 고민하게 되는 시기가 오셨네요.

성능 개선을 위한 필수 지식 모음

  • 이제 ‘일단 돌아가면 된다’ 가 아니라, ‘좀 더 잘 만들고 싶다’ 는 고민을 하게 되었다면?
  • 앱이 버벅거리고, 뭔가 느릿느릿한데 어디부터 손 대야할지 모르겠다면?
  • 앱의 성능에 대해 고민하고, 학습할 때가 되었다는 의미입니다!

 


이 코스에서 다루는 것들

 

1. 런타임 성능 최적화

 

코드야 어떻든, 일단 돌아가면 된거다?

작고 가벼운 앱이라면 런타임 성능이 크게 중요하지 않을수도 있습니다.
그렇지만 앱의 구조가 복잡해지고 덩치가 커질수록, 사용자가 사용하는 런타임 성능의 최적화는 필수죠.

어떤 코드가 런타임 성능에 더 유리한지 살펴봅니다.

 

2. 컴파일타임 성능 최적화

 

컴파일은 ‘원래’ 오래 걸리는거다?

앱이 커지고, 복잡도가 증가할수록 컴파일 시간은 자연스레 늘어납니다.
만약 어쩌다 한 두 번 정도 컴파일을 하게 된다면 큰 문제가 없을 수도 있지만,
구현할 때도, 테스트를 할 때도, 빌드 할 때도 컴파일은 수도 없이 이뤄지죠.

이 때 마다 오래걸리고, 커피 한 잔 마시고 와도 안 끝난다면?
쉬는 시간이 생겨서 좋을 수도 있겠지만, 생산성에는 좋지 못한 요소일 것입니다.

컴파일 시간을 최적화하고 30분 빨리 퇴근해봅시다!
내가 놓치고 있던 컴파일 시간 최적화 방법들을 살펴봅니다.

 

3. 빌드타임 성능 최적화

 

빌드할 때 컴파일만으로 끝나는 것은 아니죠. 링크도 중요한 과정입니다.
컴파일 성능 최적화에 대해 학습한 후에는, 전체적인 빌드타임 최적화를 위해 확인해야 할 점들을 살펴봅니다.
빌드타임에 커피 한 잔 하는 여유를 가질수 없게되니 손해인가요? ㅎㅎ


 

 

선수지식

 

이런 질문에 답할 수 있게 될거에요!

 

🧐 만약 면접에 이런 질문들이 나왔다면?

🙄 지금의 나는 뭐라고 답할 수 있을까?

스스로 자문해보면서 수강하는 것도 큰 도움이 될 것입니다.

 

Runtime Performance

  • Whole Module Optimizations(WMO)에 대해 설명해주세요.
  • WMO의 대표적인 장단점을 얘기해주세요.
  • 동적 디스패치와 정적 디스패치에 대해 설명해주세요.
  • 동적 디스패치 코드를 정적 디스패치 코드로 변경할 수 있는 몇가지 사례를 알려주세요.
  • 많은 요소가 포함된 값 타입의 배열을 Copy-on-write 이 동작하지 않게 할 수 있는 방법에 대해 설명해주세요
  • 힙 메모리 영역의 사용을 줄이려면 어떤 전략을 활용해볼 수 있을까요?
  • 구조체 내부에서 참조 카운팅이 일어날 수 있나요?
  • 제네릭을 활용했을 때 유리한 점을 컴파일러 관점에서 설명해주세요.
 

Compile Performance

  • 스위프트 컴파일러 최적화 단계에는 어떤 것들이 있고, 각 단계별로 어떤 상황에 활용되는지 알려주세요.
  • 코드에 타입을 명시할 때와 그렇지 않을때 일어나는 일들에 대해 설명해주세요.
  • Objective-C 코드와 Swift 코드를 혼용할 때, Swift의 요소를 모두 internal 단계로 지정하면 발생할 수 있는 문제점에 대해 설명해주세요.
 

Build Performance

  • 동적 링크와 정적 링크 방식의 차이를 설명해주세요.
  • 빌드 속도를 향상하려면 어떤 링크방식이 유리한지 설명해주세요.
  • 빌드 속도를 향상하는 것의 득과 실은 무엇이 있을까요?
  • CocoaPods는 어떤 링크방식을 기본적으로 제공하나요?
  • CocoaPods를 활용할 때 링크방식을 지정할 수 있나요? 할 수 있다면 어떻게 할 수 있나요?
  • 병합 가능한 라이브러리(Mergeable Library)에 대해 설명해주세요.
  • CocoaPods를 활용할 때 병합 가능한 라이브러리를 활용할 수 있나요? 할 수 있다면 어떻게 할 수 있나요?
 

이 코스를 추천합니다!

단순한 코드 작성자를 넘어,
사용자 경험과 애플리케이션의 성능을 극대화하는 전문가로
성장하는 데 필수적인 내용입니다.
성능 최적화의 기본 원리와 접근 방법은 항상 중요합니다.
이 코스를 통해 습득한 지식은
시간이 지나도 변치 않는 가치를 지니며,
개발자로서 여러분의 커리어를 장기간에 걸쳐 뒷받침할 것입니다.
iOS 앱 개발에 관심 있는 모든 개발자에게 이 코스를 강력히 추천합니다.
재르시
LEVVELS
앱의 규모가 커지면서 빌드 시간이 늘어나는 것이 신경 쓰이기 시작할 때 접하면 좋은 코스라고 생각합니다.
빌드 시간이 어째서 늘어나는지를 이해하고
빌드 시간을 줄일 방법을 막연한 추측이 아닌
올바른 방법을 제시할 수 있다 생각되어 추천합니다.
아실(신대성)
카카오

코스 Content

Expand All

2 thoughts on “High Performance Swift

답글 남기기

logo landscape small

사업자번호 : 743-81-02195
통신판매업 신고번호 : 제 2022-충북청주-1278 호
고객센터 : 카카오톡채널 @yagom