안녕하세요. ekim입니다.

최근 데이터 엔지니어로 취업을 하게 되어, 기쁜 마음으로 면접 후기를 풀게 되었습니다.

저는 데이터 분석가 직군으로 한 곳, 데이터 엔지니어 직군으로 몇몇 기업에 지원했고 스타트업을 포함하여 총 세 군데에 합격했습니다.
저는 공채를 통해 개발자를 채용하는 큰 기업의 면접을 보지는 않았으므로 그 경우는 저의 준비 과정과는 다를 수 있습니다 🙂

저는 순수 문과생으로 개발에 대해 아는거라곤 초등학교 때 hello world를 html로 찍어본 게 다였습니다. 2019년 12월부터 5월까지 국비학원에서 python을 활용한 크롤링, 데이터분석 등을 배웠지만 반복문만 잘 돌렸지 python에서 벗어난 자료구조, 알고리즘, 네트워크, 운영체제 등에 대한 이해가 전무한 상태에서 42Seoul에 오게 되었고 42cursus와 개인 프로젝트를 병행하여 2021년 8월 데이터엔지니어 직군으로 취업하게 되었습니다.

42Seoul에는 2기 2차로 들어왔는데, 코로나때문에 5월에 예정되었던 피신이 7월로 밀려 결과적으로 10월에 본과정에 들어오는 등 여러 고충이 있었던 기수 출신입니다ㅠㅠ
그래도 42Seoul에서 공부하는 건 개발을 즐겁다고 느끼는 데 가장 큰 밑거름이 되었네요ㅎㅎ

이제 본격적으로 면접 후기를 풀어보도록 하겠습니다.

** 오탈자, 제가 잘못 알고 있는 지식이 있을 수 있음 등을 감안해주시면 감사하겠습니다 😂

** 구체적인 면접 질문 및 답변은 첨부파일에 넣어둘테니 그쪽을 먼저 보고 아래의 글을 읽으시면 더 잘 와닿을거라 생각합니다 🙂

데이터분석가

일반적으로 데이터 분석가는 데이터 엔지니어가 추출 및 가공한 데이터를 보고 분석해서 유의미한 결론을 내리는 역할을 하는 사람을 일컫습니다.
마케터적 측면이 필요할 수도 있고, 통계학과 머신러닝 지식이 필요할 수도 있습니다. 제가 본 바로는 어떤 데이터 분석가가 필요한지는 기업마다 정의가 조금씩 달랐습니다.

Data Analyst 직군 면접에서는 실제로 데이터 분석을 하고 결과를 이끌어 냈던 프로젝트 경험에 집중해서 질문이 들어왔습니다. 개발보다는 정말 데이터를 보고 유의미한 결론을 이끌어 낼 수 있는 분석가인지에 초점을 맞춘 것으로 보였습니다.

그 중,

머신러닝 프로젝트에서 유기견의 관련된 프로젝트를 진행하며 입양률 예측을 했었는데, 전체 유기견 중 입양률이 원래 어느정도인지(30%정도였음), 그렇다면 입양률을 예측할 때 사용한 metric과 그걸 사용한 이유는 무엇인지”

질문이 들어왔었는데 질문의 의도는 다음과 같습니다.

만약 100명의 환자 중 폐암 환자를 예측한다고 했을 때, 만약 전원 폐암 환자라면 ‘내가 폐암환자일 것이라고 예측한 사람들 중 실제 폐암환자가 있을 확률, 즉 정확도가 무조건 100%’가 됩니다. 예측이 의미가 없습니다.
반대로 100명의 환자 중 폐암 환자가 1명 밖에 없다고 했을 때 제가 80명을 폐암환자로 예측했고 그 중 1명만 해당한다고 하면 정확도가 1.25%밖에 안되는 처참한 결과를 얻게 되는 거죠.
이런 문제를 보완하기 위해 정확도, 재현율, 특이도 등 여러 metric이 존재하는데 그 중 가장 적합한 것을 선택하여 결과로 제시하는 것도 데이터 분석가가 반드시 갖춰야 할 역량인 것 같습니다. 물론 제 사견입니다 🙂

데이터 엔지니어

데이터 엔지니어 직군의 면접을 봤을 때는 보다 실제 개발 경험에 초점을 맞춰서 질문을 받았습니다.

Docker 해봤는지, Kubernetes 다뤄 봤는지, 객체지향 프로그래밍에 대해 이해를 하고 있는지, linux 잘 쓰는지, SQL을 능숙하게 쓸 수 있는지, DB 설계를 해 봤는지 등등의 여러 질문을 받았습니다.

데이터 엔지니어 쪽 면접을 볼 때는 느낀 점이 공통적으로 몇 가지 있는데요,

  1. 도커나 쿠버네티스, AWS나 GCP와 같이 인프라/플랫폼 구축 경험을 중요하게 생각한다는 점
  2. SQL을 잘 이해하고 있는 사람을 찾는다는 점
  3. ETL 경험을 중요하게 생각한다는 점

등이 있습니다. 아, DB에 대한 이해도 있으면 금상첨화인것 같습니다.
SQL 튜닝을 할 줄 알면 훨씬 더더더 좋구요(근데 사실 신입에게 이정도까지는 바라진 않는 것 같습니다).
뭐가 됐든 일단 많이 겪어보면 좋을 것 같습니다.

만약 면접을 앞두고 있다면 프로그래머스 SQL 문제셋 같은 걸 풀어보시면 많은 도움 받으실 거라 생각합니다.

특히 Window함수 예제를 꼭 풀어보시는 걸 권장드립니다.

그리고 모든 면접에서 꼭!! 간단한 자기소개를 요구했습니다. 1분 자기소개 이런것처럼 제한이 있지는 않고 본인이 어떤 사람인지, 어떤 준비를 했는지 간략하게 설명드리면 됩니다.
저는 항상 다음에는 자기소개 안물어보겠지 하고 기술 질문만 준비해서 갔는데 정말 한 번도 빼놓지 않고 꼭 물어보셨습니다. 자기소개가 면접에 그렇게 큰 비중을 차지한다고 생각하지는 않지만, 그래도 첫 인상을 결정하는 부분이니 어느정도 개요는 잡아두시고 가시는 걸 추천드립니다.

취업과 42Seoul의 과제에 대해서

면접을 보기에 앞서 저는 제가 했던 프로젝트들에 대해 나올 수 있는 질문, DB 관련 예상 질문, 머신러닝과 딥러닝 기본 지식과 통계까지 해서 100여개의 예상 질문에 대한 답변 리스트를 뽑아두고 면접에 임했습니다만, 프로젝트 관련 질문 빼고는 예상한 질문은 안나왔습니다…ㅎ

그러나 CS에 대해 별도로 면접 준비가 허술했음에도 면접에 어려움이 없었던 게, 42Seoul을 통해서 상당히 광범위한 CS 지식을 채울 수 있었기 때문이었습니다.
면접관분이 42Seoul에 대해 잘 모르시더라도 문제는 없었고, 오히려 비전공자 출신이 약할 수 있는 CS 지식을 다양한 예시를 들어 설명드리니 오히려 42Seoul이 어떤 곳이고 어떤 공부를 하는지 먼저 궁금해 하셨습니다.

듣기로는 프랑스의 Ecole42에서는 특정 level을 넘으면 (10 이상이었는데 정확히는 모르겠네요) 국가에서 석사에 준하는 증서를 발급해준다고 합니다.
과제를 할 때는 답답하고 짜증났는데, 막상 지나고 보니 모든 과제가 개발자를 위한 빌드업이라는 생각이 듭니다. 진짜로…. 진짜 42 시스템은 개발자 양성을 위해 좋은 과정이라는 생각이 진짜 정말 진지하게 들어요…

그러므로 과제는 속도가 아닌 질이라고 생각합니다. 과제의 success, fail에서 벗어나서 한 과제를 시작할 때마다 과제에서 어떤 지식을 얻기를 요구하는지 파악하고, 그 분야를 제대로 공부하고 깃허브에 잘 정리 두시면 면접 준비가 수월할거라 생각합니다.

42Seoul의 과제와 본인이 취업하고 싶은 직군에 초점을 맞춰서 개인프로젝트까지 병행하시는 걸 추천드립니다!

데이터 관련 직군을 가고 싶은 카뎃들에게

만약 데이터 관련된 직군으로 취업을 하고 싶으시다면 먼저 정확히 어떤 직군을 원하는 것인지 생각해보셔야 합니다.
데이터 사이언티스트, 데이터 분석가, 데이터 엔지니어, 머신러닝 엔지니어 등 다양한 직군이 있으며, 각자 하는 역할이 많이 다릅니다. (저도 처음에는 잘 모르고 데이터 쪽에서 일하고 싶습니다! 하고 호기롭게 멘토링하러 갔다가 멘토님께 혼났습니다…ㅎ)
이부분은 원티드 등에서 직군 별 모집 공고를 보시면 금방 파악하실 수 있습니다.

데이터 사이언티스트는 신입 개발자가 학위와 데이터 실무 경험 없이는 갈 수 없는 직군이고,
데이터 엔지니어는 보통 백엔드 개발자로 시작해서 되는 경우가 일반적인 것으로 알고 있고
(보통 데이터 엔지니어 직군은 2~3년의 경력을 요구합니다. 물론 저의 경우처럼 아닌 데도 있습니다),
데이터 분석가의 경우는 방법론도 중요하지만 해당 기업의 실무 관련 데이터 분석을 어떤 방식으로든 경험해 본 사람을 요구하는 것 같습니다.

데이터 관련 엔지니어가 되고 싶으시다면 백엔드에서 경험을 쌓고 이쪽 분야로 발을 넓히는 게 선택의 폭을 많이 넓힐 수 있는 것 같습니다. 실제로 저도 그렇게 하려고 했습니다만 좋은 기회가 생겨 생각보다 빠르게 취업하게 됐습니다.

만약 데이터 엔지니어링 경험을 해 보고 싶으시다면 자동화된 ETL 플랫폼을 실제로 구축해보시는 것을 추천드립니다.
inflearn이나 유튜브 등을 참고하신다면 충분히 스스로의 힘으로 구축 해 보실 수 있습니다. 저 같은 경우는 NoSQL인 elasticsearch를 활용하는 Elastic Stack과 Google Cloud Platform을 활용한 ETL 구축을 해 보았습니다. 유튜브에 공식 elasticsesarch 구축 가이드 강의가 있으므로 이를 참고하는 것을 추천드립니다.

아, 참고로 초기의 42Seoul의 체크인 시스템도 elasticsearch를 통해 로그를 수집하고 모니터링하는 환경이 구축되어 있었습니다(지금은 없어졌다고 들었습니다). 저는 이 부분을 ryukim을 통해서 많은 도움을 받았습니다.

+위의 내용은 모두 이제 막 취뽀(비슷한) 신입의 사견이므로 전문가의 의견을 듣고 싶으시다면 멘토링을 추천드립니다ㅎㅎ

마지막으로

취업에 초점을 맞춰 지난 3개월 간 이력서를 가다듬고, 프로젝트를 하거나 정리하고, github도 정리하고, 이것이 코딩테스트다 책 읽으면서 python으로 알고리즘 문제도 풀어보고 기타등등 이것저것 준비한 끝에 원하는 직군에서 첫 커리어를 시작할 수 있게 되어 운이 좋았다 생각합니다.

도움을 주신 이호준 멘토님, 오종인 멘토님께 진심x10000000으로 감사드리고, 많은 카뎃들이 멘토링을 적극적으로 받으면 정말 좋겠습니다.
학생들이 일반적으로 하는 취직, 개인의 실력에 대한 생각이 멘토님들의 생각과 많이 다를 수 있어요. 저도 그걸 처음 알았을 때 꽤나 충격을 받았습니다.
도대체 그게 구체적으로 뭐냐? 하고 궁금증이 생긴다면 멘토링받으러 갑시다~^^!!
너무 막연하게 가는 것 보다, 어떤게 고민인지 어떤 걸 알고 싶은지 정해서 가면 더욱 좋습니다!

제 이력서를 피드백 해 주시고, 발전시키는 데 도움을 주신 멘토님들에게 정말 진심으로 감사드립니다…ㅠㅠ

경제, 국제통상 전공의 순수 문과출신 비전공자로서 2019년 12월부터 개발을 시작해서 꽤나 긴 시간이 걸렸는데 42Seoul 덕분에 혼자서는 다뤄볼 생각도 못했고 있는지도 몰랐던(…ㅎ) 많은 지식을 다룰 수 있게 되어서 진심으로 기껍게 생각합니다.

최근 코로나로 인해 공부 하기 힘든 환경입니다. 저도 그랬기 때문에 멘탈 잡으려고 하루에 세 가지 감사한 점을 꼽아가며 잠에 드는 습관을 만드는 등 무던한 노력을 했었네요.
이 힘든 시기가 빨리 끝나 모두가 42Seoul의 쾌적한 환경에서 바글바글 모여 왁자지껄하게 개발공부를 하는 그 때가 빨리 왔으면 좋겠습니다.

제 후기가 다른 분들에게 도움이 됐으면 좋겠습니다. 모두 열코 즐코하세요 🙂