가끔 미투데이, 페이스북, 메일을 통해 질문을 받을 때가 있다. “ 제가 자바 기반으로 웹 프로그래밍을 하려고 합니다. 무엇부터 시작하면 좋을까요?”. 이 질문을 받았을 때 처음 드는 생각은 막막함이다. 막연하게 “이것부터 시작하면 좋지 않을까?” 라는 생각을 하지만 확신이 서지 않는다. 확신이 서지 않는 이유는 내가 10 년 이상 자바를 기반으로 하는 웹 개발자로 살아가면서 학습하고 사용하고 있는 도구와 언어들이 너무 많기 때문이다. 2000 년 전후에 자바 웹 프로그래밍을 시작했다면 자바와 서블릿(JSP 포함) 부터 시작하면 사회에 첫발을 내딪을 수 있었다. 하지만 지금은 자바와 서블릿만으로는 어딘지 모르게 부족한 부분이 있는 것이 사실이다.
맞다. 아무리 자바 진영에 많은 기술들이 등장하더라도 자바와 서블릿부터 시작하는 것이 정석일 것이다. 하지만 사회는 자바, 서블릿 외에 더 많은 것을 요구한다. 스트럿츠2, 스프링, MyBatis 와 같은 프레임워크는 기본이며, 자바 스크립트와 같은 클라이언트 프로그래밍도 할 수 있기를 기대한다. 한 명의 자바 웹 개발자가 되기 위해 알아야할 기술 요소들이 너무 많다. 학습해야할 기술 요소가 많은 것은 어쩔 수 없는 자바 웹 개발자의 숙명이라고 하자. 아니 어쩌면 모든 웹 개발자의 숙명일 수도 있다.
이 같은 숙명임을 알면서도 자바 웹 개발자가 되기 위해 길을 걷기 시작한다. 하지만 처음부터 길을 막는 요소들이 많다. 그 중에서도 가장 큰 걸림돌은 여러 개의 프레임워크를 조합해 하나의 자바 웹 애플리케이션을 실행하기 위해 필요한 설정이 너무 많고 복잡하다는 것이다. 자바를 시작하는 많은 개발자들은 여기서 좌절감을 맛본다. 검색이나 지인의 도움으로 수 많은 삽질 끝에 성공하겠지만 이미 자바 웹 프로그래밍 학습에 대한 열정은 사그라들고 좌절감만 느끼게 된다. “ 내가 진짜 이 길을 걸을 수 있을까?” 라는 회의감. 그러면 주위에 있던 선배 자바 웹 개발자는 “요즘 애들은 너무 끊기가 없어.”, “ 그 정도 진통은 겪어야 진정한 개발자로 거듭날 수 있지.” 라는 말로 후배들을 나무란다.
정말 지금 시작하는 개발자들이 끊기가 없는 것일까? 이 같은 추세가 사회 현상이기 때문에 일정 부분 공감하는 부분이 있다고 치자. 하지만 2000 년에 프로그래밍을 시작한 초보 개발자를 바라보는 경력 10 년차 개발자 또한 똑같은 관점으로 바라보지 않았을까? 역사는 똑같은 과정을 되풀이하면서 한걸음씩 나아가고 있다. 이 같은 문제를 사람에서 찾을 것이 아니라 우리가 사용하고 있는 도구와 기술에서 찾아야하는 것은 아닐까? 자바 또한 역사가 길어지면서 초보자가 넘기 힘든 산이 되어버린 것은 아닐까?
넘기 힘든 산이 되어버린 자바 진영에 또 하나의 프레임워크를 소개하려고 한다. 지금까지 등장한 수 많은 프레임워크 때문에 그렇지 않아도 골치가 아픈데 또 다른 프레임워크를 소개하려고 한다. 내가 다른 프레임워크를 소개하는 이유는 지금 자바 웹 프로그래밍을 시작하려는 초보 개발자들을 위해서이다. 그들의 발걸음을 좀 더 가볍게 해줄 수 있는 도구가 되지 않을까라는 믿음 때문이다. 내가 소개하려는 프레임워크는 플레이 프레임워크이다. 나는 플레이 프레임워크가 초보 개발자의 모든 문제를 해결해 줄 수 있으리라 생각하지 않는다. 플레이 프레임워크를 학습하더라도 웹 프로그래밍을 위해 학습해야할 지식과 복잡도의 본질은 똑같다. 하지만 플레이 프레임워크는 초보 개발자가 처음에 넘어야할 산을 좀 더 쉽게 넘을 수 있도록 도와준다. 내가 처음 자바 기반으로 웹 프로그래밍을 시작할 때는 학습해야할 기술 요소가 많지 않아 단계적으로 학습하면서 재미를 느꼈던 것이 지금까지 프로그래밍을 할 수 있는 큰 계기가 되었다. 초보 개발자에게는 단계적인 학습과 재미가 필요하다. 그 하나의 과정으로 플레이 프레임워크를 활용함으로써 자바 기반으로 웹 프로그래밍을 하는 것이 지루한 작업이 아니라 재미있는 작업이라는 것을 느껴봤으면 하는 바람이다. 그 이후에 좀 더 깊이 있는 주제로 한 단계씩 걸어간다면 지치지 않고 걸어갈 수 있으리라 생각한다.
플레이 프레임워크를 소개하는 또 하나의 이유는 삽이면 충분한 곳에 포크레인을 사용하지 말았으면 하는 바람 때문이다. 가볍고, 빠른 개발 기간을 요하는 애플리케이션임에도 불구하고 엔터프라이즈급에서 필요한 도구를 사용할 필요는 없지 않을까? 상황에 따라 적합한 도구를 사용하면 좋을텐데 국내의 개발 현실은 한 가지 도구로 쏠림 현상이 너무 심하다. 예를 들어 최근에 스프링 프레임워크가 좋다고 하면 너도 나도 스프링 프레임워크 기반으로 애플리케이션을 개발한다. 굳이 스프링 프레임워크를 사용할 필요가 없음에도 불구하고 이런 경향이 강하다. 따라서 관리툴이나 프로토타입과 같이 사용자가 많지 않고, 빠른 개발을 요하는 곳에는 플레이 프레임워크를 활용할만한 충분한 가치가 있다. 물론 루비와 같은 다른 언어에 익숙하다면 다른 프레임워크를 활용해 더 효율적으로 개발할 수 있다. 하지만 자바에 익숙한 개발자밖에 없다면 플레이 프레임워크가 하나의 대안이 될 수 있다.
현재 프로젝트에서 사용해야 하기 때문에 플레이 프레임워크를 학습해야 하는 것이 아니다. 플레이 프레임워크가 가지고 있는 접근 방식과 사상이 기존과 다르기 때문에 플레이 프레임워크의 학습을 통해 새로운 경험을 할 수 있기를 바라는 마음 때문이다.