2008. 12. 22. 13:57

자바와 스프링 프레임워크 사이...

토비님 글을 읽고, 메신저로 잠시 대화를 나누다가 문득 제목과 같은 생각을 해봤습니다.
자바와 스프링 사이에는 무엇이 있을까요?

대한민국 1%의 개발자가 모르는 게 아니라, 99%의 개발자가 모르는 게 스프링 프레임워크라고 생각합니다.
모르는 사람 중에 저도 포함해서 말이죠. 아직은 수박의 껍질만 우적우적 찝어 보았을 뿐이니까요.

아는 척 안하겠습니다. 요즘 물어뜯기 좋아하는 사람들이 많아서~ ^^;
잘 아시는 분도 계시겠지만, 프로 스포츠 선수라고 해도 늘 기초 체력 단련은 하는 거니까,
그런 측면에서 생각해 보자, 함께 얘기해 보자는 것이죠.

소프트웨어 개발자가 되기 위해서 가장 먼저 배우는 것이 프로그래밍 언어이고,
요즘 가장 많은 개발자가 학습하는 언어 중에 자바가 빠지지 않을 겁니다.

프로그래밍 언어 자체를 배우는 건 그리 어려운 일이 아닐겁니다. 그러나, 응용하기는 쉽지 않죠.
자신만의 성과라고 할까요? 작품이라고 할까요. 언어를 배우는 데 걸리는 시간도 꽤 드는데,
언어를 학습하고 나서도 자신만의 작품을 만드는 건 쉽지 않죠.

왜 그럴까 늘 생각해 봅니다. 자바가 아닌 다른 언어로 개발할 때는 그나마 쉽죠.
PHP를 배우고 아파치 웹 서버만 설치하면 웹 사이트 뚝딱 만들고,
Action Script를 공부하면 간단하나마 Flash 어플리케이션을 만들 수 있고,
Visual C++이나 Visual Basic을 학습하면 초기부터 어플리케이션 제작이 가능하죠.

그런데 자바는 그렇지 못하잖아요? 물론 ansi C 언어를 가지고 무언가를 만드는 것보다는 쉽지만 말입니다.
어찌 보면 참 까탈스러운 언어가 아닌가 라는 생각도 들고...
게다가, 프레임워크까지 이해하려면 더욱 험난한 길입니다.

그래서, 자바 개발을 하는 사람을 위해서 로드맵(loadmap)이 제시되어야 할 필요가 있지 않을까 하는
생각을 해봤습니다. 자바에서는 참 배울게 많거든요. 그런데 무엇부터 배워야 할지 나름 오래 공부한
저도 섣불리 얘기하기가 어렵습니다. 여전히 모르는게 더 많으니까요...

하여간, 본론은 별거 없는데 주저리 주저리 늘어놓았네요.
다시 여쭤볼게요. 자바와 스프링 사이에는 무엇이 있을까요?
스프링 프레임워크는 그냥 닥치고 써야 하는 건가요?

[덧]
질문만 냅다 던져놓으니 좀 무책임한 것 같고, 영회님 덧글을 주셔서 제 의견을 하나 추가해 봅니다.

자바 혹은 JDK(Java Development Kit)는 훌륭한 플랫폼(platform)이지만
그 자체로서는 비지니스 시스템을 구축할 수 없습니다.
만들다 만 것이 아니라, 기반 환경(infra system)이라는 개념 자체에 충실한 것이라고 봐야겠죠.
어떤 구체적인 목적을 잘 수행할 수 있는 시스템은 다른 목표 혹은 대상에 적용하기가 어렵기 때문입니다.
예를 들자면 자동차 엔진을 가져다 비행기에 쓸 수 없고, 선박용 엔진을 트럭에 탑재하기 어려운 것처럼 말입니다.
못한다고 선을 긋기는 어렵지만 또 그렇게 쉬운 일도 아닌 것이죠.

글을 쓴 본래의 취지는 이렇듯 자바 혹은 개발 언어를 바라보는 시선을 넓혀보자는 것입니다.
언아가 모든 것을 채워주지 않는 것 같습니다. 프로그래밍 언어는 가장 기본적인 요소만을 제공할 뿐이죠.
스프링 스터디 클럽을 오시는 분들에게는 어쩌면 상식적인 얘기일지도 모르지만,
그런데 현장 그리고 개발자 지망생들은 어떻게 생각하고 있을까요?
자바를 공부한다는 것, 그중에서 자바 언어를 조금 안다는 것은 거의 자바라는 세상을 모르는 것과 같다는 시각.
이런 의견이 상식이 되었으면 좋겠습니다. 그게 가능할지 모르지만 말입니다.

왜 스프링 프레임워크를 사용해야 하는가 하는 질문에 대한 질문자 자신의 생각이었습니다.