공부하고 기록하는, 경제학과 출신 개발자의 노트

일상 속 생각

문과생이 독학으로 개발자 취업하기까지 - (2) 기술면접

inspirit941 2021. 1. 4. 08:40
반응형

2019년 하반기부터 2020년 하반기까지, 1년의 취준생 기간을 끝내고 이베이코리아 개발자로 공채 입사했다.

얼어붙은 취업시장에서 그나마 공채든 수시든 인턴이든 기회가 열리는 곳이 주로 개발직이라서
도전해보려는 취준생 분들이 있을 것 같다.

조금이나마 도움이 되었으면 해서 이것저것 회고 겸 정리하는 글.

 

모든 게 다 그렇지만, 취업하는 방법에 정답은 없었다.
비전공자 + 외부 교육과정 (Saffy / 국비지원교육 / 부스트캠프 등) 없이 공부해도
취업이 불가능하지는 않았다는 개인의 후기 정도로만 이해해주었으면 좋겠다.

2. 기술면접?

회사마다 기술면접의 정의를 다르게 하고 있는 듯했다.
진짜 CS지식만을 검증하는 기업, 인성면접 + 프로젝트 관련 질문 위주의 기업, 셋 다 하는 기업까지...


프로젝트 관련 기술스택을 준비하면 CS지식을 묻거나,
CS지식을 실컷 준비했더니 인성면접 위주로 면접이 진행되는 등 대비하기가 어렵다.
같은 회사라 해도 들어오는 면접관의 성향에 따라 질문내용이 조금씩 다를 수 있으니
결국은 CS지식 + 인성면접 + 프로젝트 기술스택 셋 다 준비해야 한다.

 


 

면접장에서 실제로 받았던 질문들 중 복기했던 것들을 정리하자면

 

1. 2020년 상반기 라인 공채 기술면접 - 약 45분. 면접관 3 : 면접자 1, Zoom 면접

 

  • Python과 Go언어의 차이점을 설명해보세요. (Python과 JS, Go언어를 해봤다는 자기소개서 내용 기반)
  • 입코딩으로 "캐시"를 구현해 보세요.
    조건: 데이터를 최대 n개까지 저장할 수 있으며. 캐시가 꽉 찼을 경우 LRU 방식으로 기존 데이터 제거 / 새 데이터를 추가할 수 있어야 한다.
  • 코드리뷰를 해본 적 있는지, 또는 오픈소스에 기여해본 적 있는지. 누군가의 코드를 리뷰한다면, 중요하게 생각하는 게 무엇인지

기본적인 내용을 확실히 알고 있는지 확인하려는 목적의 꼬리질문이 매우 많았다. 예컨대 캐시 구현을 위해 해시테이블 자료구조를 언급하고 시간복잡도 O(1)을 언급하면 "Open Addressing 방식에서 테이블 크기를 늘릴 때에는 O(n) 아니냐, 항상 O(1)이 맞는가?" 라던가.

올바른 답변을 할 수 있도록 유도해주기도 했다. 캐시 문제를 풀기 위해서는 해시테이블과 Double linked List 두 개의 자료구조를 활용해야 하는데, Double linked List를 떠올리지 못해서 헤메고 있으니 면접관이 먼저 자료구조를 언급하고, 자료구조의 특징을 설명해보라고 했었다.

 

면접 끝나고 복기하며 적었던 느낌을 그대로 옮기면

  • 비전공자인 걸 면접관이 알고 있어서 그나마 쉬운 문제를 줬던 것 같고, 유도도 잘 해줬던 것 같음. 준비가 부족했던 내 잘못
    친구들에게 들은 / 인터넷 검색하면서 본 면접질문은 이것보다 훨씬 더 어려웠었다.
  • 자소서 내용은 전혀 언급 없었음. 내 CS지식의 바닥이 어디까지인지 파헤쳐보려는 게 목적이었던 듯
  • 코드리뷰 관련해서 '프로그래밍 철학'을 물어본 점이 인상적이었음.
    "좋은 코드란 무엇인가"를 고민해봤어야 깊이있는 답변을 할 수 있었겠다

여지없이 탈락했지만, 첫 기술면접이 라인이었어서 오히려 다행이었다고 생각했다.
이 정도는 최소한 준비하고 생각해야 하는구나.. 라는 기준을 잡은 느낌.

 


 

 

2. 2020년 상반기 신한은행 ICT 기술면접 - 약 40분. 면접관 2 : 면접자 1, Zoom 면접

  • 비전공자인데, 개발직군을 지원한 이유가 무엇이었나
  • 코딩테스트 난이도는 어땠나, SQL 할만했는가 (코딩테스트에 SQL 문제가 있었다.), 주력 언어는 무엇인가 (Python)
  • 블록체인 기술을 은행에서는 어떻게 활용해야 한다고 생각하는가
    (블록체인 쪽 공모전 입상이력이 있었고, 지원서에도 블록체인 분야를 어필했었다)
  • 기술스택이나 이력을 보니 좀더 도전적인 기업(스타트업이나 IT기업)을 가도 될 것 같은데
    왜 여길 지원했는가 (이 질문만 세 번 나왔다)

CS 관련 질문이 40분 내내 없었다. 다른 사람들 후기를 보니 CS 질문만 40분 내내 물어본 사람도 있었다는데... 나는 그렇지 않았다.
"비전공자가 왜 개발직군에 지원하게 됐나" 같은... 인성면접같은 느낌의 면접이 내내 이어졌고
"왜 (굳이) 은행에 지원했나" 같은 질문을 세 번이나 받으면서 탈락을 예감했었다.
자소서에서도, 면접에서도 '신한은행이 ICT 다양한 분야에 도전해 왔다'는 사실과 '비전공자임에도 혼자 공부하고, 블록체인 공모전에 입상하면서 도전의 가치를 증명했다'는 내 이력을 충분히 연결지었다고 생각했는데... 잘 먹히지 않았던 모양이다.

 

탈락 결과를 받고도 오히려 납득이 안 갔던 면접.
기술면접인데, 내 어떤 기술적인 면을 검증하려 했는지 전혀 알 수 없는 질문 끝에 면탈했다.

 


 

3. 프로그래머스 2020 상반기 데브매칭 - 딜리셔스, 당근마켓

 

둘은 전혀 다른 기업이지만, 면접 질문내용이 비슷해서 합쳤음

  • 당근마켓: 약 30분, 면접관 1: 면접자 1, Zoom면접
    • 비전공자인데 개발직군에 지원한 이유가 무엇인지, 어떤 일들을 해왔는지 간략히
    • 입사하게 된다면 어느 분야에서 일하고 싶은지 - 서버 / 데이터 사이언스 등등...
    • 새로운 지식을 익혀야 할 때 보통 어떤 방법을 사용하는지
    • Docker / Containerize의 장점이 무엇인지? (유일한 기술관련 내용)

진짜 널럴하게 진행되었던 면접. 다른 당근마켓 면접후기에는 CS지식이나 프로젝트 내용 관련해서 치열하게 지원자를 검증하던 것 같은데..
이게 뭐지 싶은 30분의 시간으로 면접을 마치고 탈락. Containerize의 특징과 장점을 잘못 설명했었는데, 그것 때문인가?

 

  • 딜리셔스: 약 1시간 30분, 면접관 3: 면접자 1, 오프라인
    • 비전공자인데 개발직군에 지원한 이유가 무엇인지, 어떻게 개발공부를 해왔는지
    • 가장 좋았던 프로젝트 / 나빴던 프로젝트가 무엇이었으며 그 이유는 각각 무엇인지
    • 블록체인 공부해봤다고 하는데, 블록체인의 기본 프로세스를 설명해줄 수 있는가
      (비트코인의 transaction이 확률적 무결성을 확보하기까지의 과정)
    • Python 내부 코드를 뜯어본 적 있는지 (CPython을 말하는 듯했음)
    • 프로젝트에서 가장 많이 만들었던 Relation의 개수는 몇 개였는지
    • JDBC / ORM 개념을 알고 있는지
    • 입사하게 된다면 어느 분야에서 일하고 싶은지

오프라인 마라톤 면접에, 면접이 끝나고 회사의 현직 개발자들과 멘토링 비슷하게 할 시간도 주어졌던 곳.

 

개발자를 준비하기까지 내 2~3년 학습기간동안 있었던 일을 거의 전부 물어봤다.
가장 좋았던 프로젝트 / 나빴던 프로젝트의 기술 스택도 물어보고,
팀빌딩 과정 / 팀 프로젝트 진행 경과와 내 역할 / 그 프로젝트를 좋다고 or 나빴다고 생각한 이유를 각각 전부 물어봤고,
블록체인 공부를 했었다고 하니 비트코인의 transaction이 분산 네트워크에 등록되기까지의 과정을 소개해 달라 해서, 2018년에 공부했던 내용을 면접장에서 하나하나 복기하며 설명하기도 했다.

 

처음에는 그만큼 내 학습과정이나 열정을 제대로 확인하고 이해하기 위해서인가 싶어서 나름 감동했는데,
뒤로 갈수록 "질문의도가 뭐지..?" 싶은 질문이 나왔다.
지금도 이해가 안 가는 '프로젝트에서 만들어봤던 최대 Relation의 개수'
다른 질문의 꼬리질문으로 물어본 맥락도 아니고, 어떤 꼬리질문을 하기 위해 물어본 것도 아니었다.
1시간 30분이라는 긴 면접시간에 지쳐서 큰 고민 없이 반사적으로 대답했는데, 당락에 어떻게 영향을 줬을지 지금도 예측할 수가 없다.

 

 

4. 2020년 하반기 이베이코리아 공채 기술면접 - 약 45분, 면접관 4: 면접자 1, Zoom

 

철저히 CS지식 위주로 물어봤다.

  • 로드밸런싱의 개념 (L4 / L7)
  • HTTP / HTTPS의 차이
  • Public / Private 클라우드의 차이, IaaS의 의미
  • REST API의 정의
  • Relational DB / NoSQL의 차이점
  • 아키텍처란 무엇인가, 대용량 트래픽을 견뎌낼 만한 아키텍처는 무엇이라고 생각하는가
  • 브라우저에 gmarket.com을 입력했을 때, 브라우저에 렌더링되기까지의 과정
  • ...

꼬리질문 형태의 면접은 아니었고, 질문을 던졌을 때 답변을 들으면 바로 다음 질문으로 넘어가는 식이었다.

인터넷에 있는 CS 면접대비 질문목록에서 주로 볼 수 있는 질문이었고, 인터넷에 있는 답변보다는 좀 더 상세히 구술하면 되는 정도였다.

지금까지 겪었던 모든 기술면접 중 가장 '전형적이고 신입채용에서 납득 가능한 수준의 난이도'였다고 생각했고, 실제로도 합격했다.

 

 


 

 

반응형