SwiftUI 면접 질문
iOS 면접 질문 49문항을 풉니다. 주제는 State/Binding/Observable, 뷰 identity, 레이아웃, 성능, UIKit 연동입니다.
- SwiftUI주관식
SwiftUI vs UIKit 렌더링 모델
SwiftUI는 UIKit과 화면을 그리는 방식이 근본적으로 어떻게 다른가요?
#swiftui #uikit #declarative #rendering
- SwiftUI객관식
@State와 @Binding
SwiftUI 설정 화면입니다. 토글 스위치를 가진 자식 뷰 SettingsRow가 부모가 소유한 isOn 값을 읽고 변경도 해야 합니다. 자식 뷰의 프로퍼티 선언으로 알맞은 것은?
#state #binding #data-flow #source-of-truth
- SwiftUI주관식
@State 갱신 문제 진단
SwiftUI 에서 @State 값을 바꿨는데 화면이 갱신되지 않는다는 주니어의 질문을 받았습니다. 먼저 @State가 무엇인지 설명해 주세요.
#state #update #debugging #observable
- SwiftUI주관식
App 진입점과 Scene
SwiftUI 앱에서 @main은 무엇을 뜻하나요?
#main #app-protocol #scene #windowgroup
- SwiftUI객관식
sheet 표시
SwiftUI 목록에서 항목을 탭하면 그 항목의 상세를 sheet로 띄우려 합니다. 항목이 여러 개일 때 가장 적절한 방법은?
#sheet #modal #presentation #item
- SwiftUI주관식
NavigationStack 내비게이션
SwiftUI에서 화면 간 이동은 어떻게 구현하나요?
#navigationstack #navigationpath #navigationlink #deep-link
- SwiftUI객관식PayPal
모디파이어 순서
SwiftUI 코드를 함께 보며 수정하는 면접입니다. 아래 두 코드의 렌더링 결과에 대한 설명으로 옳은 것은? …
#modifier #background #padding #modifier-order
- SwiftUI객관식Fidelity Investments
프로퍼티 래퍼 선택
SwiftUI 에서 상황과 프로퍼티 래퍼가 올바르게 짝지어진 것을 모두 고르세요. (iOS 16, ObservableObject 기준)
#state #stateobject #observedobject #environmentobject
- SwiftUI주관식
View가 struct인 이유
UIView는 class인데 SwiftUI의 View는 왜 struct로 설계됐나요?
#view #struct #value-type #protocol
- SwiftUI객관식
@StateObject vs @ObservedObject
SwiftUI 뷰입니다. 다음 코드에서 부모 뷰가 재평가될 때마다 ItemListView의 데이터가 초기화되는 버그가 있습니다. 원인과 올바른 수정은? …
#stateobject #observedobject #observableobject #lifetime
- SwiftUI객관식
Observation 마이그레이션
SwiftUI 앱의 ObservableObject 기반 코드를 @Observable로 옮길 때 올바른 대응을 모두 고르세요.
#observable #migration #bindable #environment
- SwiftUI주관식
데이터 흐름 설계
SwiftUI에서 '단일 진실의 원천' 원칙을 기준으로, 어떤 상태를 어느 뷰가 소유하게 할지 어떻게 정하나요?
#data-flow #source-of-truth #binding #environment
- SwiftUI객관식
Environment 주입
SwiftUI 앱에서 아래처럼 .environment(session)을 중간 뷰(HomeView)에서 주입했습니다. @Environment(Session.self) var session을 쓰는 ProfileView를 NavigationStack 안에서 push하면 잘 동작하는데…
#environment #environmentobject #injection #crash
- SwiftUI주관식
SwiftUI 뷰 생명주기
SwiftUI 뷰에는 UIKit 같은 viewDidLoad/viewWillAppear가 없습니다. 뷰가 '만들어지고, 나타나고, 갱신되고, 사라지는' 과정이 실제로 어떻게 진행되나요? 뷰 struct와 상태(@State)의 수명이 어떻게 다른지를 중심으로 설명해 주세요.
#lifecycle #onappear #task #body
- SwiftUI주관식
UIKit 연동
UIKit 앱에 SwiftUI 화면을 넣으려면 어떻게 하나요?
#uiviewrepresentable #uihostingcontroller #interop #coordinator
- SwiftUI객관식
UIViewRepresentable 동작
SwiftUI 의 UIViewRepresentable에 대한 설명으로 옳은 것을 모두 고르세요.
#uiviewrepresentable #coordinator #updateuiview #interop
- SwiftUI객관식
스택과 Spacer 레이아웃
다음 SwiftUI 뷰의 레이아웃 결과에 대한 설명으로 옳은 것을 모두 고르세요. …
#hstack #spacer #frame #maxwidth
- SwiftUI주관식
재사용 컴포넌트 설계
디자인 시스템의 '카드' 컴포넌트를 SwiftUI로 만들어 여러 화면에서 재사용하려 합니다. 어떤 방법(커스텀 View, ViewModifier, Style 프로토콜 등)을 언제 쓰는지 기준과 함께 설명해 주세요.
#viewmodifier #reusable #viewbuilder #style
- SwiftUI객관식
@Published와 뷰 갱신
SwiftUI 에서 ObservableObject의 @Published가 뷰를 갱신하는 방식에 대한 설명으로 옳은 것을 모두 고르세요.
#published #observableobject #objectwillchange #combine
- SwiftUI객관식Capital One
onChange vs onReceive
SwiftUI 의 onChange(of:)와 onReceive(_:)에 대한 설명으로 옳은 것을 모두 고르세요.
#onchange #onreceive #combine #modifier
- SwiftUI주관식삼성전자
List 스크롤 이상 진단
SwiftUI List를 스크롤하면 끊기고, 행의 토글·이미지가 엉뚱하게 바뀌거나 깜빡인다는 제보를 받았습니다. 원인을 어떤 순서로 의심하고 무엇으로 해결하나요?
#list #lazyvstack #identifiable #performance
- SwiftUI객관식삼성전자
폼 검증 상태 설계
SwiftUI 라이브 코딩입니다. 이름·ID·비밀번호·비밀번호 확인 네 필드와 제출 버튼이 있는 가입 화면에서, 이름/ID가 비면 경고 alert, 비밀번호가 다르면 경고 alert, 모두 통과하면 성공 메시지를 띄워야 합니다. 상태 설계로 옳은 것을 모두 고르세요.
#form #validation #alert #state
- SwiftUI주관식Swiggy
UIKit → SwiftUI 마이그레이션 난점
UIKit으로 만든 서비스 앱을 SwiftUI로 옮기려 합니다. 어떤 전략으로 도입하나요?
#migration #uihostingcontroller #navigation #interop
- SwiftUI주관식Zomato
상태 기반 뷰 전환(Add ↔ Stepper)
SwiftUI 15분 라이브 코딩입니다. 'Add' 버튼을 탭하면 같은 자리에 수량 스테퍼(−/+)가 나타나고, 수량이 0이 되면 스테퍼가 사라지고 다시 'Add' 버튼이 보여야 합니다. 상태를 어떻게 잡고 뷰를 어떻게 구성하나요?
#state #conditional-view #stepper #animation
- SwiftUI주관식Robinhood
Swift Charts 구현
온사이트 코딩입니다. 주식 앱의 최근 30일 종가 데이터를 Swift Charts로 선 그래프로 그리고 축·범위·오늘 값 강조까지 넣으려면 Chart를 어떻게 구성하나요?
#swift-charts #chart #linemark #visualization
- SwiftUI주관식Alibaba Group
WidgetKit과 SwiftUI
홈 화면 위젯 개발을 맡았습니다. 위젯은 왜 UIKit이 아니라 SwiftUI로만 만들 수 있나요?
#widgetkit #widget #timeline #appintent
- SwiftUI주관식Mercari
SwiftUI 상태 소유권
SwiftUI 상품 편집 화면에서 부모 뷰가 상품 모델을 소유하고 자식 뷰는 가격 필드 하나만 고칩니다. @State, @Binding, @Observable 중 무엇을 어디에 두겠습니까?
#swiftui #state #binding #observation
- SwiftUI주관식HSBC출처 확인 안 됨
SwiftUI와 UIKit 선택
UIKit으로 만들어진 금융 앱에 계좌 상세 화면을 새로 추가합니다. 이 화면을 SwiftUI로 만들지 UIKit으로 만들지 어떤 기준으로 정하겠습니까?
#swiftui #uikit #integration #hosting-controller
- SwiftUI주관식Peloton출처 확인 안 됨
SwiftUI tally 화면의 단일 상태
SwiftUI로 만든 카운터 화면에 증가, 감소, 초기화 버튼과 현재 값 표시가 있습니다. 버튼을 눌렀는데 표시 숫자와 실제 값이 어긋나는 일이 없게 하려면 상태를 어떻게 두겠습니까?
#swiftui #state #counter #single-source
- SwiftUI주관식Expedia출처 확인 안 됨
SwiftUI API 로딩 상태
SwiftUI 목록 화면이 호텔 API로 데이터를 불러옵니다. 로딩 중, 성공, 결과 없음, 오류 네 가지를 화면에서 빠짐없이 다루려면 상태를 어떻게 모델링하겠습니까?
#swiftui #task #loading-state #api
- SwiftUI주관식요기요출처 확인 안 됨
SwiftUI 비동기 MainActor 상태
SwiftUI 주문 목록 ViewModel이 async API를 호출한 뒤 결과로 화면 상태를 바꿉니다. Swift 6 strict concurrency에서 이 ViewModel의 어느 부분을 @MainActor로 격리하겠습니까?
#swiftui #mainactor #async-await #error-state
- SwiftUI주관식빗썸출처 확인 안 됨
List 항목 identity
실시간 시세를 보여 주는 SwiftUI List에서 가격이 갱신될 때마다 행이 깜빡이며 다시 나타나고 스크롤 위치가 튑니다. 모델의 Identifiable id를 어떻게 정의해야 합니까?
#swiftui #list #identity #realtime
- SwiftUI주관식중고나라출처 확인 안 됨
단방향 상태 흐름
SwiftUI로 만든 중고 거래 물품 등록 화면에 입력 필드, 검증, 제출, 오류 표시가 얽혀 있습니다. 단방향 상태 흐름으로 정리한다면 뷰의 이벤트와 상태가 각각 어느 방향으로 흐르게 하겠습니까?
#swiftui #unidirectional #state #validation
- SwiftUI주관식
Observation 프레임워크
SwiftUI 에서 iOS 17의 @Observable 매크로가 기존 ObservableObject + @Published 방식에 비해 무엇이 좋은지, 내부 동작의 차이를 근거로 설명해 주세요.
#observable #observation #observableobject #published
- SwiftUI주관식
뷰 정체성(identity)
다음 코드에서 isCompact를 토글하면 텍스트 필드에 입력하던 내용이 사라집니다. 이유를 SwiftUI의 '정체성' 개념으로 설명해 주세요. …
#identity #structural-identity #explicit-identity #id
- SwiftUI객관식
ForEach 식별자
SwiftUI 할 일 목록입니다. 다음 코드는 맨 앞에 항목을 삽입하면 삽입 애니메이션 대신 모든 행이 깜빡이고, 각 행의 토글 상태가 한 칸씩 밀립니다. 원인은? …
#foreach #identifiable #id #list
- SwiftUI주관식
SwiftUI 레이아웃 알고리즘
SwiftUI 레이아웃이 결정되는 3단계 과정을 설명해 주세요.
#layout #proposal #size #frame
- SwiftUI주관식
SwiftUI에서 MVVM
iOS 17 이상을 지원하는 SwiftUI 앱의 화면에 MVVM을 적용한다면 ViewModel을 어떻게 정의하고 뷰가 어떻게 소유하나요?
#mvvm #viewmodel #observable #mainactor
- SwiftUI객관식
.task와 onAppear
SwiftUI 뷰에서 데이터를 로드하는 다음 두 코드의 동작 차이로 옳은 것은? …
#task #onappear #cancellation #async
- SwiftUI주관식
SwiftData와 SwiftUI 통합
새 SwiftUI 앱의 로컬 저장소로 Core Data 대신 SwiftData를 골랐습니다. SwiftData는 SwiftUI와 어떻게 통합되나요?
#swiftdata #coredata #query #modelcontainer
- SwiftUI주관식Capital One
switchToLatest 검색 파이프라인
SwiftUI 검색 화면에서 입력할 때마다 API를 호출하는 Combine 파이프라인을 만들려 합니다. map { query in api.search(query) } 뒤에 switchToLatest()를 쓰는 것과 flatMap을 쓰는 것은 무엇이 다르고, 왜 검색에는…
#combine #switchtolatest #flatmap #debounce
- SwiftUI주관식Capital One
Combine 기반 목록·상세 앱 라이브 코딩
20분 라이브 코딩입니다. Combine만 사용해 API에서 목록을 받아 보여 주고, 항목을 탭하면 상세 화면으로 가는 2화면 SwiftUI 앱을 만들어 보세요. 뷰모델과 상태를 어떻게 잡고 시작하나요?
#combine #live-coding #navigationstack #observableobject
- SwiftUI주관식크림
@Observable 소유와 전달
iOS 17 @Observable 클래스를 SwiftUI 뷰에서 다룰 때, '누가 소유하는가'와 '어떻게 전달하는가'를 기준으로 @State·일반 프로퍼티·@Bindable·@Environment를 각각 언제 쓰는지 설명해 주세요.
#observation #observable #state #bindable
- SwiftUI주관식휴레이포지티브
검색 탭 설계(iTunes Search)
과제입니다. iTunes Search API로 앱스토어 '검색' 탭을 SwiftUI로 만드세요. 최근 검색어(로컬 저장), 검색 결과 리스트, 결과 상세 화면이 필요하고 외부 라이브러리는 금지입니다. 4~8시간 안에 '간결한 코드와 단순한 구조'로 끝내려면 화면 상태와 검색 요청…
#searchable #task-id #debounce #recent-searches
- SwiftUI주관식네이버웹툰
Observation 의존성 추적
iOS 17 SwiftUI에서 @Observable 모델의 프로퍼티 하나가 바뀌었을 때, 그 모델을 쓰는 뷰 전부가 아니라 일부 뷰만 다시 그려집니다. SwiftUI는 어느 뷰를 다시 그릴지 무엇을 기준으로 정하나요?
#observation #observable #swiftui #ios17
- SwiftUI주관식
SwiftUI 성능 진단
SwiftUI로 만든 대시보드 화면에서 텍스트 필드에 한 글자 칠 때마다 화면 전체가 버벅입니다. 무엇이 일어나고 있는지 가설을 세워 보세요.
#performance #body #printchanges #instruments
- SwiftUI주관식PayPal출처 확인 안 됨
SwiftUI 코드 결함 찾기
SwiftUI 라이브 코딩 리뷰입니다. 아래 피드 화면 코드에서 결함을 최대한 많이 찾아 각각 왜 문제인지, 어떻게 고칠지 말해 주세요. …
#debugging #code-review #observedobject #foreach
- SwiftUI객관식
Observation 추적 세분화
SwiftUI + Observation 기반 다음 코드에서 store.count만 증가시켰을 때 body가 재평가되는 뷰를 모두 고르세요. …
#observable #observation #tracking #body
- SwiftUI주관식
대용량 리스트 성능
수천 개 항목을 표시하는 SwiftUI 피드에서 스크롤이 끊깁니다. List와 ScrollView + LazyVStack의 내부 차이를 근거로 무엇을 선택하나요?
#list #lazyvstack #performance #anyview