SwiftUI 면접 질문
State/Binding/Observable·뷰 identity·레이아웃·성능·UIKit 연동. 실제 iOS 면접에서 나온 49문항입니다.
- 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하면 잘 동작하는데, Ho…
#environment #environmentobject #injection #crash
- SwiftUI주관식
SwiftUI 뷰 생명주기
SwiftUI 뷰에는 UIKit 같은 viewDidLoad/viewWillAppear가 없습니다. 뷰가 '만들어지고, 나타나고, 갱신되고, 사라지는' 과정이 실제로 어떻게 진행되나요?
#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
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을 쓰는 것은 무엇이 다르고, 왜 검색에는 switchTo…
#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