개발 토막 상식

iOS 개발자를 위한 토막상식 2

Devleoper_yh 2025. 4. 15. 22:48
반응형

iOS 개발자를 위한 토막 상식 두 번째.

 

1. guard문은 if let보다 깔끔한 탈출문이다.

  • 옵셔널 바인딩 시 guard는 실패 조건에 초점을 맞춰 조기 탈출할 수 있도록 한다.
  • 코드 흐름을 납작하게(flat하게) 만들어 가독성을 높힌다.
func login(user: User?) {
    guard let user = user else {
        print("유저 정보 없음")
        return
    }
    print("환영합니다, \(user.name)")
}

 

2. weak self는 언제나 필요한 건 아니다.

클로저 안에서 self를 캡처할 때 retain cycle이 생기면 앱이 메모리를 놓지 않음

하지만 self가 살아 있어야 하는 작업이라면 unowned self도 가능

팁: 단순한 비동기 처리에서 DispatchQueue.main.asyncself 사용 시 retain cycle 발생 가능

3. LaunchScreen.storyboard는 커스터마이징 최소화

  • 애플 가이드: 앱 첫 화면과 비슷한 스타일로 정적 UI만 구성
  • 애니메이션이나 동적 요소 금지
  • 사용자의 로딩 스트레스를 줄이기 위한 착각 효과용 뷰임

4. SF Symbols는 가볍고 일관된 아이콘의 친구

  • iOS 13+부터 사용 가능
  • Image(systemName: "star.fill")처럼 간단히 적용 가능
  • ⚠️ 단, 시스템 버전에 따라 지원 여부가 다르니 하위 호환성 주의

5. ViewDidLoad vs ViewWillAppear 차이점은?

  • viewDidLoad: 뷰가 메모리에 올라올 때 1회 실행
  • viewWillAppear: 화면이 등장할 때마다 호출
  • 실전 팁: 네트워크 요청이나 UI 초기화는 viewWillAppear에서 주로 수행
반응형