Uknow's Lab.
article thumbnail

https://programmers.co.kr/

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

프로그래머스.

이 곳을 처음 안 것은 코딩테스트 사이트를 찾아다니면서 부터였습니다.

순수 알고리즘을 묻기 보단, 지문이 길고, 현실에서 있을법한, 개연성있는 문제를 다수 갖고 있는게 특징입니다.

 

실제 코딩테스트 문제에서는 순수 알고리즘에 관한 내용을 묻는게 아니라, 이를 응용하는 쪽이 주로 나오기 때문에

저는 개인적으로 알고리즘 공부는 백준에서, 코딩테스트 준비는 프로그래머스에서 하는 편입니다.

 

프로그래머스를 처음 알게 되었을때만 하더라도, 코딩테스트 준비 외에 들어갈 일이 없었으나

최근에는 데브매칭 등 채용 프로그램, 코딩역량인증시험,  온라인 강의 등 사업을 정말 많이 추진하고 있죠.

 

 

https://monito.io/

 

온라인 시험 플랫폼 | 모니토

모니토로 부정행위 걱정 없이 온라인 시험을 운영, 감독하세요. 실시간 AI 시험 감독 기능으로 더욱 공정한 온라인 시험 솔루션을 제공합니다.

monito.io

 

그 중 하나가 바로 모니토(Monito)라는 온라인 코딩테스트 시험 환경인데,

여러 기업 혹은 기관에서 코딩테스트를 진행할 때, 모니토를 이용합니다.

저는 지금까지 모니토 플랫폼을 사용해 온라인 감독을 하는 코딩테스트를 5~6회 정도 응시했는데요.

개인적으로 느꼈던 경험을 적어봤습니다.

 

 

IDE의 도움을 받지 못한다.

 

가장 체감이 많이 되는 부분입니다. 그냥 저 화면에서 그대로 풉니다.

디버깅은 물론 자동완성, 빨간 밑줄 등 IDE의 도움을 전혀 받을 수 없습니다.

import / include 등도 물론 직접 해야 합니다.

사실상 메모장 코딩과 크게 다르지 않습니다.

 

IDE 없이 처음 날코딩을 하게 되면 꽤 불편합니다만,

시험 며칠 전 부터 프로그래머스 연습 문제들을 IDE 없이 날코딩으로 몇개 풀다보면 어느정도 적응됩니다.

 

 

 

틈틈히 코드 실행해보기를 눌러보며 컴파일 에러라도 잡아보자.

오류가 발생하면 로그 메시지로 어떤 오류가 났는지 알려주긴 합니다만,

IDE 처럼 어느 부분에서 에러가 났는지 친절하게 알려주는게 아니여서,

코드가 길어지면 오류난 부분을 찾는게 꽤 힘듭니다.

오타가 났을 때 빨간 밑줄로 알려주지도 않습니다.

때문에 저는 그냥 중간중간 미완성 코드를 실행해가며 컴파일 에러를 잡습니다.

 

 

 

테스트 케이스를 다 맞췄다고 맞은 것은 아니다.

연습 때 처럼 20~30개의 테스트 케이스를 돌려 즉석에서 정답 처리가 되는 방식은 아닙니다.

2~3개의 테스트 케이스만 예시로 주어질 뿐, 나머지 히든 테스트 케이스 역시 맞춰야 비로소 정답처리가 됩니다.

때문에 2~3개의 테스트 케이스를 맞았다고 바로 넘어가는 것이 아닌,

한 번 더 미처 생각하지 못한 테스트 케이스가 있지 않을까 검토해보는 것이 필요합니다.

Int값으로 충분히 나타낼 있는가? 오버/언더플로우가 발생하진 않나? 등 경계값 테스트를 체크해보는 것도 좋습니다.

 

 

 

메소드가 기억이 안난다면 레퍼런스 페이지를 참고하자.

불행 중 다행이도, 프로그래머스에서 실제 시험을 응시할 때는 언어별 레퍼런스 페이지를 제공합니다. (SQL 제외)

https://docs.oracle.com/javase/8/docs/api/

 

Java Platform SE 8

 

docs.oracle.com

 

레퍼런스 페이지란, 위 자바 공식 문서 사이트와 같이 각 언어의 공식 문서 페이지를 의미합니다.

자바 기준 사이트의 UI도 동일했던 것 같습니다.

메소드의 이름이 길어 정확한 메소드명이 기억나지 않을 때, 매개변수 타입 혹은 리턴 타입이 헷갈릴 때 유용합니다.

 

하지만 모든 테스트가 레퍼런스 페이지를 제공하는 것은 아니기에,

시험 전에 레퍼런스 페이지를 참고할 수 있는지 문의해보셔야 합니다.

 

 

 

print문으로 디버깅하자.

IDE의 디버깅 도움을 받을 수 없습니다.

따라서 각 언어의 print문들을 사용해 프로그램의, 변수의 흐름을 확인해야 합니다.

(프로그래머스 콘솔창에도 print문을 사용한 출력은 찍힙니다)

IDE를 사용한 디버깅을 하던 분들은 매우 불편하겠지만, 그럼에도 정말 print문 덕에 구원받은 사람 여럿 봤습니다.

 

 

 

웹캠 사용 여부, 외부 키보드 사용 가능 여부 등도 확인해보자.

화상 감독 환경은 모니토 플랫폼을 이용한다고 해서 다 같지는 않습니다.

폰 카메라 (자기 자신 비추게) / 웹캠 / 화면 공유 등 모든 수단을 사용해 감독하는 경우도 있고,

몇몇 수단만 사용해 화상 감독을 하는 테스트도 있습니다.

 

저는 웹캠을 켜야 할 땐 그냥 노트북을 사용해 응시하는데요.

하지만... 노트북의 자판으로 코딩하는 건 좋아하지 않기에

유선 키보드를 연결해 시험을 응시하던 중,

감독관님으로부터 별도의 키보드를 연결해 사용하는 건 불가능하며, 노트북 자판으로만 코딩하라는 메시지가 오더군요...

시험 중간에 호다닥 키보드 치운 기억이 납니다.

 

이런 불상사가 없게 노트북 자판 외 별도 키보드 사용 가능 여부, 웹캠을 켜야하는지 여부도 확인하는게 좋을 것 같습니다.

키보드야 뭐 치우면 되지만... 웹캠은 준비 안하고 있다가 시험 몇 분전 알게되면 정말 낭패니까요.

 

 


 

 

Chat GPT와 Github Copilot의 영향인지,

프로그래머스 온라인 코딩테스트 플랫폼을 사용해 코딩테스트를 진행하는 기업 / 기관이 늘어났습니다.

네이버와 소프트웨어 마에스트로도 작년/재작년 까지는 외부 IDE 사용이 가능했는데,

이젠 IDE의 도움을 완전 배제한 프로그래머스 온라인 시험 플랫폼을 사용하고 있습니다.

 

이 글을 읽고 계시는 분들은 아마 저와 같은 코딩테스트 응시자 분들이 대부분일텐데,

프로그래머스 온라인 코딩테스트 환경은 처음하면 조금 낮설지만,

사실 문제를 풀다보면 금세 익숙해집니다.

 

모두 열심히 준비해서 좋은 결과가 있기를 바랍니다.

profile

Uknow's Lab.

@유노 Uknow

인생은 Byte와 Double 사이 Char다. 아무말이나 해봤습니다.