일기장/2009-02-20

블로그 호스팅 기간이 끝났다. 가이드라인에서 호스팅을 받았는데 하드 용량 초과를 계속 해서 연장을 안 시켜준댄다. 그래서 그냥 그만두고 우리 회사 서버로 들어왔다. 복잡할 줄 알았는데 의외로 큰 삽질 없이 이전이 끝났다.

사실 거기 자바 호스팅이라서 처음에 신청한 건데 정작 자바 애플리케이션은 딱 한 번 잠깐 올려봤을 뿐이고 내내 쓴 건 이 모인모인과 php로 된 어플들 뿐이다. 간단한 웹 애플리케이션을 만들기엔 자바가 역시 무겁다.

요즘 자바 웹 개발에 대한 고민을 다시 하기 시작했다. 자바 웹 개발 일거리를 맡았기도 하고, 내 개인 프로젝트도 자바로 하는 게 하나 있기도 하고. 자바가 역시 IDE 지원은 좋다. 편안한 느낌이다. 하지만 맘에 안 드는 부분도 참 많다.

고민되는 부분은 ORM과 Controller다. ORM을 도입하려고 하니까 막상 hibernate는 부담스럽다. 설정도 많고 코드도 번잡하다. 그래서 simple orm으로 검색해봤더니 이것저것 나오는 게 있어서 검토해보는 중이다. DTO도 getter/setter로 할지, public field로 할지, 혹은 Map으로 할지 고민이다. fat model이라면 당근 클래스가 있어야지 싶다가도 실용성은 역시 Map이 낫다는 생각이 들기도 한다. JavaScript 같은 문법이라면 고민할 필요가 없을 텐데, 역시 자바 문법의 한계다.

Controller는 어느 정도 결론을 내려 가고 있다. 많은 프레임웍이 서블릿 API를 감추려고 애를 쓴다. 그래서 Action 같은 거 만들고 그런다. 하지만 어차피 thin controller, fat model로 간다면 controller가 하는 일이라곤 서블릿 API 다루는 일과 model 호출하는 일 밖에 없는데 굳이 감출 필요가 있을까 싶다. 오히려 서블릿을 그냥 쓰고 서블릿에서 model 코드를 호출한 후 JSP로 넘기는 게 좋아보인다. 현재는 이렇게 짜고 있는데 오래된 방식이긴 하지만 프레임웍 덕지덕지 붙인 것보다 훨씬 코드는 짧고 간결하다. 하지만 뭔가 아직은 부족한 느낌이 있다.

지금 프로젝트를 하면서 공통 컴포넌트들을 하나씩 뽑아내고 있다. 37signals가 Rails를 뽑아냈고 워싱턴포스트가 Django를 뽑아낸 것처럼. 이 프로젝트가 끝나면 어떤 결과물이 나오려나. 과연 범람하는 다른 자바 프레임웍보다 나을까?