취업 이직 이야기

온라인 코딩 테스트 준비하기

anyjava 2019. 8. 20. 00:51
최근에 이직하면서 어떻게 준비했는지에 대해 정리하고 있었는데 생각보다 코딩테스트에 대한 분량이 많아서 따로 포스팅한다. 사실 준비과정에서 코딩테스트가 가장 부담스러웠고 준비도 많이 했었던 것 같다. 그만큼 코딩테스트에 대한 호불호도 강하지만 요즘은 많은 기업이 코딩테스트나 사전과제 형태로 전형을 진행하고 있기 때문에 개발자로서 취업하려면 필수적으로 준비해야 하는 상황이다. 더 좋은 처우와 기회를 위해 이직하려는 여러분들에게 조금이라도 도움이 되었으면 좋겠다.

 

연습만이 살 길이다.

 
대부분의 회사가 코딩테스트를 외부 플랫폼에 의지해서 진행한다. 다양한 플랫폼들이 있는데 꼭 본인이 지원한 회사의 플랫폼에서 제공하는 연습문제들을 꼭 수행해 보기 바란다. 해당 플랫폼에 조금이라도 익숙해져야 실제 테스트 할 때 당황하지 않을 수 있다. 실제 잘못해서 제출을 눌려버려서 코딩테스트를 망쳤다는 씁쓸한 후기도 보았었다.

 

코딩테스트 사이트
https://www.hackerrank.com/
https://leetcode.com/
https://programmers.co.kr/
https://www.codility.com/
 
나 같은 경우에는 hackerrank 사이트를 이용했다. 따로 장점이 있어서 선택 했던 게 아니고 위 나열한 사이트 중에 hackerrank 에서 응시 예정이였기 때문에 선택하게되었다. 실제 사이트에 들어가 보면 인터뷰 준비를 위한 Kit 그리고 30 Days Tutorial 등이 있다. 다양한 알고리즘별로 연습할 수 있으니 꼭 Easy 난이도 문제들은 다 풀어 보는 것을 추천한다. 

 

코딩 연습을 할 수 있는 kit 많다. 평소에 취미로 조금씩 풀어보자.
 
몇  풀다 보면 어느 정도 재미도 있을 수도 있고 익숙해질 수도 있다. 그 정도 되었다면 합격하지 않을까 하는 생각이 든다. 난이도는 코딩 테스트를 응시했던 2곳 모두 hackerrank 기준 medium 난이도 1~2개, 나머지 easy 난이도 정도였었다. 그래서 굳이 Hard 문제를 푼다고 끙끙 때지 말고 Easy 를 최우선으로 풀고 Medium 은 풀 수 있을 만큼만 풀면 될 것 같다. 난이도에 대해 너무 걱정하지 말라. 대부분의 회사가 최소한의 코딩 실력을 검증하기 위함이지 알고리즘 경진대회를 하는 게 아니다.
 
각 알고리즘 유형별로 난이도가 있어서 선택해서 풀어볼 수 있다
 
 

영어에 익숙해져야 한다.

 
위 캡처에서도 확인 할 수 있듯이 해외 서비스는 문제는 대부분 영어로 되어 있다. 문제 난이도는 아주 쉽지만, 영어 해석을 잘못했으면, 완전히 다른 방향으로 문제를 풀 수도 있다. 실제로 나도 문제 푸는 과정에서 특정 단어가 알고리즘에서 다른 의미로 사용되는걸 몰라서 해결하지 못한 문제가 있었다. 그래서 최대한 알고리즘 관련한 영어단어들이 눈에 익어야 한다. 그래서 연습, 연습 또 연습을 해야 한다. 
 
예를 들면, Counting Sort, Sliding window 들이 있다. 평소에 알고리즘 문제를 접해보지 않았다면 제대로 해석하는데도 시간이 필요해진다. 최악의 경우는 오역해서 다르게 풀 수도 있다. 그래서 최대한 많이 풀어보고 알고리즘들도 영어 단어들 기준으로 함께 정리해보길 바란다.
 
그래도 인터넷은 할 수 있는 상황이니 빠르게 구글 검색을 통해서 문제의 정확한 의도를 빨리 파악할 수 있도록 준비해두자.
 
 

 

WEB IDE 에서 익숙해져라

 
어떤 회사에서는 복사해 붙여넣기를 할 경우 0점 처리 될 수도 있다고 안내를 하고 있다. 그렇기 때문에 WEB IDE 에 익숙해져서 직접 WEB 에서 진행하는 걸 추천 한다. 사실 면접관 입장이 되어본 사람은 알겠지만, 응시자들이 작성하는 하나하나가 다 실시간으로 녹화가 되고 면접관은 코딩 과정을 모두 확인 할 수 있게 되어 있다. 심지어 코드가 다른 답안들과 유사성도 체크를 해주기 때문에 인터넷에 있는 답안들을 복사해서 붙여넣기를 한다면 낭패를 볼 수도 있다. 
 
Vim 단축키를 지원한다니

 

위 캡처와 같이 언어도 선택할 수 있고, Editor Mode 도 선택 할 수 있다. 나는 IDE 를 처음 접할때 마다 vim plugin 을 설치하는데 WEB 환경에서도 vim 을 사용할 수 있어서 큰 불편함 없이 코딩을 할 수 있었다.
 
 
 

시간 분배 전략

 
문제가 쉬워서 잘 풀렸다면 크게 상관없을 텐데, 시간이 부족해진다면 한 문제도 못 풀 가능성이 있다. 보통 문제를 잘못 해석해서 해결하지 못할 가능성이 높을 것 같다. 그래서 테스트를 응시하기 전에 총시간 / 문제수로 나누어서 한 문제당 얼마나 시간을 소요할지 전략을 세우고 시작하는 걸 추천 한다. 그래 나만의 페이스를 가지고 문제를 차근차근 풀어나갈 수 있다. 정해진 시간을 초과한다면 과감히 버리고 다음 문제로 넘어가길 바란다. 한 문제 때문에 다른 문제들도 다 해결 못 할지도 모른다.
 
 

응시 장소

 
여담으로 응시하는 장소도 현재 직장을 다니고 입장에서는 외부의 장소에서 응시를 해야 하는데 보통 나랑 비슷한 연차라면 유부남일 가능성이 높아서 집에서 하는 건 거의 불가능 할 것이다. 토끼같은 자식들의 예고 없이 발생하는 Exception 들을 catch 해가면서 코딩 테스트에 응시하기란 쉽지 않을테니 말이다.
 
그래서 조용한 커피숍(wifi 이가 안정적이여야 한다.), co-working space, 스터디 룸 대여 등을 알아보았는데, 한 회사는 스타벅스에 아침일찍 가서 응시 했었고, 또 다른회사는 아는 형네 회사 회의실에서 응시를 했었다. 최대한 편안히 응시할 수 있는데서 응시하길 바라며 해보진 않았지만, 스터디룸을 대여해서 하는 것도 좋은 방법일 것 같다.
 
 

 

마치며

 
코딩 테스트를 응시하는 여러분에게 얼마나 도움이 될련지 모르겠다. 나의 경우에는 카카오와 라인 코딩테스트를 응시해서 둘다 붙었다. 카카오의 경우는 모든 문제를 해결했었고, 라인의 경우는 한문제를 완전 다르게 해석 해서 풀지 못했다. (그 영어해석의 오류로… ㅠㅠ) 난이도에 대해서는 너무 걱정안해도 될 것 같다. 코딩테스트 플랫폼에 충분히 익숙하고 알고리즘 유형별로 풀이를 해보았다면 아주 쉽게 해결 할 수 있을 것이다. Hackerrank 기준으로 Medium 난이도 문제들중 쉬운 문제정도의 난이도가 가장 어려운 문제라고 보면 될것 같다. 만약 응시를 앞두고 있다면 좋은 결과가 있길 바란다.
 
 

ps. 코딩 테스트에 대한 생각 이란 영상인데 짧으니 한번 보시는 걸 추천!

반응형