Child pages
  • 자바 웹 개발자 교육 과정을 기획하면서...

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

2008년부터 2009년까지 한빛교육센터에서 총 5회에 걸쳐 스프링 프레임워크에 대한 강의를 진행했다. 그 때의 아쉬움과 현재의 상황에 맞추어 새로운 강의를 준비하고 있다. 새로운 강의를 기획하고 준비하면서 왜 이 같은 강의를 기획하려는 생각을 하게 되었는지를 정리해 본다.

왜 플레이 프레임워크인가? 글의 서두에서도 언급했듯이 가끔 미투데이 페이스북 메일을 통해 질문을 받을 때가 있다. “ 제가 자바 기반으로 웹 프로그래밍을 하려고 합니다 무엇부터 시작하면 좋을까요?”.  이 질문을 받았을 때 처음 드는 생각은 막막함이다 막연하게 “이것부터 시작하면 좋지 않을까?” 라는 생각을 하지만 확신이 서지 않는다 확신이 서지 않는 이유는 내가 10 년 이상 자바를 기반으로 하는 웹 개발자로 살아가면서 학습하고 사용하고 있는 도구와 언어들이 너무 많기 때문이다.

많은 도구와 기술 요소들 중에서 대부분의 개발자는 자바와 서블릿부터 시작할 것이다. 내가 웹 개발자를 시작할 때는 자바, 서블릿, 데이터베이스 정도 학습하면 웹 애플리케이션을 개발하는데 큰 어려움이 없었다. 최근 대부분의 프로젝트에서 활용하고 있는 다양한 오픈 소스 프레임워크도 없었으며, 앤트, 메이븐과 같은 빌드 도구도 없었다. 최근 대부분의 프로젝트에서 사용하고 있는 이클립스나 IntelliJ와 같은 통합 개발 툴도 없었다. 버전 관리 시스템을 사용하는 곳도 많지 않았다. 그런데 12년이 지난 지금 한 명의 웹 개발자가 되기 위해서는 너무나도 많은 것을 배우고, 익혀야 한다. 무엇부터 시작해야 할지, 어디서부터 시작해야할지 막막해 하는 것이 사실이다. 자바와 서블릿을 공부하고 몇 개의 프레임워크를 학습하기는 했지만 한번에 너무 많은 내용을 학습하다보니 체계적으로 자신을 성장시키지 못하고 있다. 자바도 거대한 공룡이 되어 버린 것이다. 쉽게 접근하기 힘든 그런 거대한 공룡 말이다.

내가 자바 웹 개발자 교육 과정을 기획하려는 첫번째 이유는 한 명의 자바 웹 개발자로 성장하기 위해 반드시 익혀야 될 것으로 생각하는 기술 요소들을 다룸으로써 자바 웹 개발자에 대한 전체적인 로드맵을 제시하기 위함이다. 5일의 과정을 통해 자바 기반으로 웹 애플리케이션을 개발하기 위해 필요한 모든 기술 요소들을 깊이 있게 다루기는 힘들다. 따라서 각 기술 요소의 세세한 API를 활용하는데 초점을 맞추기 보다는 각 기술 요소들이 가지고 있는 핵심 원리를 파악한 후 하나씩 확장해 나가는 방법으로 기초를 다지는데 중점을 두고 커리큘럼을 설계했다. 지난 10년 이상 자바 기반 웹 애플리케이션 개발이 어떻게 발전해 왔는지를 이해함으로써 현재 사용되고 있는 오픈 소스 프레임워크가 어떻게 발전해왔으며, 등장하게 되었는지를 이해할 수 있도록 설계했다.

하나의 기술을 제대로 사용하려면 해당 기술이 등장하게 된 배경, 필요성, 원리를 이해해야 한다고 생각한다. 이 같은 필요성과 원리를 이해하고 있다면 그 다음 단계의 세세한 내용과 API 활용은 쉽게 익힐 수 있다고 생각한다. 이런 과정을 거쳤을 때 새로운 기술이 등장하더라도 전체적인 구조를 쉽게 파악할 수 있기 때문이다. 이 같은 원칙 위에서 과정을 설계했기 때문에 핵심 원리를 파악해 웹 애플리케이션 개발의 전체적인 구조를 파악하도록 했다. 이렇게 함으로써 현재 자신이 어느 위치에 있으며, 다음으로 학습할 내용이 무엇인지를 파악해 하나씩 학습해 나갈 수 있는 가이드 역할을 하는 것이 가능하다. 

이 강의를 기획하게 된 두번째 이유는 현재 대부분의 자바 웹 개발자 과정이 실무 프로젝트와 약간은 동떨어진 내용으로 진행되는 경우가 많기 때문이다. 10년 이상 자바 기반으로 웹 애플리케이션을 개발하면서 얻은 경험을 실무 프로젝트에서 활용할 수 있는 커리큘럼을 설계해 실전 경험을 전달하고 싶었다. 지금까지의 개발과 강의 경험을 통해 가장 이상적이라 생각하는 조합으로 강의 커리큘럼을 구성해 보려한다. 이 강의의 중심이 되는 기술 요소들은 현재 내가 담당하고 있는 실무 프로젝트에서 활용하고 있는 기술 요소들이다. 프로젝트를 진행하면서 얻은 경험을 강의 커리큘럼에 그대로 반영해 실무 프로젝트에서도 그대로 활용할 수 있는 내용을 위주로 구성했다.

이 과정에서 다루는 내용은 다음과 같다.

각각의 주제들이 작고 쉬운 내용은 아니다. 모든 주제가 많은 시간을 투자하고 경험이 필요한 부분들이다. 5일 동안의 과정을 통해 이 기술 요소들의 모든 것을 전달할 수는 없다. 하지만 한 명의 자바 웹 개발자로 성장하는데 필요로 하는 기술 요소와 개념을 익혀 자신만의 로드맵을 가지고 학습해 나갈 수 있는 기반을 잡을 수 있도록 방향을 제시하고자 한다. 내가 지금까지 쌓아온 개발 경험, 강의 경험, 집필 경험을 모두 모아 이 과정을 준비하려 한다.