brunch

You can make anything
by writing

C.S.Lewis

by JejuGrapher Feb 07. 2022

달고나 44. 면접과제의 기대와 현실

Expectation vs Reality

데이터 분석가 또는 과학자를 위한 인터뷰 면접 과제를 주제로 다룬 지 벌써 1년 정도 지났다. (참고. https://brunch.co.kr/@jejugrapher/239) 그 사이에 면접관이 아닌 면접자의 입장에 놓였고 S로 이직했다. (역시 현실은 상상과 달랐다.) 신입 때는 영어 성적을 요구하는 직장이 싫었고 지금은 — 나름 개발 직군이지만 — 코딩 테스트를 보는 직장이 싫다. 다행히 늙은이에게 코테나 면접과제를 요하지는 않았다. 이직 후에 몇 명의 이력서는 검토했지만 면접에 직접 참여하지는 않아서 이제 감이 많이 떨어졌다. 이전 직장의 경험을 바탕으로 글을 적지만 영업 비밀(?)을 적나라하게 밝히는 건 상도덕에 어긋나니 적당한 선을 지켜서 글을 적는다.


실 서비스를 기반으로 가공한 데이터를 지원자들에게 미리 전달한 후, 약 일주일 동안 CTR을 예측하는 프로그램을 구현하고 발표하는 과제였다. 몇 번의 부침 후에 정착된 과제다. 처음 이 과제를 제출할 때 지원자들에게 기대했던 점은 대략 아래와 같다.

1. EDA 등으로 제공된 Raw Data를 분석해서 인사이트를 얻고 이를 기반으로 피쳐 셀렉션, 데이터 변환/가공 등의 피쳐 엔지니어링을 진행한다.

2. 가장 기본적인 알고리즘 (i.e., 로지스틱 회귀모델)을 이용해서 베이스라인 모델을 구축한다.

3. 추가 분석이나 데이터 가공을 통해서 베이스라인 모델의 성능을 개선한다. 필요하면 인터넷 서베이로 구한 다른 알고리즘과 성능을 비교한다.

4. 추가 점수로 생각했던 것은 광고 도메인에서 CTR 예측 지식/노하우를 모델 구축에 적용했느냐 여부를 보는 거였다.


엄청난 새로운 알고리즘을 만들어오는 것을 기대하지 않았다. 가장 기본적인 데이터 분석 과정 (EDA)을 제대로 수행했는지, 확률을 예측하는 로지스틱 모델을 제대로 사용했는지, 그리고 서베이를 통해서 건 개인의 창의력을 이용해서 건 기본 모델을 개선하려 했는지 등을 확인하고 싶었다. 내가 그들이었어도 제대로 수행하지 못할 만큼의 기대치가 높은 것은 맞지만, 한편으로 생각하면 가장 기본적인 것을 보고 싶었던 거다. 물론 지원자의 입장에선 특별한 것을 보여주고 싶은 욕심은 있겠지만 그런 욕심을 제대로 구현해서 보인 지원자도 없었다. 일반화하긴 어렵지만 대부분의 지원자의 결과물은 아래와 같았다.

1. 파이썬으로 데이터를 불러온 후에 .head()나 .describe() 등으로 샘플의 형태와 기본 통계치 정도만 확인한다. 변수 별 분포 그래프를 그려보지 않거나 변수 간의 상관관계, 특히 독립변수와 종속변수 간의 관계를 확인하지 않는 경우도 흔했다.

2. 인터넷에서 CTR을 예측하는 SOTA나 잘 알려진 오픈소스를 가져와서 모델을 구축하고 테스트 데이터의 예측값을 계산한다. (최소한 그 알고리즘을 사용한 이유가 평소에 자주 이용했던 익숙한 모델이었기 때문이다라고만 했더라도...)

3. 그나마 더 진행한 친구들은 validation error를 최소화하는 하이퍼 파라미터를 찾은 후에 테스트 예측값을 계산한다.


면접과제를 통해서 지원자의 기본기를 보고 싶었다. 창의력이 요구되는 시대지만 기본기가 무시된 창의력을 요구하는  아니다. 창의력만이 요구될 때는 극히 이례적 케이스다. 경력이 거의 전무한  졸업한 어린 친구들에게서 도메인에 대한 엄청난 인사이트를 원하지 않는다. 그저 — 데이터 분석가나 모델러로서 — 가장 기본적인 것을 제대로   있으면 함께 성장하여   존재가 되길 기대할 뿐이다. 매우 평면적인 기본 스텝을 완수한 후에 조금의 입체성 (창의력)  했더라면 좋았을 텐데과제의 의도를 잘못 이해한 것인지 아니면 애초에 실력이 기준선에 미치지 못한 건지는 모르겠으나 원하던 인재를 찾기가 어려웠다. 때론 틀에 박힌 답이 오히려 가장 창의적인 답이다.

** 분석 자체가 목적인 과제에선 좀더 입체적 (창의적, 종합적, 다양한 관점) 일 필요는 있음


이전에도 적었듯이 요즘 데이터 과학으로 진로를 희망하는 이들 중에서 데이터 분석 경험이 부족할 뿐만 아니라, 분석의 중요성도 제대로 인지하지 못하고 있는 친구들이 많은 (사실, 대부분인) 것 같다. 문제와 데이터를 먼저 면밀히 조사해서 그에 맞는 알고리즘을 찾아 적용하거나 만들어내는 것이 아니라 그저 성능이 좋다고 알려진 알고리즘의 오픈소스만 가져와서 기계적으로 데이터에 적용해보고 데이터 과학을 하고 있다고 생각하는 것 같다. 논문이나 자료를 보며 직접 구현한 것도 아니고 그저 인터넷에서 다운로드한 걸 돌려보는 정도다. 물론 좋은 오픈소스를 잘 활용하는 건 전혀 문제 될 것이 없다. 우려하는 점은 그런 알고리즘이나 라이브러리를 제대로 이해하고 사용하지 않았을 가능성이 높다는 거다. 그나마 하이퍼 파라미터 최적화라도 하는 지원자가 돋보이는 착시마저 있다. ‘겨우’라고 표현해서 미안하지만 ‘겨우 그런 정도의 일을 하는 사람을’ 채용하기 위해서 시간과 돈을 들이는 게 아니다. 물론 가능성이 있으면 채용 후에 기본기를 가르치고 훈련시키면 된다. 그런데 가능성은 어떻게 확인할 수 있는 건가? 출신 대학이나 학점은 평가의 중요 잣대지만 그럴 거면 면접의 이유가 없다.


최근 분석, 학습, 최적화 등의 SW의 발전으로 데이터 과학이 쉬워진 것은 맞다. 우리가 일상에서 만나는 많은 문제와 데이터는 잘 정제 또는 정형화되어있지 않다. SW가 더 발전하면 언젠가는 자판기에 동전을 넣듯이 어떤 데이터든 욱여넣으면 잘 정리된 결과물을 제공해주는 날이 올 거다. 하지만 아직은 아니다. 인간의 직관과 경험이 필요하다. 이는 다양한 문제를 경험하며 기본기를 반복 훈련함으로써 얻어진다고 본다. 그래서 면접에서도 이 지원자가 얼마나 기본에 충실한가를 보게 된다. 거부할 수 없는 경력과 결과물들을 갖고 있지 않다면 기본기 이상의 보여줄 무기가 없다. 반복하지만 신입에게서 대단한 기술이나 경력을 기대하지 — 있으면 좋지만 — 않는다. 그저 기본이 잘 돼있으면 이것도 알려주고 저것도 시켜보면 더 성장 발전할 수 있겠지라는 기대를 갖게 된다. 그런 기대감을 갖게하는 지원자를 원한다.


상상불가의 창의력을 지닌 천재가 아니라면 기본에 충실하고 그걸 인터뷰에서 어필했으면 한다. 채용의 목적이 완벽한 지원자를 발견하는 것이 아니다. 가능성이 있는, 즉 기본에 충실한 지원자를 발견하는 거다. 특히 경력이 적은 주니어라면… 잔재주로 장기 레이스를 완주할 수 없다.


매거진의 이전글 달고나 43. 데이터감(感)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari