빌드·배포 면접 질문
iOS 면접 질문 42문항을 풉니다. 주제는 Xcode 빌드, SPM, 코드 사이닝, TestFlight, App Store, CI/CD입니다.
- 빌드·배포주관식
의존성 관리 도구 비교
CocoaPods, Carthage, Swift Package Manager는 의존성을 프로젝트에 넣는 방식이 어떻게 다른가요?
#spm #cocoapods #carthage #dependency-manager
- 빌드·배포객관식
Swift Package Manager
Swift Package Manager에 대해 옳은 설명을 모두 고르세요.
#spm #package-swift #binary-target
- 빌드·배포주관식
브랜치 전략
Git 브랜치를 왜 나눠 쓰나요?
#git #branching #trunk-based #gitflow
- 빌드·배포주관식카카오
코드 사이닝 기본 요소
번들 ID, 인증서, Entitlements는 프로비저닝 프로파일과 어떻게 연결되나요?
#code-signing #bundle-id #certificate #provisioning-profile
- 빌드·배포주관식
OS 메이저 업데이트 대응
WWDC에서 새 iOS 메이저 버전이 발표되면 팀에서는 어떤 순서로 대응하나요?
#wwdc #ios-version #deployment-target #beta
- 빌드·배포객관식TikTok
CocoaPods install vs update
CocoaPods를 쓰는 프로젝트에서 pod install과 pod update의 차이로 옳은 것을 모두 고르세요.
#cocoapods #podfile #lockfile #dependency
- 빌드·배포객관식카카오
서명 오류 진단
동료 Mac에서는 되는데 내 Mac에서 아카이브하면 Provisioning profile "AppStore Profile" doesn't include signing certificate "Apple Distribution: ..." 에러가 납니다. 가장 가능성 높은 원인은?
#code-signing #provisioning-profile #certificate #xcode-error
- 빌드·배포주관식카카오
배포 방식 비교
Development, Ad Hoc, Enterprise(In-House), App Store(TestFlight 포함) 배포 방식은 서로 어떻게 다른가요?
#distribution #ad-hoc #enterprise #testflight
- 빌드·배포객관식
Deployment Target과 SDK
Deployment Target이 iOS 16인 앱에서 iOS 17에 추가된 API를 쓰려고 합니다. 컴파일과 런타임 모두 안전한 방법은?
#deployment-target #sdk #available #compatibility
- 빌드·배포객관식
TestFlight
TestFlight에 대해 옳은 설명을 모두 고르세요.
#testflight #beta #app-store-connect
- 빌드·배포주관식
빌드 환경 분리
개발·스테이징·프로덕션 서버를 하나의 프로젝트에서 나눠 빌드하려 합니다. 스킴, Build Configuration, xcconfig를 어떻게 구성하겠습니까?
#xcconfig #scheme #build-configuration #environment
- 빌드·배포객관식
Debug vs Release 구성
Xcode 기본 Debug 구성과 Release 구성의 차이로 옳은 것을 모두 고르세요.
#build-configuration #optimization #assert #testability
- 빌드·배포주관식
버전과 빌드 번호
CFBundleShortVersionString과 CFBundleVersion은 어떻게 다른가요?
#version #build-number #cfbundleversion #marketing-version
- 빌드·배포객관식
빌드 번호 규칙
버전 3.2.0, 빌드 120을 TestFlight에 올린 뒤 버그를 고쳐 다시 올리려 합니다. App Store Connect가 업로드를 받아 주는 조합은?
#build-number #testflight #app-store-connect
- 빌드·배포객관식카카오
App Store 배포 서명 요건
App Store에 제출할 빌드를 서명하는 데 필요한 것을 모두 고르세요.
#code-signing #distribution-certificate #provisioning-profile #app-store
- 빌드·배포객관식Mastercard
APNs 인증서·키 발급
푸시 서버가 쓸 APNs 인증 자료를 준비합니다. 옳은 설명을 모두 고르세요.
#apns #certificate #p12 #p8
- 빌드·배포객관식Pinduoduo
.ipa 구조
아카이브해서 내보낸 .ipa 파일의 압축을 풀어 봤습니다. 구조에 대해 옳은 설명을 모두 고르세요.
#ipa #bundle #code-signing #frameworks
- 빌드·배포주관식Flipkart
베타 테스트 운영
하이어링 매니저가 이력서를 보며 묻습니다. "베타 테스트와 CI/CD는 어떻게 운영했나요?" TestFlight 기반 베타 프로그램을 어떤 그룹 구성으로 운영했는지, 어떤 빌드를 언제 누구에게 보냈는지 설명해 주세요.
#testflight #beta #feedback #release-process
- 빌드·배포주관식카카오뱅크출처 확인 안 됨
fastlane 기반 CI/CD 구성
Jenkins(또는 GitHub Actions)와 fastlane으로 iOS CI/CD를 구성한다면 어떤 레인(lane)을 어떻게 나누겠습니까?
#fastlane #match #jenkins #ci-cd
- 빌드·배포주관식Tokopedia출처 확인 안 됨
Xcode 컴파일 시간 단축
이커머스 iOS 앱의 clean build가 15분을 넘겨 CI와 로컬 모두 느립니다. 어느 단계가 느린지 무엇으로 측정해 개선 우선순위를 정하겠습니까?
#xcode #build-time #modules #incremental-build
- 빌드·배포주관식카카오모빌리티출처 확인 안 됨
모바일 배포 자동화
택시 호출 앱의 iOS 배포가 한 사람의 Xcode 클릭에 의존합니다. CI에서 서명부터 TestFlight 업로드까지 자동으로 돌리려면 파이프라인을 어떻게 구성하겠습니까?
#ci-cd #testflight #signing #automation
- 빌드·배포주관식
iOS CI/CD 파이프라인
iOS 앱의 CI/CD 파이프라인을 처음부터 설계한다면, PR마다 도는 파이프라인은 어떤 단계로 구성하겠습니까?
#ci-cd #fastlane #xcode-cloud #testflight
- 빌드·배포주관식
App Store 심사 준비
첫 App Store 제출을 앞두고 있습니다. 심사 리젝을 줄이기 위해 제출 전에 무엇을 점검하겠습니까?
#app-review #rejection #guidelines #privacy
- 빌드·배포객관식
Privacy Manifest
PrivacyInfo.xcprivacy(Privacy Manifest)에 선언하는 항목을 모두 고르세요.
#privacy-manifest #required-reason-api #privacyinfo #app-store
- 빌드·배포주관식
빌드 시간 단축
클린 빌드 15분, 한 줄 고쳐도 증분 빌드 2분이 걸리는 프로젝트를 받았습니다. 어디부터 측정하겠습니까?
#build-time #incremental-build #modularization #type-checking
- 빌드·배포주관식
CI 코드 사이닝
CI 서버에서 아카이브와 App Store 업로드를 자동화하려 합니다. 인증서·프로비저닝 프로파일·App Store Connect 인증을 CI에서 어떻게 안전하게 다루겠습니까?
#code-signing #fastlane-match #ci #keychain
- 빌드·배포객관식
xcodebuild 아카이브·내보내기
CI에서 xcodebuild archive로 만든 .xcarchive를 App Store 업로드용 .ipa로 만들 때 필요한 ExportOptions.plist의 역할로 옳은 것은?
#xcodebuild #archive #export-options #ipa
- 빌드·배포주관식
SPM 의존성 버전 관리
SPM에서 의존성 버전 규칙(from:, upToNextMinor, exact, branch)을 어떤 기준으로 골라 쓰나요?
#spm #semantic-versioning #package-resolved #dependency-resolution
- 빌드·배포주관식
출시 리스크 관리
App Store에는 롤백이 없습니다. 새 버전에 치명적 버그가 있을 때 피해를 최소화하려면 출시 과정에 어떤 장치를 두겠습니까?
#phased-release #rollback #expedited-review #feature-flag
- 빌드·배포주관식Gojek
모노레포 vs 멀티레포
온사이트 질문입니다. "모노레포와 여러 개의 작은 레포 중 하나를 골라야 한다면 무엇을 고르고 왜 그렇게 하겠어요?" iOS 앱과 사내 모듈(디자인 시스템·네트워킹·기능 모듈) 조직을 가정하고 답해 주세요.
#monorepo #multi-repo #spm #ci
- 빌드·배포주관식Zomato
Tuist 프로젝트의 SPM 의존성
Tuist로 생성하는 프로젝트에 서드파티 라이브러리를 SPM으로 넣으려면 어떻게 구성하나요?
#tuist #spm #dependencies #project-generation
- 빌드·배포주관식Meituan
컴파일에서 실행 파일까지
Swift 소스 파일이 iPhone에서 실행되는 바이너리가 되기까지 어떤 단계를 거치나요?
#compiler #llvm #linker #static-library
- 빌드·배포주관식Baidu
심사 없는 핫픽스와 동적 코드 금지
출시된 앱에 치명적인 버그가 있는데 App Store 심사를 기다릴 수 없습니다. 과거 중국 앱들이 쓰던 JSPatch 같은 동적 코드 패치를 Apple은 왜 금지했고 어떻게 검출했나요?
#hotfix #feature-flag #remote-config #app-review
- 빌드·배포주관식Alibaba Group
A/B 실험과 전량 롤아웃
앱에 A/B 실험 기능을 넣으려 합니다. 사용자 배정은 어디서 어떻게 하겠습니까? 클라이언트 관점의 설계를 말해 주세요.
#ab-test #experiment #feature-flag #rollout
- 빌드·배포주관식신한카드출처 확인 안 됨
Tuist 모듈화 프로젝트 구성
Tuist로 모듈화 프로젝트를 처음부터 구성해 본 경험을 묻습니다. 모듈을 어떤 단위와 계층으로 나눴는지 설명해 주세요.
#tuist #modularization #project-generation #build-cache
- 빌드·배포주관식밀리의서재출처 확인 안 됨
App Store Connect API 배포 자동화
TestFlight 업로드부터 심사 제출·단계적 출시까지 사람 손 없이 돌리려 합니다. App Store Connect API로 무엇까지 자동화할 수 있나요?
#app-store-connect-api #fastlane #spm #automation
- 빌드·배포주관식여기어때출처 확인 안 됨
Tuist 모듈 의존성
숙박 예약 앱의 Tuist 멀티모듈 프로젝트에서 Feature 모듈들이 서로의 구현 모듈을 직접 import해 하나만 고쳐도 전체가 다시 빌드됩니다. 모듈 의존 구조를 어떻게 바꾸겠습니까?
#tuist #modules #dependency-graph #interface
- 빌드·배포주관식더스윙출처 확인 안 됨
Fastlane 릴리스 재현성
공유 킥보드 앱을 여러 사람이 각자 맥에서 Fastlane으로 배포하다 보니 빌드 번호와 환경 설정이 사람마다 달라집니다. 누가 돌려도 같은 결과가 나오게 하려면 lane의 입력을 어떻게 고정하겠습니까?
#fastlane #github-actions #release #artifact
- 빌드·배포주관식
대규모 팀 CI/CD 설계
iOS 개발자 100명 이상이 하나의 앱을 만드는 조직입니다. 하루 수백 개 PR이 들어오는데, PR 각각은 CI를 통과했는데도 합치고 나면 main이 깨지는 일이 잦습니다. CI/CD를 어떻게 설계해야 main이 깨지지 않고 배포 주기를 유지할 수 있을까요?
#ci-cd #monorepo #merge-queue #modularization
- 빌드·배포주관식
정적 vs 동적 링킹
앱이 동적 프레임워크 40개를 임베드하고 있습니다. 정적 링크로 바꾸면 무엇이 좋아지고 무엇이 나빠지나요?
#static-library #dynamic-framework #mergeable-libraries #dyld
- 빌드·배포객관식
XCFramework
사내 SDK를 소스 비공개 바이너리로 배포하려 합니다. XCFramework가 필요하거나 함께 요구되는 것을 모두 고르세요.
#xcframework #binary-distribution #library-evolution #sdk
- 빌드·배포주관식
대규모 프로젝트 빌드 시스템
모듈 100개 이상인 앱에서 project.pbxproj 충돌과 느린 빌드로 팀이 고통받고 있습니다. 프로젝트 생성 도구(XcodeGen/Tuist)와 Bazel 같은 빌드 시스템 중 무엇을 어떤 기준으로 선택하겠습니까?
#tuist #xcodegen #bazel #pbxproj