[코테] 코딩 테스트 플랫폼 4종 - 백준, 리트코드, 프로그래머스, 코드시그널
실력 무관, 코딩 테스트 준비가 필요하다.
최근 코로나로 인한 환경과 인식 변화, 그리고 스타트업 등 신규 서비스 개발에 대한 수요 증가, 상대적으로 준비된 개발자의 부족 등으로 개발자의 이직이 부쩍 증가하였다. 최근 개발자의 이직 과정에서 서류 다음 절차로 코딩테스트를 기본으로 하고 있다. 오랫동안 한 직장에 근무하다 이직은 준비하는 사람이라면, 코딩 테스트의 난이도를 떠나서 코딩테스트 자체가 낯설 수 있다. 아무리 실무적 실력이 좋아도 다음과 같은 이유로 코딩테스트는 미리 준비해야할 필요가 있다.
- 1차적으로 플랫폼 마다 Input/Output이 익숙 해져야 한다.
- 출제되는 문제도 어느 유형이 있기 때문에, 실력과 별개로 학습이 필요하다.
- 코딩테스트는 제한된 시간 내에 풀어야 하므로, 즉각적인 유형 파악이 필요하다.
- 입력 갯수, 시간 제약 정도에 따라서 해법이 달라질 수 있다.
코딩 테스트 플랫폼
그렇다면 어떻게 준비 할 것인가?
필자는 자료구조, 알고리즘 등에 대한 공부도 필요 하겠지만, 일단 한번 부딪혀 보는 것을 선호한다. CS 전공 출신이라면, 대부분 이미 한번쯤을 들어봤을 것이고, 기억이 가물가물 하지만 하다보면 생각도 날 것이다. 하다보면 부족함을 느낄 것이고, 그 부족함이 느껴질 때 자료구조/알고리즘을 습득하는것이 최고의 효과를 보일 것이라 생각한다.
비전공자의 경우에도, 일단 필요성을 절실히 느껴야 할 것이니, 어느 정도 문법을 알고있다면 일단 플랫폼에서 코딩테스트를 맛보고 시작하는 것을 선호 한다.
최근에는 정말 많은 코딩테스트 플랫폼이 생겨났지만, 가장 빈번하게 사용되고 있는 몇개의 플랫폼을 소개 한다.
[코딩 테스트 관련 플랫폼]
1. 백준 온라인 저지 (https://www.acmicpc.net/)
2. 리트코드 leetcode (https://leetcode.com/)
3. 프로그래머스 programmers (https://programmers.co.kr/)
4. 코드시그널 codesignal (https://codesignal.com/)
백준 온라인 저지
온라인 코딩 테스트가 처음이라면, 공부하는 사이트로 적격이다. 지금껏 쌓여온 문제수와 그에 대한 관리가 훌륭하다. 무엇보다도 한글로써 다른 주요 플랫폼보다 한국인 친화적 이다. 역대 정보올림피아드 문제 등 많은 대회를 이끌어온 많은 국내에서 활동하기에는 이보다 효과적인 플랫폼이 많지 않다.
- 일단 가입 후, 상단 메뉴 > 문제 > 단계별로 풀어보기 등 단계별/유형별 문제를 해결해 나감으로써 기본기를 쌓을 수 있다.
- 상업적인 요소는 적어서 인지 (개인 운영?) UI 또는 IDE/편집기로써의 코딩 환경은 낙후된 편이다.
- 즉, 정말 공부하는데 집중하고, 이에 맞게 활용하는 것이 좋을 듯 하다.
리트코드
글로벌 가장 많은 개발자가 활용하는 플랫폼이라고 볼 수 있는, 코딩테스트/알고리즘의 종합세트라고 할 수 있다. 거의 모든 개발자가 알고있는 플랫폼이다. 난이도가 Easy, Medium, Hard 3종으로 구분되어 있으며, 다른 코딩테스트에서도 난이도 수준을 이야기 할 때 "리트코드 기준 Medium" 등으로 표현한다.
- 수 많은 문제와 알고리즘을 경험할 수 있다. 코딩테스트계의 종합사전 이라고 볼 수 있다.
- 직접 코딩할 수 있는 편집기 수준의 개발환경을 제공한다. (PlayGround)
- 문제를 풀고나면, 솔루션에 대한 접근법. 코드 등을 제공 받을 수 있어서, 부족한 부분을 채우면 공부할 수 있다.
- 공부하기는 최고의 플랫폼이다.
- (단점1) 영어 압박이 심하다.
- (단점2) UI가 많이 레거시 하다. 사용자 편의성 고려는 별로 이다.
프로그래머스
백준 온라인 저지 또는 LeetCode는 그야말로 공부를 위한 사이트에 가깝다. 이런 플랫폼을 기반으로 좀 더 상업적인 플랫폼들이 생겨나고 있다. 대표적인 사례가 국내에서는 프로그래머스 이다. 테스트 받는 사용자를 고려한 UI와 다른 IDE가 필요하지 않을 수준의 Web Editor/IDE를 제공한다.
개인적으로 매우 만족하고 있는 플랫폼이다. 또한 카카오등 많은 국내 기업들이 실제 코딩테스트를 시행하는 플랫폼이어서 익숙해 져서 나쁠것이 없는 필수 플랫폼이다.
- 사용자/지원자 친화적 UI, 상용 플랫폼
- 무엇 보다 한글
- 상용화인 만큼, 단계 단계 밟아 나가면 점점 익숙해지고 성장할 수 있도록 잘 가이드 되어 있음.
- 실제 국내외 대기업에서 코딩테스트를 진행 하는 플랫폼으로, 해당 기업 코딩테스트를 위해서는 필수적으로 익숙해져야 하는 플랫폼
- 단순 Input/Output 제시하는 문제외, 좀 더 시나리오를 가지고 있는 문제 제공 (실제 코딩테스트 문제들과 유사)
- 테스트 케이스를 본인 스스로 추가하여 다양한 조건에서 사전 테스트 해볼 수 있음
- 풀이 완료 후 다른 사람 풀이 탐색 가능 -> 실력 향상
- (단점) 백준/리트코드 등과 비교하여 알고리즘 자체에 집중도는 조금 낮은편
코드시그널
국내에는 상대적으로 적게 알려져 있는 플랫폼이다. 그러나, 해외에서는 매우 활용도가 높은 플랫폼.
코딩 테스트도 테스트 이지만, 외국계 기업에서 코딩 인터뷰 할 때 사용할 수 있도록 구성 되어 있다.
현존하는 코딩 플랫폼중 UI가 가장 친화적이다.
단순이 코드만 제시하는 것이 아니라, RPG 게임하듯이 시나리오가 있다. 하나 하나를 모험 하듯이 문제가 제출 된다.
단, 영어 압박이 좀 있다.
최근, 몰로코 (Moloco)가 코드시그널을 통해서 코딩 테스트를 진행한다.
문제는 타 코딩 테스트 문제 대시 상당히 쉬운 편이다.
알고리즘, 자료 구조 보다는 주어진 시나리오에 필요한 문제를 해결해 나가는데 좀 더 집중하고 있다.
개인적으로는 굉장히 재미 있고, 취미 삼아서 풀어볼 만 하다.
다만, 시나리오 중심이다 보니 문제를 이해하는데 시간이 좀 더 많이 소요 된다.
실제 기업 인터뷰 및 코딩테스트이 실시되는 "Test Center"를 제공하며, 여기에는 연습 테스트를 진행해 볼 수 있다. 1시간 10분의 시간이 주어진다. 시간은 아마도 테스트마다 변경이 될 수 있을 것이나, 기본은 1시간 10분으로 세팅되어 있다.
[관련 포스팅]
2020.12.05 - [개발 이야기/Python] - [파이썬] IDE 없이 블로그에서 Python 바로 실습/공부
2021.05.18 - [개발 이야기] - [개발] 코딩 테스트로 SW 실력을 높여 보자 - 구름레벨(GoormLevel)
2020.06.04 - [개발 이야기/Python] - [파이썬] 원격 주피터 노트북 만들기 - AWS에서 나만의 Remote Jupyter Notebook을 구동해 보자.
2020.05.18 - [개발 이야기] - [클라우드 데이터 분석 플랫폼 비교-2] 바인더(Binder)와 깃파드(Gitpod)
2020.05.18 - [개발 이야기] - [클라우드 데이터 분석 플랫폼 비교-1] 구글 코랩 (Google Colab) vs. MS Azure Notebook