Team G.HARD :: cult of hard-corder

이번에는 자바 웹 어플리케이션을 구현할 때 각 Layer별로 사용하는 오픈 소스 프레임 웍에 대해 알아보겠다. 자바의 대부분 오픈 소스 프레임 웍은 Apache Project에서 유지보수 및 업데이트 된다. 종종 Apache Project 사이트에 가보는 것도 현재의 개발상황등을 보는 것도 재미있다.

* Controller
 : 최근에 각광받고 있는 컨테이너 중 하나인 Spring을 주로 Controller Layer에서 사용한다. xml을 이용하여 단순한 bean Class 선언 부터 다양한 라이브러리를 통합 관리할 수 있다. 또한 Interface와 implement를 나눌 수 있기 때문에 (decoupling) 디자인 패턴을 적용하기에도 용이(IoC)하다. 자바 웹 어플리케이션 뿐만아니라 자바 프로그래머가 되려면 어떤 오픈 소스인지는 알고 있는 것이 좋다. (해외의 많은 회사들이 이 spring 기반으로 어플리케이션을 만든다.)

* Model - Dao
 : Model Layer라기보다는 Controller에서 DB 사이에 존재하는 Dao 역할을 하는 프레임웍인 iBatis가 있다. sql문을 하드 코딩하는 것이 아니라 xml 파일로 빼내어 따로 관리할 수 있고, 적절하게 Model에 DB 데이터를 매핑시킬 수도 있다. 복잡한 JDBC 프로그래밍을 간단히 할 수 있다. 역시 알아둬야하는 프레임웍이다.

* View
 : 보통 jsp 및 servlet 프로그래밍시에 문제는 jsp 파일안에 <%~%>로 자바 코딩이 들어간다는 것이다. 이는 곧 View의 UI가 변경되면 소스 코드까지 건드려야한다는 위험요소가 발생하게됨을 의미한다. 최근에는 Servlet과 UI부문을 분리하기 위해 여러 오픈 소스가 사용된다. Servlet단은 Struts를, View에는 Velocity를 적용해서 사용한다. struts는 너무 큰 기능때문에 무거워 사장되어 가고 있고, 현재 struts2의 베타 버전이 발표된 이후 다시 한번 기대를 모으고 있다. 앞으로 정식 릴리즈이후의 충분한 검증을 거치면 서비스에서 써보려는 개발자들이 꽤 있다.
Velocity는 Servlet단에서 넘어온 request의 데이터들을 스크립트 언어 방식으로(정말 스크립트 언어로 보인다. 하지만 자바로 파싱된다) UI를 표현한다. 그다지 무겁지도 어렵지도 않으므로 앞단에서 많이 사용된다.

다음에는 아주 간단한 웹 어플리케이션을 만들어 로컬에서 테스트 해보겠다. (서버가 없으므로 각자가 로컬에서 테스트해야할 듯)

p.s 여기에 소개된 건, 현재 내가 프로젝트에서 주로 쓰는 프레임웍이다. (여기 소개된 것들 말고도 좋은 프레임웍이 참 많다. 한번씩 찾아보길...) 물론 서비스 자체가 이벤트성으로 가볍고 한번 쓰고 버릴 것들은 이렇게 프레임웍 쓰는 자체가 무모한 짓이다. 좋다고 해서 무조건 소 잡는 칼로 닭을 잡아서는 안되는 것이다.

계속적인 유지보수가 요구되고, 어느 정도 큰 규모의 서비스에서 적절하게 필요한 프레임웍을 넣고 어플리케이션을 만들어 나가는 것이 곧 실력이 아닐까?
Posted by xHuro
teQnical/Java dev. l 2007. 1. 14. 21:16

최근에 올라온 글

카테고리

분류 전체보기 (32)
G.HARD bunker (4)
daily routine (18)
rumor says... (0)
teQnical (7)
projeKt (2)

달력

«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
tistory!get rss Tistory Tistory 가입하기!