모바일 개발자 기술면접, 내가 쓴 커밋으로 대비하기
모바일 개발자 기술면접은 화면을 그릴 줄 아는지가 아니라, 앱이 언제든 죽고 되살아나는 환경을 전제로 짰는지를 봅니다. 회전·백그라운드 전환·네트워크 끊김에서 상태가 어떻게 되는지가 핵심 질문거리입니다. 이 페이지는 모바일 면접의 조준점을 정리하고, 데브핏(DevFit)이 이용자 본인의 깃허브 커밋에서 그 질문을 어떻게 만들어 내는지 설명합니다.
모바일 면접에서 면접관이 파고드는 지점
생명주기를 전제로 짰는가
화면이 파괴됐다 복원될 때 진행 중이던 작업과 입력값이 어떻게 되는지. 상태 저장 코드가 있으면 «무엇을 저장 대상으로 골랐나요»가 따라옵니다.
오프라인과 동기화를 다뤘는가
로컬 DB에 먼저 쓰고 나중에 올리는 구조라면 충돌은 누가 이기는지. 낙관적 업데이트 커밋은 «실패하면 화면을 어떻게 되돌리나요»로 이어집니다.
권한과 거절 경로를 처리했는가
권한을 요청하는 시점, 영구 거절 상태의 처리. 권한 코드가 있으면 «사용자가 «다시 묻지 않음»을 누르면요»가 나옵니다.
메모리와 이미지를 신경 썼는가
리스트에서의 이미지 로딩, 캐시 크기, 순환 참조. 이미지 라이브러리 도입 커밋은 «그 전에는 무엇이 문제였나요»를 부릅니다.
내 커밋에서 나올 수 있는 질문
아래는 모바일 코드에서 자주 만들어지는 형태의 질문입니다. 데브핏(DevFit)은 레포지토리 전체가 아니라 이용자 본인이 작성한 커밋과 diff만 조준해, 질문마다 근거가 되는 커밋·파일 경로를 함께 붙입니다.
- “이 화면이 백그라운드에 갔다 돌아오면 진행 중이던 업로드는 어떻게 되나요?”
- “로컬에 먼저 쓰고 서버에 올리는데, 서버 값과 다르면 어느 쪽이 이기나요?”
- “권한을 영구 거절한 사용자는 이 기능을 어떻게 쓰게 되나요?”
- “이 리스트에서 이미지가 100개 넘어가면 메모리가 어떻게 되나요?”
코드에 “없는 것”도 질문이 됩니다
면접에서는 짠 것만큼 안 짠 것도 물어봅니다. 데브핏은 아래 같은 부재 신호를 결정론적으로 찾아 질문으로 만듭니다.
- 네트워크 실패 분기 없는 API 호출 → «비행기 모드에서 이 화면은 어떻게 보이나요?»
- 테스트 없이 동기화 로직만 있는 커밋 → «충돌 케이스를 어떻게 확인하셨어요?»
- CI 없이 수동 빌드만 있는 레포 → «릴리스 빌드는 누가 언제 만드나요?»
자주 다루는 기술
- Swift
- Kotlin
- SwiftUI
- Jetpack Compose
- Flutter
- React Native
다만 질문은 기술 이름에서 나오지 않습니다. 같은 Swift를 써도 커밋마다 고른 선택이 다르고, 면접관이 파고드는 건 그 선택입니다. 그래서 데브핏은 기술 스택별 표준 질문지가 아니라, 겨냥한 채용공고 1건과 내 깃허브(GitHub) 커밋을 함께 읽어서 질문을 만듭니다.
모바일 공고 하나로 시작해 보세요
채용공고 URL을 붙여 넣으면 포지션과 요구 사항을 정리하고, 연결한 레포지토리에서 내가 쓴 커밋을 찾아 예상 질문과 어필 포인트를 만듭니다. 공고 1개가 준비 1회분입니다. 하루 10회까지 무료입니다. 합불 판정이나 지원자 랭킹은 만들지 않고, 최종 판단은 사람이 합니다.
공고 넣고 시작하기모바일 면접에서 함께 나오는 CS 개념
커밋에서 나온 질문은 대부분 개념 질문으로 이어집니다. 아래 문서는 모바일 면접에서 그 다음 질문으로 자주 넘어가는 주제입니다.
- 네이티브 앱, 웹 앱, 하이브리드 앱 (Native, Web, Hybrid App)
- 웹 인증 방식 총정리 (Authentication)
- JWT (JSON Web Token)
- HTTP와 HTTPS (HTTP and HTTPS)
- 프로세스와 스레드 (Process vs Thread)
- 메인 메모리와 메모리 관리 (Main Memory)