네트워킹 면접 질문
URLSession·HTTP/2·캐시·재시도·인증·WebSocket·오프라인. 실제 iOS 면접에서 나온 48문항입니다.
- 네트워킹주관식
URLSession 구조
URLSession.shared 하나로만 통신하던 앱을 넘겨받았습니다. URLSession이 요청 하나를 처리할 때 관여하는 객체들(세션·설정·태스크)의 역할을 설명해 주세요.
#urlsession #urlsessionconfiguration #task #shared
- 네트워킹객관식
백그라운드 전송
URLSession 을 쓰는 앱에서, 사용자가 앱을 홈으로 내보내도 대용량 파일 다운로드가 계속 진행되고, 완료까지 올바르게 처리되게 하려 합니다. 필요한 조건을 모두 고르세요.
#background-session #downloadtask #uploadtask
- 네트워킹주관식
Codable JSON 디코딩
서버 응답이 {"user_id": 3, "created_at": "2026-09-11T02:00:00Z"} 형태로 옵니다. 이 응답을 Codable로 Swift 모델에 매핑하는 과정을 설명해 주세요.
#codable #decodable #jsondecoder #serialization
- 네트워킹객관식
URLComponents 와 URL 인코딩
검색어 "café & bar"를 쿼리 파라미터 q에 실어 https://api.example.com/search에 보내려 합니다. URL 구성에 대한 설명으로 옳은 것을 모두 고르세요.
#urlcomponents #percent-encoding #query #url
- 네트워킹객관식
HTTP 메서드와 멱등성
REST API에서 같은 요청을 여러 번 보내도 서버 상태가 한 번 보낸 것과 같은(멱등한) 메서드를 모두 고르세요.
#rest #http-method #idempotent
- 네트워킹객관식카카오
HTTP 상태 코드 이해
HTTP 응답 상태 코드에 대한 설명으로 옳은 것을 모두 고르세요.
#http #status-code #401 #403
- 네트워킹객관식SAP
전송 계층 프로토콜과 데이터링크 기초
iOS 개발자 1차 면접에서 "전송 계층에는 어떤 프로토콜이 있고, 데이터링크 계층의 프레임과 ARP 는 무엇인가" 라는 네트워크 기초 질문을 받았습니다. 다음 설명 중 옳은 것을 모두 고르세요.
#tcp #udp #arp #osi
- 네트워킹주관식
불안정한 응답 스키마 처리
Codable 로 다음 모델에 응답을 디코딩하는데, 서버가 nickname 필드를 어떤 응답에는 넣고 어떤 응답에는 아예 빼고 보냅니다. 지금 코드에서 무슨 일이 생기나요? [코드]
#codable #optional #decodeifpresent #schema
- 네트워킹객관식
Codable 디코딩 결과 예측
Codable 로 JSON 을 디코딩하는 다음 코드를 실행하면 어떻게 되나요? [코드]
#codable #decodable #optional #null
- 네트워킹주관식
API 에러 처리 설계
네트워크 계층에서 completion(nil)로 실패를 뭉뚱그려 넘기는 코드를 봤습니다. 시니어라면 API 에러를 어떻게 모델링하고 화면까지 전달하겠습니까?
#error-handling #result #typed-throws #http-status
- 네트워킹주관식
재시도 전략
결제 확인 API가 가끔 타임아웃이 납니다. 후배가 "실패하면 3번 더 보내자"는 PR을 올렸습니다. 어떤 점을 지적하시겠습니까?
#retry #exponential-backoff #jitter #idempotency
- 네트워킹객관식
재시도 대상 판단
멱등한 GET 요청이 실패했습니다. 자동 재시도(백오프 포함)가 적절한 실패를 모두 고르세요.
#retry #http-status #transient-error
- 네트워킹주관식
응답 캐싱과 메모리 캐시
이미지가 많은 피드 앱에서 메모리 경고가 자주 뜹니다. 응답 캐시를 어떻게 구성했어야 하는지 말해 주세요.
#urlcache #nscache #http-cache #memory-warning
- 네트워킹객관식
NSCache 특성
NSCache가 Dictionary와 다른 점으로 옳은 것을 모두 고르세요.
#nscache #dictionary #cache
- 네트워킹객관식
HTTP/1.1 vs HTTP/2
HTTP/1.1과 비교한 HTTP/2의 특징으로 옳은 것을 모두 고르세요.
#http2 #multiplexing #hpack #urlsession
- 네트워킹주관식
네트워크 연결 상태 처리
앱이 시작될 때 "인터넷 연결이 없습니다" 팝업을 띄우려고 Reachability 로 미리 검사하는 코드가 있습니다. 이 접근의 문제는 무엇입니까?
#nwpathmonitor #waitsforconnectivity #reachability #connectivity
- 네트워킹주관식
동기 요청과 async/await 전환
레거시 코드에 DispatchSemaphore로 URLSession 응답을 기다려 '동기'로 만든 함수가 있고, 더 오래된 곳엔 NSURLConnection.sendSynchronousRequest도 남아 있습니다. 왜 문제인가요?
#async-await #urlsession #nsurlconnection #main-thread
- 네트워킹객관식Google
서드파티 없이 이미지 다운로드
온사이트 화이트보드에서 "Kingfisher 같은 라이브러리 없이 URL 목록의 이미지를 받아 리스트 셀에 표시하라"는 과제를 받았습니다. 올바른 설명을 모두 고르세요.
#urlsession #datatask #downloadtask #main-thread
- 네트워킹주관식DoorDash
제공된 completion 코드와 비동기 스타일 선택
코딩 스크린에서 회사가 준 completion handler 기반 네트워킹 코드와 JSON 파일로 리스트 화면을 만들라고 하면서, async/await·Combine·completion handler 중 무엇을 써도 좋다고 합니다. 무엇을 골라 제공된 코드를 어떻게 연결하겠습니까?
#async-await #continuation #combine #dependency-injection
- 네트워킹주관식ByteDance
HTTPS 패킷 캡처 원리와 방어
Charles·Proxyman 같은 도구는 HTTPS 로 암호화된 앱 트래픽을 어떻게 평문으로 보여 줄 수 있나요?
#https #mitm #proxy #certificate-pinning
- 네트워킹주관식Tencent
URLSession 리다이렉트 처리
로그인 후 Authorization 헤더를 붙여 보낸 요청이 서버에서 302 로 다른 호스트로 리다이렉트되자 401 이 돌아옵니다. 이 401 은 왜 생겼을까요?
#redirect #urlsession-delegate #authorization-header #302
- 네트워킹주관식Alibaba Group
HTTPDNS 의 목적과 부작용
특정 통신사·지역 사용자만 API 접속이 느리거나 엉뚱한 서버로 붙는다는 제보가 있고, 팀 선배는 "HTTPDNS 를 붙이자" 고 합니다. HTTPDNS 는 기존 DNS 의 어떤 문제를 겨냥한 것인가요?
#dns #httpdns #sni #cdn
- 네트워킹객관식토스
URLRequest 로 JSON POST 보내기
사전 과제로 URLRequest 를 써서 JSON 을 POST 하는 코드를 작성했습니다. 이 코드의 문제로 옳은 것을 모두 고르세요. [코드]
#urlrequest #post #content-type #status-code
- 네트워킹주관식지마켓글로벌
RESTful API 를 클라이언트 관점에서
면접관이 "RESTful API 가 뭔지 설명해 보라" 고 했습니다. 교과서 정의를 넘어, iOS 클라이언트를 만드는 입장에서 REST 답게 설계된 API 와 그렇지 않은 API 의 차이가 클라이언트 코드에 어떻게 드러나는지 이야기해 주세요.
#rest #http-method #idempotent #api-design
- 네트워킹주관식Citi커뮤니티 전언
URLSession 위의 간단한 네트워킹 레이어 설계
폰스크린에서 "Swift 로 간단한 네트워킹 레이어를 설계해 보라" 는 질문을 받았습니다. 서드파티 없이 URLSession 위에 어떤 타입들을 두고 각 타입이 무엇을 책임지는지 설명해 주세요.
#networking-layer #endpoint #generic #error-handling
- 네트워킹주관식Calm
JSON 목록 받아 정렬해 표시하기(라이브 코딩)
시니어 iOS 가상 온사이트 라이브 코딩입니다. "공개 JSON API 에서 콘텐츠 목록을 받아 파싱한 뒤, 제목순 또는 날짜순으로 정렬해 보여 주는 앱" 을 검색 없이 만들어야 합니다. '정렬' 요구가 붙었을 때 정렬 키의 타입과 문자열 비교에서 특히 신경 써야 할 것은 무엇입니까?
#json #codable #sorting #live-coding
- 네트워킹주관식The New York Times커뮤니티 전언
XML 응답 파싱과 표시용 변환 계층
테이크홈 과제로 "자사 API 에서 XML 피드를 내려받아 목록으로 보여 주고, 영어 문자열을 임의의 '화성어' 로 바꿔 보여 주는 기능을 추가하라" 는 요구를 받았습니다. JSON 이 아닌 XML 을 서드파티 없이 Swift 에서 어떻게 모델로 파싱하겠습니까?
#xml #xmlparser #parsing #take-home
- 네트워킹주관식
HTTPS·TLS 동작
앱이 https://api.example.com에 요청을 보낼 때 첫 바이트가 오기까지 TLS 수준에서 무슨 일이 일어나는지 설명해 주세요.
#https #tls #certificate #ats
- 네트워킹주관식
이미지 업로드 파이프라인
프로필 사진 여러 장을 업로드하는 기능을 만든다고 합시다. 라이브러리가 대신해 주는 multipart 요청은 실제로 어떻게 생겼나요?
#multipart #upload #heic #photokit
- 네트워킹주관식
WebSocket 연결 관리
채팅 앱의 WebSocket 연결이 잘 끊기고, 끊긴 것을 앱이 늦게 알아챈다는 버그 리포트를 받았습니다. iOS에서 연결이 끊긴 것을 제때 알아채려면 어떻게 하겠습니까?
#websocket #urlsessionwebsockettask #reconnect #ping
- 네트워킹주관식
특정 네트워크 환경 장애 진단
"셀룰러에서는 되는데 회사 Wi-Fi에서만 이미지 업로드가 실패한다"는 제보가 왔습니다. 어떤 원인들을 의심하겠습니까?
#debugging #wifi #captive-portal #proxy
- 네트워킹객관식
async URLSession 취소
Swift Concurrency 로 URLSession 요청을 보내는 다음 코드에서 task.cancel()이 네트워크 응답보다 먼저 호출됐습니다. 결과는? [코드]
#async-await #cancellation #task #urlerror
- 네트워킹주관식
토큰 갱신 동시성
화면 진입 시 API 5개가 동시에 나가는데, 액세스 토큰이 만료돼 5개 모두 401을 받았습니다. 지금 코드는 각 요청이 각자 리프레시를 호출해 서버가 refresh token을 무효화해 버립니다(로그아웃 발생). 어떻게 고치겠습니까?
#auth #token-refresh #actor #401
- 네트워킹객관식
URLSessionConfiguration 옵션
URLSession 을 쓰는 앱에서, 지하철에서 잠깐 연결이 끊긴 사용자의 요청이 즉시 실패 대신 연결이 돌아올 때까지 기다렸다가 자동으로 진행되게 하고 싶습니다. 가장 적절한 설정은?
#urlsessionconfiguration #waitsforconnectivity #timeout
- 네트워킹주관식Apple
이미지 다운로더·캐시 설계(요청 병합)
코딩 인터뷰에서 "URL 로 이미지를 받아 오고, 이전에 받은 적이 있으면 캐시에서 돌려주는 ImageManager 를 30분 안에 만들어 보라"는 과제를 받았습니다. 같은 URL 을 여러 셀이 동시에 요청하는 경우를 어떻게 처리하겠습니까?
#image-cache #nscache #actor #in-flight
- 네트워킹주관식DoorDash
검색 요청 디바운스·취소·순서 역전
검색바에 글자를 입력할 때마다 서버 검색 API 를 호출해 결과 리스트를 갱신하는 화면을 서드파티 없이 만들라고 합니다. 타이핑이 빠른 사용자에게서 생기는 문제를 async/await 로 어떻게 해결하겠습니까?
#search #debounce #task-cancellation #race-condition
- 네트워킹주관식PayPal
송금 중 네트워크 단절과 멱등키
사용자가 송금 버튼을 눌렀는데 요청이 나간 직후 신호가 끊겼습니다. 앱은 무엇을 해야 하나요?
#idempotency #retry #payments #reliability
- 네트워킹객관식Revolut커뮤니티 전언
결제 요청 타임아웃 처리
결제 확정 POST /payments 요청이 URLError.timedOut 으로 실패했습니다. 옳은 설명을 모두 고르세요.
#timeout #idempotency #retry #urlsessionconfiguration
- 네트워킹주관식NetEase
대용량 파일 이어받기와 무결성
수백 MB 짜리 오디오 파일을 받다가 앱이 종료되거나 네트워크가 끊겼을 때, 처음부터 다시 받지 않고 이어받는 기능을 구현하려 합니다. HTTP 에서 어떤 헤더가 관여하나요?
#range-request #resume-data #download-task #integrity
- 네트워킹객관식Meituan
TLS 1.2 대비 1.3 의 변화
서버팀이 TLS 1.3 으로 올렸더니 앱 접속이 더 빨라졌다고 합니다. TLS 1.2 대비 1.3 의 변화로 옳은 것을 모두 고르세요.
#tls #tls13 #handshake #forward-secrecy
- 네트워킹객관식Sony커뮤니티 전언
대용량 미디어 다운로드 구현
비디오·오디오 파일(수백 MB~GB)을 앱에서 내려받아 오프라인 재생하는 기능을 만듭니다. URLSession 기반 구현에 대한 설명으로 옳은 것을 모두 고르세요.
#download-task #background-session #media #resume-data
- 네트워킹주관식코인원커뮤니티 전언
REST 스냅샷 + WebSocket 증분 스트림 정합성
거래소 앱의 호가·시세 화면입니다. 처음엔 REST 로 현재 스냅샷을 받고 이후 WebSocket 으로 변경분(증분)만 받아 갱신하도록 설계했는데, 가끔 화면의 호가가 실제와 어긋나는 버그가 있습니다. 스냅샷과 증분 스트림을 어떤 순서·규칙으로 결합해야 정합성이 깨지지 않나요?
#websocket #snapshot #sequence-number #orderbook
- 네트워킹객관식스푼라디오커뮤니티 전언
라이브 방송: HLS 와 WebSocket 의 역할 분담
라이브 오디오 방송 앱에서 방송 오디오는 HLS 로 재생하고 채팅은 WebSocket 으로 주고받습니다. 두 프로토콜의 특성과 선택 이유에 대한 설명으로 옳은 것을 모두 고르세요.
#hls #websocket #streaming #live
- 네트워킹주관식카카오엔터테인먼트커뮤니티 전언
HLS 위의 FairPlay Streaming 키 교환
음원·영상 스트리밍 앱에서 유료 콘텐츠를 HLS 로 재생하는데, 저작권 보호를 위해 FairPlay Streaming(DRM) 을 붙여야 합니다. HLS 재생 흐름 위에서 FairPlay 키 교환이 어떻게 일어나는지(앱·키 서버·AVFoundation 의 역할) 설명해 주세요.
#hls #fairplay #drm #avcontentkeysession
- 네트워킹주관식
네트워크 계층 관측과 요청 우선순위
"특정 지역 사용자만 앱이 느리다"는 리포트가 왔지만 서버 지표는 정상입니다. 앱의 네트워크 계층에서 무엇을 측정해 원인(DNS·연결·TLS·서버 대기·전송)을 나누겠습니까?
#urlsessiontaskmetrics #priority #http2 #connection-coalescing
- 네트워킹주관식PayPal커뮤니티 전언
API→리스트 실습 우선순위
1시간 실습으로 "공개 API를 호출해 리스트로 보여 주는 앱"을 만들라고 하면, 아키텍처·에러 처리·UI 성능을 평가한다고 합니다. 시니어로서 어떤 순서로 무엇을 만들겠습니까?
#live-coding #architecture #error-handling #pagination
- 네트워킹주관식
백그라운드 세션 완료 처리
백그라운드 URLSession으로 대용량 파일을 받는 중 사용자가 앱을 완전히 종료했습니다(스와이프 업은 아님, 시스템 종료). 다운로드가 끝났을 때 앱에서 정확히 무슨 일이 순서대로 일어나야 파일을 잃지 않나요?
#background-session #handleeventsforbackgroundurlsession #downloadtask #delegate
- 네트워킹객관식
HTTP 캐시 재검증
서버 응답이 Cache-Control: max-age=60과 ETag: "abc"를 포함했고 URLCache에 저장됐습니다. 기본 캐시 정책(.useProtocolCachePolicy)으로 90초 뒤 같은 GET을 보내면 URLSession은 무엇을 하나요?
#urlcache #etag #cache-control #304