메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

IT/모바일

[취업과 이직을 위한 알고리즘 인터뷰] 코딩 테스트가 무엇인지 알아보고 준비를 돕는 프로그래밍 사이트 4군데를 소개합니다.

한빛미디어

|

2020-09-15

|

by 나동빈

28,767

안녕하세요! 

오늘은 최근 IT 기업의 채용 과정에서 비중이 나날이 커지고 있는 코딩 테스트에 대하여 간단히 알아보겠습니다. 

 

두 줄 정리 

• 코딩 테스트가 무엇이고 어떻게 준비해야 하는지 알아봅니다.

• 코딩 테스트 준비를 돕는 온라인 코딩 사이트 4군데를 소개 합니다. 

 

코딩 테스트개념 배경 

 

코딩 테스트는기업/기관에서 직원이나 연수생을 선발하기 위한 목적으로 시행되는 일종의 문제 풀이 시험을 말합니다.

 

특히 개발 직군은 기본으로 코딩 능력 갖춰야 하므로 이전부터 코딩 테스트를 진행하는 기업이나 기관이 있었어요. 

 

근래 들어서는 공개 채용(이하 공채) 하는 기업에서 응시자의 수를 효과적으로 줄이기 위한 방법으로 코딩 테스트를 이용하며 채용 과정에서의 효율성을 높이고 있죠.

 

기업이나 기관의 코딩 테스트가 늘어남에 따라 2015년을 기점으로 다양한 온라인 저지 사이트에서 코딩 테스트 문제를 푸는 사람들 또한 늘어나기 시작했습니다. 

 

온라인 저지 사이트 OJ(Online Judge)라고도 하며 프로그래밍 대회나 코딩 테스트에서 나올 법한 문제 시험해보는 온라인 시스템입니다.


굉장히 많은 사이트가 있으나 유명한 사이트 곳만 표로 정리 했습니다.  

물론 여기 외에도 다양한 사이트가 있는데 검색해보면 쉽게 찾을 있어요. 

 

 

해외 

코드포스(Codeforces

http://www.codeforces.com 

탑코더(TopCoder

https://www.topcoder.com 

코드셰프(CODECHEF

https://www.codechef.com 

국내 

백준 온라인 저지(BOJ) 

https://www.acmicpc.net 

코드업(CodeUp) 

https://codeup.kr 

프로그래머스(Programmers) 

https://programmers.co.kr 

 

 

 

국내 프로그래머들이 많이 활동하고 있는 코드포스에서는 주기적으로 사용자 통계를 발표하는데 2019 사용자 통계(다음 그림) 보면 2015 9월에 비해 2018 9월에 등록한 사용자가 3 이상 늘었습니다

 

 

스크린샷 2020-09-15 오후 3.09.09.png

코드포스 2019년 사용자 통계*

 

이 통계에 따르면 코드포스의 가입자 수가 증가한 만큼 테스트를 시행한 사람의 수도 증가한 것을 알 수 있습니다. 

그래프를 보면 3배 가량 증가했습니다.


물론 온라인 저지 사이트 대부분이 사용자 정보를 공개하지 않아서 전체 사이트에 대한 구체적인 수치를 알기는 어렵지만, 국내의 유명 온라인 저지 사이트들도 비슷한 양상을 보입니다.  

 

특히 국내에서 가장 많은 사용자가 활동하는 백준 온라인 저지의 제출량 비교 그래프를 보겠습니다. 

이 그래프는 백준 온라인 저지의 대표인 최백준님이 공유해준 그래프로 2012년에 비해 2019년의 소스코드 제출량이 162배 이상 증가 했음을 확인할 수 있습니다.  

 

소스코드 제출량이 매우 가파르게 상승하고 있는대요. 

여러 지표를 고려해보았을 때, 국내에서도 알고리즘 문제 풀이에 많은 관심을 가지게 된 것만큼은 분명합니다. 

 

스크린샷 2020-09-15 오후 3.12.06.png

 백준 온라인 저지의 코딩 테스트 제출 수 증가 그래프

 

코딩 테스트를 위한 국내 온/오프라인 강의 또한 눈에 띄게 많아졌는데, 삼성전자가 2015년 하반기부터 소프트웨어 관련 직군은 SW 역량테스트를 시행한 것과 연관 지을 수 있습니다. 

 

게다가 2016년에는 알파고가 등장해 바둑기사 이세돌을 이긴 뒤로 한동안 대한민국의 주요 키워드는 인공지능, 알고리즘, 코딩이었습니다.

 

변화는 교육에서도 찾을 수 있어요. 

과거에는 학교에서 엑셀, 파워포인트처럼 소프트웨어 활용 방법을 중심으로 가르쳤다면, 2015년 개정 교육 과정부터는 정보 교과의 필수 과목 채택으로 컴퓨팅 사고력(Computational Thinking)을 강조하면서, 컴퓨터를 활용하여 현실 세계의 다양한 문제를 해결하는 데에 도움을 얻을 수 있는 교육을 하고 있습니다. 

 

실제로 초등학교와 중학교에서는 파이썬(Python)이나 스크래치(Scratch) 등을 정보 교과 시간에 배우고 있지요.

이러한 교육 과정과 취업 시장의 변화로 IT 개발 직군의 취업 준비생이 아니어도 문제 해결 능력을 요구하는 알고리즘 문제를 푸는 사람들 또한 늘어나고 있다고 볼 수 있습니다.

 

 

코딩 테스트의 유형  

코딩 테스트는 크게 온라인 코딩 테스트와 오프라인 코딩 테스트, 2가지 유형으로 구분합니다. 

 

1. 온라인 코딩 테스트

온라인 코딩 테스트는 공채 과정에서 응시자가 많을 때 인터넷을 활용해 프로그래밍 역량을 평가하여 응시자를 선별하는 데 사용해요.

보통 기업에서는 온라인 저지 시스템을 별도로 구축하여 제공하거나 백준 온라인 저지(BOJ) 혹은 프로그래머스 같은 온라인 저지 서비스에 문제를 출제한 뒤 응시자가 해당 시스템에서 응시하도록 하지요.

 

온라인 저지 서비스들은 정부나 기업의 요청에 따라서 코딩 테스트나 대회를 열기도 합니다.

 

온라인 코딩 테스트에서는 정해진 시간에 응시자가 사이트에 접속해 문제를 읽고 해답을 소스코드 형태로 작성하여 제출하면, 온라인 저지 서비스가 정답 여부를 알려주고 점수를 부여한다.

 

보통 저지 시스템에서 연습할 때는 제출 횟수에 제한이 없으나, 실제 코딩 테스트에서는 횟수 제한이 있을 수 있으니 주의해야 합니다.

한 가지 팁은 코딩 테스트 주체별로 차이가 있지만, 온라인 코딩 테스트는 인터넷 검색이 가능해서 오프라인 코딩 테스트에 비해 높은 성적을 받을 확률이 높습니다.

다만, 이는 모든 코딩 테스트에 적용되는 사항은 아니니 규칙과 주의 사항을 반드시 확인해주세요.


대부분의 코딩 테스트나 알고리즘 대회에서는 테스트가 끝난 후에 참가자들이 제출한 소스코드를 대조하여 부정행위를 저지른 사람이 있는지 확인합니다. 

따라서 인터넷에서 참고할 만한 소스코드를 찾더라도 필요한 내용만 확인하여 이를 자신만의 소스코드로 표현하는 작성 능력도 중요하죠.

만약 인터넷에서 참고한 소스코드를 일절 변경하지 않고 그대로 사용한다면, 부정행위로 간주될 수 있어요.

대개 잘 알려진 유명하고 기초적인 코드라면 알고리즘 대회나 코딩 테스트에서 사용해도 큰 문제가 없지만, 부정행위 검출 프로그램에 의해서 자동으로 부정행위로 인식되는 경우도 있으므로 유의해야 합니다.

 

특히 온라인 IDE를 이용하는 경우, 자동으로 소스코드가 공개(Public) 상태로 온라인에 배포되어 부정 행위로 간주될 수도 있습니다.

이는 실제로 종종 발생하는 사례입니다. 

예를 들어 Ideone과 같은 온라인 IDE 서비스를 이용하여 온라인 코딩 테스트를 치를 수 있는데, Ideone 서비스는 기본적으로 소스코드가 ‘Public’ 옵션으로 공개 되어 있어요. 

따라서 소스코드를 기본 옵션인 ‘Public’ 옵션으로 실행하는 경우, 소스코드가 공개되어 구글 등의 검색 엔진에서 검색될 수 있지요.

온라인 IDE를 이용할 때는 소스코드가 공개 설정으로 되어 있는지 확인할 필요가 있습니다. 

 

2. 오프라인 코딩 테스트

오프라인 코딩 테스트는 응시자가 회사에 방문해서 치르는 시험을 의미합니다.

대체로 인터넷 검색이 허용되지 않으며 회사에서 제공하는 컴퓨터 환경에서 바로 시험에 응시하죠.


환경이 낯설다보니 응시자 대부분이 온라인 코딩 테스트에 비해 부담감을 느끼게 됩니다.

때에 따라 응시자가 자주 사용하는 소스코드를 가져올 수 있도록 허용하는 경우도 있으므로 기관이 규정하는 바에 맞게 테스트를 준비하시면 좋습니다.

 

대회 혹은 코딩 테스트에 가져올 수 있도록 허용하는 ‘알고리즘 문제 풀이용 개인 코드 라이브러리’를 통상적으로 팀 노트(Team Notes)라고

부릅니다.


혹시 지원한 회사에서 구체적으로 오프라인 코딩테스트의 시험 방식에 대해 명시하지 않으면 꼭 회사에 시험이 어떤 식으로 진행되는지 문의해보세요. 

 

대체로 오프라인 테스트를 치를 때는 응시자가 많이 좁혀진 상태이므로 코딩 테스트를 본 뒤에는 별도의 면접실로 안내되어 화이트 보드 혹은 종이와 함께 자신이 문제를 해결한 과정 등에 대해서 설명하기도 합니다. 

 

이때 면접관과 함께 해당 문제에 대한 내용을 토론하며, 자신이 어떠한 알고리즘으로 문제에 접근하고 풀었는지를 설명하고 평가를 받습니다. 

기업의 입사 테스트 외에도 컴퓨터 관련 학과의 수시 입학 전형에서도 이런 방식이 채택됩니다.

 

3. 코딩 테스트 준비를 돕는 다양한 서비스

온라인에서 알고리즘 문제를 풀어볼 수 있는 플랫폼은 많습니다.

다양한 서비스 중에서 코딩 테스트 및 알고리즘 대회를 준비할 때 도움이 될 만한 사이트 4군데를 소개 드립니다. 

 

> 코드업

 

스크린샷 2020-09-15 오후 3.21.28.png

 

 

코드업(CodeUp)은 정보 교사가 알고리즘 공부를 목적으로 운영하는 국내 사이트이다. 

난이도가 낮은 문제가 많아 처음 공부하는 사람에게 적합하다. 

알고리즘을 잘 모르거나 이제 막 문제 풀이를 시작하려는 독자라면 코드업 사이트의 [문제] - [문제집]에서 [기초 100제]를 꼭 풀어보자. 

기초 100제는 알고리즘 문제 풀이에서 자주 사용하는 기본 코드 유형과 관련된 문제라서 이 유형을 제대로 학습하면 실전에서 최소한 문법을 몰라서 풀지 못 하는 일은 적을 것이다. 

따라서 코딩 테스트에서 많은 비중을 차지하는 구현 문제들을 해결하는 데 큰 도움이 될 것이다.

특히 난이도가 쉬운 문제가 많고 문제 순서가 난이도 순서와 비례한 경우가 많으므로 자신감을 얻으면서 다양한 유형을 빠르게 풀어보는 데 적합하다.

따라서 코딩 테스트 초보자는 코드업에서 경험을 쌓은 뒤에 백준 온라인 저지로 넘어가는 것을 추천한다.

본인이 초보자라면 코드업에서 쉬운 문제 위주로 최소한 200문제가량을 푼 뒤에 백준 온라인 저지로 넘어가도록 하자.

기초 100제는 대부분 구현(Implementation) 문제로 구성되어 있습니다.

 

> 백준 온라인 저지

스크린샷 2020-09-15 오후 3.23.51.png

백준 온라인 저지는 국내에서 가장 유명한 알고리즘 문제 풀이 사이트이다. 어려운 문제부터 쉬운 문제까지 난이도가 다양하며, 코딩 테스트 준비를 처음 시작하는 사람을 위한 단계별 문제 풀이도 있다. 

 

가장 전형적인 코딩 테스트 형식(ICPC 대회 형식)을 따르고 있으며, 국내 사용자가 많아서 사용자 간의 질문과 답변이 활발한 편이다.

 

코드업과 다르게 백준 온라인 저지의 문제 순서는 난이도와 무관하므로 순서대로 풀면 초보자 입장에서는 예상치 못한 난이도에 좌절을 겪을 수 있다. 백준 온라인 저지의 장점은 [문제] - [알고리즘 분류] 탭으로 이동하면 유형별 알고리즘을 선택하여 풀 수 있다는 점이다. 

 

이 방식은 한 유형씩 파고들며 공부하고 싶은 독자에게 유용하다. 

따라서 필자는 책을 읽으며 백준 온라인 저지에서 유형별 알고리즘을 찾아 풀어볼 것을 권장한다. 

예를 들어 2부 알고리즘 이론 파트의 3장 ‘그리디’를 읽은 다음 백준 온라인 저지에서 해당 유형의 문제들을 풀어보도록 하자.

 

 

또한 백준 온라인 저지에서는 삼성 SW 역량테스트 대비 문제집을 제공하고 있다. 문제 복원도가 우수하므로 대기업 공채를 준비하는 학생이라면 백준 온라인 저지의 문제를 풀어보는 것을 추천한다.

 

이 책에서는 백준 온라인 저지의 문제를 포함하여, 삼성 SW 역량테스트로 출제되었던 문제와 흡사한 알고리즘이 요구되는 문제를 수록하고 있다. 따라서 이 책으로 먼저 공부한 다음 백준 온라인 저지 등에서 SW 역량테스트 문제 등을 풀어보는 것을 추천한다.

 

> 프로그래머스


스크린샷 2020-09-15 오후 3.27.14.png

 

 

프로그래머스는 국내 알고리즘 학습 사이트로 2017년부터 현재까지 있었던 카카오 공채 문제를 모두 제공하고 있다. 더불어 다른 온라인 저지와 마찬가지로 소스코드를 제출하면 정답 여부를 확인할 수 있다. 프로그래머스 사이트의 재미있는 특징은 특정한 문제를 맞힌 다른 사람들의 코드를 확인할 수 있다는 점이다. 단, 본인이 해당 문제를 푼 경우에는 ‘알고리즘 점수’가 차감되지 않지만, 해당 문제를 풀지 못한 상태에서 다른 사람의 풀이를 확인하기 위해서는 ‘알고리즘 점수’가 차감된다.

 

 

백준 온라인 저지 또한 특정한 문제를 본인이 해결한 경우, 다른 사람의 공개된 소스코드를 확인할 수 있지만, 소스코드를 공개하지 않은 사용자의 정답 코드는 확인할 수 없다.

 

 

카카오에 지원하거나, 해당 기업의 문제 스타일을 확인하고 싶다면 이 사이트에 접속해서 문제를 반드시 풀어보자. 물론 이 책에서도 카카오에서 출제된 문제와 이를 대비할 수 있는 다양한 알고리즘 문제를 다루니 책을 통해 기초 개념을 잡고, 프로그래머스 사이트에서 추가로 문제를 풀어보자.

 

 

> SW Expert Academy 

스크린샷 2020-09-15 오후 3.32.11.png

 

SW Expert Academy(이하 SW 익스퍼트 아카데미)는 삼성에서 공식적으로 제공하고 있는 알고리즘 학습 사이트이다. 

삼성은 ‘상시 SW 역량테스트’ 제도를 운영하고 있는데, 삼성 직원이 아니더라도 응시할 수 있다.

 

학생들은 상시 SW 역량테스트를 치르면서 본인의 실력을 가늠할 수 있다. 이 책의 독자들도 SW 역량테스트 A형에 응시해보는 것을 추천한다.

 

삼성전자의 경우 DFS/BFS를 활용해야 하는 탐색 문제 유형을 자주 출제한다. 

 

삼성전자 IT 직군의 공채에 등장하는 알고리즘 문제 유형도 상시 SW 역량테스트 문제와 유사하게 출제되므로 상시 SW 역량테스트 A형을 응모해서 모의고사를 치르듯 실력을 확인하고 부족한 부분을 미리 확인해볼 수 있다.

 

코딩 테스트는 무엇이고, 어떻게 준비해야하는지 조금은 도움이 되셨나요? 

다음 연재에서는 <어떤 언어가 코딩 테스트에 유리할까?>를 주제로 이어가겠습니다. 

 


<관련도서>

 이것이 취업을 위한 코딩 테스트다 with 파이썬

:취업과 이직을 결정하는 알고리즘 인터뷰 완벽 가이드, C/C++, 자바 코드 제공 

 

 

04_이것이 취업을 위한 코딩 테스트다 with 파이썬_입체표지.png

  • 저자:나동빈
  • 출간:2020-08-05
  • 페이지: 604 쪽
  • ISBN:9791162243077 
댓글 입력
자료실

최근 본 상품0