근래 들어 학교 후배들의 자바 프로젝트를 진행해 주면서 자바의 매력을 새심 느끼기 시작했다.
객체 지향적인 언어. 객체지향이라는 말은 C를 위주로 5년을 공부했던 내게는 MFC를 접하면서 상당히 생소한 언어였지만 객체지향 언어의 그 다양성과 유연함에 상당히 놀랄 수가 없었다.
객체. 인스턴스. 사실 C프로그래머, while-loop, for-loop를 남발하며 수직적인 프로그래밍을 하는 사람들에게는 그다지 필요없는 용어이다. 포인터 정도는 그들에게 중요할 수 있지만 객체지향? 클래스? 그런게 중요할까.. 라는 생각은 수없이 많이 해보았다.
허나, 자바는 기본적으로 구조체라는 것이 없었다. 대신 JSP에서는 빈즈라는 어떠한 데이터 사용의 규칙을 통하여 구조체라는 것을 객체화 시킨 것을 이해하고 나서 점차 객체지향에 대한 관심도가 높아졌다. 더불어, 프로그램과 메모리 사용에 관해 생각해 보니 객체라는 것이 얼마나 중요한 것인지를 느끼게 해준 계기도 되었다.
물론 객체지향 언어는 기본적으로 C++이 있다. 허나, 원천적으로 이러한 콘솔 응용프로그램에는 큰 관심이 없는 나이다. 별 이유는 아니지만, 어렸을 때부터 KOI를 준비하던 내게는 콘솔, 특히 win32-based가 아닌 only-console-based 에 굳어진 머리여서, 고교 들어 객체지향을 배우는 데에 상당한 어려움이 있었다. 그중 가장 컷던 것은 물론 객체지향 사용의 의문점이었지만..
어하튼, 내가 특히나 자바의 매력에 빠졌던 이유는 당연 자바의 가장 큰 장점인 “다중 플렛폼” 이다. 이건 말은 쉽지만 경험해 보지 않은 사람은 모른다. 한 예로, 나는 노트북에 MAC OS X 를, 집에는 Vista와 Linux를, 회사에는 XP와 window server 2008을, 아버지 회사 서버에서는 솔라리스를 사용하고 있다.(솔라리스는 솔직히 좀 오버이긴 하지만 -_-)
와.. 거기서 내가 제작한 프로그램이 다 돌아가는걸.. 한번 느껴보면 안다.. 맥을 사용할 때, 세상 수 많은 프로그램들이 win32 기반으로 개발되었다는 사실에 정말 눈물까지 났고, 그러다 맥북에 xp를 깔게 된 나이다. 그러나, 자바는 어디든 다 돌아간다. 비쥬얼 스튜디오와는 플렛폼 자체가 다르다는 것이다!
회사에서 올해 초부터 인트라넷 개발 업무를 담당하게 되었다. 기존에도 아버지 회사의 인트라넷(JSP와 mysql 기반이다.)을 개발했었던 나이지만, 이번에 우리 회사 인트라넷을 개발하면서 JSP와 내가 가장 자신있는 분야인 데이터 베이스(이번에는 오라클에 도전해 볼 생각이다.) 기타 수 많은 분야에 한번 도전해 볼 예정이다.
특히나 나의 가장 큰 단점이었던 설계능력의 부족. 이부분을 이번엔 좀 확고히 하고 싶다. 기능명세서라 하던가… 요새는 이걸 작성 중에 있는데, 초기에 똑빠로 기능에 대한 명세를 하고 나가야 추후에 수정하는 사항이 발생하지 않는다는 생각에 최선을 다해 제작중에 있다.
JSP… 그 무한한 능력. 요즘에는 PHP에서도 객체지향을 지원한다 하는데.. 그건 아직 관심 밖이고, 무엇보다 JSP와 자바빈즈, 서블렛과 JDBC의 이해에 올해의 마지막을 투자할 생각이다. 화이팅!