iOS 면접 후기-2

유재경·2021년 6월 10일
3

소개

이미 앱을 출시한 회사에서 신규 프로젝트를 진행중
원티드로 이력서 제출 후 다음 날 메일로 전화면접 일정을 잡음
회사와 구성원에 대해 간략한 소개를 해주시고 50분 간 전화면접
전화면접은 처음이었는데도 떨린 건 마찬가지..!

면접

  • 방식

전화면접, 기술면접

  • 질문
  1. 자기소개(지원 동기, 어떠한 노력을 하고 있는지)
  2. Objective-C에서 Swift로 옮겨간 이유
  3. Swift 언어의 특징
    (답: 함수형 + 객체지향형)
  4. call By Reference와 call By Value의 차이, swift에서 call By Value는 무엇이 있는가?
  5. OOP에서 다형성을 구현하는 법
    (답: 1.class, 2.protocol(interface))
  6. class와 protocol을 정의와 사용성 측면에서 차이점
    (답: class는 다중상속이 불가, protocol은 다중상속이 가능해서 여러 개 합성할 수 있음)
  7. forEach와 for-loop의 차이점
    (답: forEach는 break를 걸어도 끝까지 수행하고, for-loop는 break를 걸면 멈추기 때문에 성능 측면에서 for-loop를 거는 것이 나을 수 있다.)
  8. Functional Programming의 장점과 단점
    (답: Side-Effect 줄이고 OOP에서 객체가 state를 가지는 문제점을 해결할 수 있으나, state가 없다는 것이 단점이 되기도 한다. 함수형 프로그래밍에는 인자가 없고 코드가 장황+분산. 또한 Pure-functional로 구현하면 코드를 따라가기 힘들고, value type으로 복사가 되어 성능 저하가 일어날 수 있다. 그치만 요새 모던한 기기들로 성능이 좋아져서 큰 문제까진 아닐 것이다.
  9. HTTP 통신할 때 status code는 무엇이고 종류는?
  10. Dependency Injection은 무엇인가?
    (답: 객체가 하는 일의 부담을 다른 객체에게 나눔, 분할 + Swift는 다른 언어에 비해 IOC가 잘 이루어지고 있지 않지만 매우 중요한 개념이므로 꼭 알아두라고 하셨다.)
  11. 의존성 주입할 때 두 가지 형태와 그 차이점
    (답: 1.class 2. protocol)
  12. MVVM의 장점과 단점(+ 오히려 MVC보다 코드 수가 더 많아질 수 있다. Sync의 경우 심플하지만 Async의 경우.. 그럼에도 장점이 더 커서 이 회사는 AOS/iOS 아키텍쳐를 모두 MVVM을 차용하고 있다고 밝힘)
  13. 앱 배포 후 issue, crash가 일어났는지 어떻게 확인할 수 있는가? (답: 코드 내에 error log를 찍어두거나 notification을 자동으로 메일로 보내주도록 remote logging을 이용)
  14. 개인프로젝트에서 CoreData를 사용했는데 내부 데이터를 저장하는 경우 단점은?
    (답: 하위 호환 문제, serialization, 무결성이 깨지는 경우. 외부 서버에 저장하고 불러오는 것이 안전)
  15. 앱 제출 시 서비스 개발 서버와 Real 서버의 주소가 다르게 어떻게 코드를 변경하는가?
    (답: xcconfig에 식별자만 다르게 해서 주입?)

후기

5,60% 밖에 제대로 대답하지 못했음에도 친절하게 설명 + 대답한 것에 대해서도 보충설명해주셔서 현직자에게 과외받는 기분이라 너무 감사했다.
내가 경력이 없는 걸 감안해서 나름 쉽게 질문을 주신 것 같은데도 명확히 답하지 못해서 기초를 다시 다져야겠다고 생각했다.
'면접 망했다...'라는 생각보다는 너무 유익한 시간이어서 50분 내내 배워간 것 같은 기분에 잘 정리해놓고 보충학습 해야겠다고 생각이 들었다.
확실히 혼자 공부하는 것에는 한계가 있고 하루 빨리 현업에 투입되어 일해야할 필요성을 느끼게 된 계기가 되었다. 역시 N사 iOS, 서버 개발 출신 면접자는 다르구나..
꼬리 질문으로는 차이점, 단점, 왜 쓰는지? 등에 대해 deep한 질문들이 주였고 대답이 늦어지면 약간의 힌트도 주셨다.
뽑아주면 정말 배울 것이 많은 브레인 집단인 것 같고, 안 뽑아주셔도 유익한 시간이라 후회가 없다.
2차 면접 제의를 받았고 이 면접은 꼭 가보고싶어서 가기로 결정했다..!

Need To Learn
OOP, 다형성, 함수형 프로그래밍의 단점, 제어의 역전, Dependency Injection, class와 protocol 차이, The Twelve-Factor

profile
iOS 개발

1개의 댓글