현이의 개발 이야기

나는 왜 자바로 코딩 테스트 책을 썼는가


처음으로 집필한 <프로그래머스 코딩 테스트 문제 풀이 전략: 자바 편>

 

누구나 가슴 속에 책 한 권 쯤은 써보고 싶다는 생각이 있을 것이다. 나 또한 막연히 책을 쓰고 싶다는 생각을 하고 있었고, C++이나 자바 기본서와 같이 아무 주제나 잡고 끄적여도 보고, 대충 목차를 세워보기도 했지만 한 페이지는 커녕 몇 줄 끄적이다 말기를 반복하고 있었다.

열심히 작성한 C언어 기본서 목차

 

그러던 어느 날, 대학교 동기들 몇 명이 모여 있는 단톡방에서 길벗 출판사가 코딩 테스트를 주제로 책을 집필할 작가를 구하고 있다는 소식을 듣고 바로 지원했다. 출판사와 계약을 하고, 강제성이 생기면, 뭔가 할 수 있을 것 같았다. 또, 내 모든 걸 활용해서 쓰기에도 아주 적합한 주제라고 생각했다.

 

나는 나의 강점과 약점을 알고 있다. 나는 사실 알고리즘에 대해 잘 아는 편이 아니다. 국제 대회는 커녕 학교 대회에서도 열심히 문제를 푸는 팀원의 입에 피자를 넣어주는 역할이었다. 딱 코딩 테스트는 통과할 수 있을 만큼의 필수적인 지식만을 가지고 있다. 반대로 무언가를 구현하거나 설계하는 것에 자신이 있다. (물론 구글에 들어오고 나서 역시나 세상은 넓다는 것을 여실히 느끼고 있다)


코딩 테스트만을 위한 필수 지식을 좋은 코드로 풀어내기.
내가 이 책을 쓰면서 항상 되새겼던 목표였다.

 

"지은이의 말"에 써놓은 이 책의 목표

 

계약 전 집필할 수 있는 언어에는 파이썬과 자바 두 옵션이 있었는데 나는 자바를 선택했다. 파이썬이 특유의 쉬운 난이도로 인해 코딩 테스트에서 더욱 인기가 많다는 것은 알고 있었지만 별다른 고민 없이 자바를 고를 수 있었던 이유는 두 가지가 있다.

 

1. 자바가 더 자신 있어서

단순한 이유이다. 나는 언어는 언어답게 써야 한다고 생각한다. 언어마다 특징이 있고, 코딩 스타일이 있다. 언어를 언어답게 쓰지 않은 코드는 읽기도 힘들고 언어에 대한 전문성이 떨어져보이게 함은 물론, 언어의 능력을 끌어낼 수 없다. 나는 프로그래밍의 시작을 자바로 했기 때문에 파이썬을 파이썬답게 쓰는 것 보다 자바를 자바답게 쓰는 것에 더 익숙하고 자신이 있다.

 

코딩 테스트 책이라고 해서 문제를 푸는 것만 다루고 싶지 않았다. 코딩 테스트의 문제를 푼다는 것은 문제를 이해하고, 풀이를 떠올리고, 코드로 옮기는 작업이다. 풀이를 떠올리는 것과 코드로 옮기는 것. 두 가지 모두 코딩 테스트의 일부인 것이다.

 

풀이를 떠올릴 때에는 논리적으로 정확한 풀이를 도출해내는 것에 집중하고, 코드로 옮길 때에는 자바다운 코드로 옮길 수 있도록 하는데에 최대한 집중하여 집필하려고 했다. 이러한 접근으로 생각해보면, 파이썬에 대한 경험이 상대적으로 적은 내가 파이썬으로 코딩 테스트 책을 집필하는 것은 나 스스로한테도 당당하지 못한 일이라고 생각했다.

 

2. 자바로도 가능하다는 것을 보여주고 싶어서

파이썬이 코딩 테스트 언어로 인기 있는 이유는 다루기 쉬워서이다. 하지만 막상 우리나라는 자바공화국이라고도 불릴 만큼 자바를 많이 활용한다. 나는 이것이 모순이라고 생각했다. 자바를 이용해 프로젝트를 하고, 취업을 준비하는데 막상 코딩 테스트는 파이썬으로 한다는 것은 자바에 대해 익숙하지 않다는 것을 스스로 이야기하는 것이 아닐까 싶었다.

 

물론 많은 사람들이 자바로 코딩 테스트를 도전해 보았을 것이다. 하지만 문제를 푸는 것도 어려운데 풀이를 찾아보면 파이썬이나 C++ 밖에 없으니 그 중 쉽다고 하는 파이썬으로 빠졌을 확률이 높다.

 

이렇게 자바를 사용하는 사람들에게 자바로도 충분히 코딩 테스트를 통과할 수 있고, 오히려 자바답게 코딩 테스트를 푸는 과정을 소개함으로써 코딩 테스트 준비가 단순히 취업을 위한 문턱 하나를 넘는 것을 넘어서 자바에 대한 이해도와 자신감을 끌어올리는 과정이 되기를 원했다.

 

 

혹시나 자주 사용하던 언어가 있음에도 불구하고 코딩 테스트 대비를 위해 다른 언어를 고려하고 있으면 코딩 테스트에서 지원하는 언어인 한, 자신의 메인 언어를 코딩 테스트에도 활용해보기를 추천한다. 언어에 대한 이해도와 언어를 다룰 수 있는 능력이 성장함을 느낄 수 있을 것이다.

코딩 테스트를 준비하고 있다면? 더 좋은 코드를 작성하고 싶다면?
79개 문제 풀이, 코딩전문역량인증시험(PCCP) 대비까지!

합격에 한 걸음 더 가까워지는 실전형 코딩 테스트 문제 풀이 가이드
취업과 이직을 위한 프로그래머스 코딩 테스트 문제 풀이 전략 : 자바편