OOP의 강점을 살려서 10년이라는 시간동안 많은 발전을 했다는 것을 새삼 느낀다.
요즘 java개발자들은 무슨 고민을 하고, 어떤 일을 하고 있을까?
framework 학습과 새로운 프로젝트에 대한 회의, 기존 업무에 대한 운영 및 유지보수, 대부분의 개발자들이 현재 하고 있는 일이라 생각을 한다.
사내에서도 기본적인 업무를 제외하고, framework를 스터디하는 사람이 제법된다. 개인적인 시간까지 내서 하는 분들도 대부분이다. 나도 최근에 여러가지 framework에 대해서 학습을 하고 있다. 지금까지는 자율적으로 내가 했었는데, 최근에는 반강제적(?)으로 해야 하는 입장에 놓여서 이다. 일단, 내가 과거에 선택했고 좋다고 생각했던 프레임워크&라이브러리가 사내에 공식적으로 들어가서 좋긴하지만..^^
framework들이 하는 역할은 무엇일까?
- MVC, Event Driven.....etc..... 검증된 design model & pattern을 지원한다.
: 사용자들도 모르는 사이에 좋은 프로그래밍 모델이나 패턴을 가능하게 해준다. - 중복된 코드를 하나의 컴포넌트로 만들어서 재사용성을 증대시킨다.
- 추상화를 통해서 의미없이 반복되는 코드들을 없애준다.
- 저수준의 API를 사용하기 쉬운 인터페이스로 만들어준다.
- 비즈니스 로직에 집중을 하게 해준다.
struts, webwork, spring, iBATIS, hibernate, EJB 등등 이제는 안정화를 넘어서서 세계적으로 가장 많이 쓰이는 framework들이다.
개발시 내가 생각하는 가장 중요한 것은 아래와 같다.
1. design pattern : 중복코드없이 개발해야 한다.
2. domain model central : 비즈니스 로직에 집중할수 있어야 한다.
3. high productive code : 코드를 빠른 시간에 개발
4. maintain easily : 업그레이드(유지보수)시에 더 쉽게 개발이 가능해야 한다는 것이다.
framework 사용에 있어서 가장 중요한것은 위에 요건을 얼마나 많이 만족을 하냐에 따라서 사용여부를 판단하게 된다. 하지만, 위에 나열한 framework를 사용하는 개발자들이나 얼마나 개발자의 마음을 충족하느냐는 개인마다 차이가 크다.
기초가 부족한 상태에서 framework사용법을 배우느라 많은 시간을 보내고 있지는 않은지? 기초가 부족한 사람들에게 framework를 쓰게 할려면 지금하는 접근방법이 옳은 것인지 다시 한번 고민해봐야 하는 시점인거 같다.
spring의 철학중에는 spring user들이 하루빨리 spring을 잊었으면 좋겠다는 얘기가 있다. 좋은 design model이지만, 쉽게 적용하기 어려운 것들을 framework들이 쉽게 해준다는 생각을 하자. 정말 잘 짜여진 코드를 framewokr간에 migration은 빠른 시간안에 가능해야 할것이다. migration이 어렵거나 시간이 오래 걸리면 그것은 framework에 상관없이 벌써 잘못 짜여진 냄새가 나는 코드이다. 기본에 안 맞는 코드, 잘못된 코드 위에 framework만 얹어 놓은 것은 아닌지?
요즘 보는 책들중에 2002년,2003년 책들이 꽤 있는데(그때는 JDF, STRUTS정도가 국내에서 알려져 있을 시기였다.) 현재(2006년)에 봐도 감동을 느낄만한 책들이 많이 있다. 왜 진작 그 책들을 못 봤을까라는 아쉬움 속에 다시 초심으로 돌아가서 시작하려 한다.
자바기초서적(fundamental, design pattern, anti pattern, refactoring etc)을 보고 괜히 아는척하고 깝죽거렸던 2002년(지금 생각하면 AP만 열심히 만들었다..-.-)....이제는 너무 많은 책들과 문서, 신기술, framework가 나온 지금 다시 한번 과거에 했던 고민을 다시 해봐야 겠다.
기초부터 기본부터 잘 이해를 해서 잘 짜여진 프로그래밍 모델로 framework를 얼렁 잊자!!!

