우선 전형의 최종 결과를 먼저 전달하자면..!
합격했다 :) 6/4 금요일 기술면접을 보고 면접 자체로도 너무 재미있고 값진 경험이었기 때문에 결과에 대해서는 크게 기대를 하지 않고 있던 중에.. 갑작스런 합격 통보를 받았다 ㅠㅠ 올해 초부터 관심을 가지고 팠던 NLP 분야에서의 인턴 기회이기 때문에 너무너무 신나고 아주 설렌다..!! 우선 각설하고, 기억이 더 희미해지기 전에 기술면접 후기와 준비과정에 대해 작성해보겠다!
1. 코딩테스트
코딩테스트에 관한 자세한 사항은 해당 포스트에 작성해두었다.
2. 면접 준비
코테 합격 결과를 통보 받고 면접일까지 3일 정도의 시간이 있었다. 다양한 직무에 지원해보며 면접 경험은 나름 많다고 자부할 수 있었지만 두시간동안 진행되는 기술면접은 난생 처음이었다. 더군다나 NLP, 즉 딥러닝 직무였기 때문에 질문이 나올 수 있는 분야가 너무 넓다고 생각되어 면접 준비를 어디서부터 해야할지 감이 잡히지 않았다.. 그래서 나는 다시 채용 공고와 필수역량을 다시 한 번 정독해보았다.
우선 해당 직무의 역할을 다시 한 번 읽어보고, 내가 할 수 있는 것과 하고 싶은 역할이 무엇인지 추려보았다. 그리고 대표 기술 분야에 대한 리서치를 진행하여 네이버 서치 부서는 어떤 일을 담당하고 있는지 정리해보았다.
그 다음으로는 필수역량과 우대사항을 살펴보았다. 현재까지 진행했던 프로젝트들을 통해 필수역량은 모두 갖춘 상태였고, 우대사항 역시 3개 정도는 해당되었다. 면접 시간은 한정되어 있고, 면접관과 얘기를 나누게 될 토픽은 지원 요강에서 크게 벗어나지 않을 것이다. 따라서 나는 공고에 나와있는 키워드들을 중심으로 나의 프로젝트와 역량을 엮어서 면접의 흐름을 내가 이끌어갈 수 있게 준비해보고자 했다.
모집 요강을 다시 한 번 숙지한 상태에서, 내가 작성한 자소서 역시 다시 읽어보았다. 내가 자소서에 언급한 내용들에 대해서는 완벽하게 답변할 수 있어야한다고 생각했다. 내 자소서와 포트폴리오를 기반으로 다음과 같이 면접 준비와 공부를 구성했다.
각 프로젝트들에 대해 1. 개요, 2. 사용한 기술 스택, 3. 프로젝트 진행 방식 4. 배운 점 5. 개선할 점의 구성으로 정리했고, 프로젝트 진행 방식 섹션에서 나올 수 있는 기술 관련 꼬리질문들을 예상해서 공부를 했다.
이에 더해 머신러닝 기초와 자료구조 기초에 대해서도 평소에 정리해둔 자료들이 있어 면접 전에 리뷰하고 들어갔다.
또 다른 인턴 면접 후기들을 찾아보니 손코딩을 시키는 경우도 있다고 해서 구글닥에 쉬운 알고리즘 문제들을 풀어보며 IDE가 아닌 곳에 코드를 작성하는 것도 연습해보았다.
이렇게 적어놓고 보니 3일이라는 시간동안 정말 많이 준비한 것 같은데, 맞다 (ㅋㅋ). 사실 일전에 타 기업에서 정말 아무런 준비가 되지 않은 상태에서 30분 간의 기술 면접을 본 경험이 있다. 평소에 안다고 생각했던 머신러닝 이론들에 대해서도 정리가 되어있지 않은 상태에서 질문이 들어오니 내 대답에 확신도 없을 뿐더러 말도 엄청 횡설수설 난리가 났었다.. 거기에 버트로 진행한 프로젝트에 대해서도 질문을 몇 개 해주셨는데 그 때 당시에는 프로젝트를 진행하면서도 트랜스포머, 인코더, 임베딩 등에 대해서 아ㅏㅏ무런 공부가 돼있지 않았었고 결과는 역시나 탈락이었다. 단순히 탈락이라는 결과에서 낙담한 것이 아니라, 면접 중 느꼈던 무력함과 면접이 끝나고 든 깊은 자괴감이 (내가 진행한 프로젝튼데 이렇게나 대답을 못하다니.. 나 정말 제대로 된 공부를 한게 맞나..?) 너무너무 싫었어서 그 기분을 다시는 느끼고 싶지 않았기 때문에 면접 준비를 열심히 한 것 도 있다.. ㅎㅎ
최대한 두괄식으로 내 생각을 논리적으로 전개할 수 있게끔 내 프로젝트들과 사용된 기술 스택에 대해 정리하며 공부했다.
3. 면접
화상면접은 1:1로 한시간씩 총 두시간동안 진행되었다. 기억나는 면접 질문들을 추려보자면 다음과 같다.
자기소개
가장 자신있는 프로젝트는 무엇인지? (화면공유해서 보여주세요)
휴학을 오래 하신 것 같은데, 왜 했는지?
멜론 음원 사재기 판별 프로젝트 관련 질문:
- BERT fine tuning은 어떻게 진행했는지?
- 왜 BERT를 사용했는지? BERT는 다른 언어 모델들과 어떻게 다른지?
- 데이터 전처리는 어떻게 진행했는지? 결과는 어떻게 달랐는지?
- 라벨링을 수기로 진행했다고 했는데, bias는 없었는지? 라벨링의 기준은?
- BERT 임베딩은 어떻게 진행했는지?
- KoBERT가 더 성능이 높다고 했는데, 이유는 무엇이라고 생각하는지?
- BERT의 사전 훈련 방식은 무엇인지?
- BERT의 pre-trained된 layer는 어디서 가져왔는지?
- Transformer란?
word2vec 구현 프로젝트 관련 질문:
- 워드 임베딩이란? 임베딩을 사용하는 이유는?
- 임베딩의 장점은?
- 두 단어간의 유사도는 어떻게 계산하는지?
- 한국어를 임베딩 할 때 특히 주의해야할 점은? 여기서 발생하는 word2vec의 한계는?
- softmax 함수란?
추천 시스템 프로젝트 관련 질문:
- item-based Collaborative filtering은 무엇인지?
- 곡 간의 유사도를 계산할 때 사용한 feature는 어떤 것이 있었나?
서버 개발 프로젝트 관련 질문:
- 대규모 트래픽 데이터 서빙을 진행할 때 고려해야하는 사항은?
- 왜 node.js 프레임워크를 사용했는지?
스트레스 매니징은 어떻게 하는지?
네이버 서치 부서는 000, 000, 000와 같은 일을 한다. 어떤 업무를 맡고 싶은지?
첫 번째 면접관님은 전반적으로 프로젝트 베이스 질문을 많이 하셨다. 면접을 진행하면서 굉장히 재밌다고 느꼈던 점이, 질문을 던지시고 내가 그 질문에 대한 나의 견해를 말씀드리면 하면 단순히 잘 들었습니다, 하고 다음 질문으로 넘어가는 것이 아니라 본인의 견해와 적용할 수 있는 개선점까지 제시해주셨다. 그래서 면접을 진행하며 NLP와 BERT에 관련한 새로운 지식들도 많이 얻게 되었고, 내가 진행했던 프로젝트들에 대해 신선한 관점으로 검토해볼 수 있었다. 또한 내가 막히는 질문들에 대해서는 부가적인 질문들을 던져주시며 정답을 스스로 찾아서 제시해볼 수 있도록 유도해주셨다. (개인적으로 너무 재밌고 배운 점이 많아서 감사했던 면접..!) 실제로 면접을 마치고 해당 프로젝트를 다시 열어서 모델의 정확도를 개선해보고자 여러 시도를 해보았다.
4. 면접을 통해 배운점/느낀점
면접을 통해서 느낀 점은 개발자로서 어떠한 프로젝트를 진행할 때, 나의 모든 선택에 대한 확실한 이유가 있어야 한다는 것이다. 위에 적은 질문들 중에 면접 중 내 머리를 댕- 하고 쳤던 질문들을 꼽자면 왜 임베딩을 사용했나요?와 왜 node.js 프레임워크를 사용했나요?였다. 면접을 준비하며 내 프로젝트에 적용된 다양한 이론과 기술에 관해서는 열심히 공부해서 준비했지만, 정작 본질적인 질문은 나 자신에게 물어보지 않았던 것 같다. 그래서 나는 왜 node.js와 express를 사용했지? 보통은 동업자가 쓰기 때문에, 혹은 유명해서, 가벼워서 어떠한 프레임워크에 입문하지만, 결국엔 내가 해당 기술을 사용해보면서 정당성을 찾아야한다.
두번째 느낀 점은, 팀 프로젝트를 진행했다면, 내가 맡은 부분만 열심히 하지 말고 팀원들과 반드시 과정과 결과를 적극적으로 공유하자! 내 포트폴리오에 어떤 프로젝트를 쓰고 싶다면, 나는 그 프로젝트의 A-Z까지 완벽하게 숙지하고 있는 상태여야 한다. 모델링 프로젝트를 진행했을 때, 내가 맡은 역할이 데이터 수집과 전처리였다면, 모델링 담당, 시각화 담당 친구들과 결과와 진행 상황, 그리고 내가 내린 다양한 의사결정까지 공유하자. 서로의 지식을 서로에게 나눠줘야 비로소 그 프로젝트는 모두에게 '내가 진행한' 프로젝트가 될 수 있다.
결론은 2시간의 면접을 통해서 굉장히 많은 것을 배웠다..! 두 면접관님 모두 친절하셨고, 초반에 내가 좀 많이 떨었는데 편안한 분위기에서 말할 수 있도록 분위기도 많이 풀어주셨다..ㅠㅠ 위에 적은 면접 질문들을 물론 모두 답하진 못했다. 하지만 모르겠는 질문도 최대한 내 나름의 논리와 지식을 기반으로 대답을 제시해보려 노력했다.
글을 작성하는 동안 멘토님께 메일이 왔다! 3일 뒤 경험하게 될 네이버 출근은 어떨까.. 두근
험난했던 올해 상반기 취준아닌 취준이 끝났다!! 조만간 인턴 생활 포스트로 돌아오겠다!
'Insights > 국내 취업 일지' 카테고리의 다른 글
2021 네이버 NLP 기술 개발 인턴 코딩 테스트 후기 (5) | 2021.06.07 |
---|---|
코딩테스트 플랫폼 전격 비교: 백준 vs 프로그래머스 vs Leetcode vs SWEA 그 외 (2) | 2021.05.21 |
프로그래머스 2021 Summer Coding 코딩테스트 후기 + 합격! (1) | 2021.05.21 |