|
SSISO Community검색 |
|
SSISO Community메뉴 |
|
SSISO Community카페 |
|
블로그 카테고리 |
|
|
spring로 검색한 결과 |
|
등록일:2008-03-14 15:27:38 작성자: 제목:Java framework에 대해서 |
|
구글 애드센스가 영문에 맞는 광고는 잘 가져오는지 테스트 하기 위해 한글 단어들을 영문으로 수정....
IT 블로그를 살펴보면 Struts, spring, Hibernate등으로 대표되는 Open Source Java framework을 사용하여 web program을 개발하는것에 대해 부정적으로 생각하는 개발자들이 많은것 같다. 사실 단순한 CRUD web program을 개발하는데 이런 framework을 사용하는건 오버킬이 맞다.
시스템의 규모가 일정 수준 이상 커지면 framework이 개발, 유지/보수 생산성에 도움이 된다고 말들을 하는데, 체험들을 못해봐서 별로 공감을 하지 못하는듯한 느낌이 든다.
그럼 도대체 얼마나 큰 시스템을 다루는 경우에 프레임웍의 혜택이 느껴질것인가? 사실 나도 명확히 선을 그어 말하기가 어렵다. 내가 만지고 있는 시스템의 경우 프레임웍이 도움이 된다는 정도는 말해줄수 있을뿐이다.
현 재 내가 만지고 있는 시스템은 98년에 첫 버전이 개발되었으니 거의 10년 묵은 시스템이다. 테이블의 갯수는 4자리수이고 전체 class file의 갯수는 여섯 자리수에 근접한다. 연관되어 있는 엔지니어는 한 50~100명 사이일것 같다. component 갯수가 50개 정도 될 것 같다. 이런걸 framework 없이 개발자에게 맡겨놓으면 구현이 중구난방이 된다. 이런 규모의 시스템을 일관성있게 구현하기 위해서 framework은 필수 불가결하다.
그럼 어떤 framework을 쓰는가? Struts, spring, Hibernate 하나도 안쓴다. 모든 framework은 내부에서 개발된 것이다. Gavin King이 Hibernate 프로젝트 시작도 하기전에 개발 완료된 OR engine을 쓰고, JSP 1.0이 구현이 되기도 전에 JSF나 Tapestry스타일의 component based UI framework을 개발해서 썼다. 사실 component based UI framework은 90년대 중반에 벌써 Nextstep이 WebObject란걸 만들어 썼는데, 이거 만들었던 사람이 와서 만든것이다. Apple 에서 web program램 만드는 사람은 아마 알 것이다.
이 framework를 써서 productivity가 어떻게 높아지는가 알아보자.
상품 catalog를 관리하기 위해 상품의 이름과 가격등을 입,출력,검색하는 UI가 필요하다.
상품 검색 UI는 주문을 입력하는 화면에서도 필요하고, 송장이나 지불을 처리하는 화면에서도 필요하고, 웹 사용자 카탈로그 검색 화면에도 필요하다.
이제 이 상품 class에 새로운 필드가 하나 추가되어야 한다고 예를 들어보자.
이 framework를 사용하면 상품 metadata file에 새로운 field하나 넣는걸로 일이 끝난다.
Database table column을 추가할 필요도 없고, 위에 나열한 screen들을 다 수정할 필요도 없다.
Metadata는 XML text file이므로 일반 version control system을 통해 언제 뭐가 바뀌었는지 알 수 있고 다시 이전 version으로 돌아갈수도 있다.
System을 serious하게 개발 유지하는 회사는 Open source framework을 가져와서 productivity가 높아지게 자기들이 직접 개선을 하거나 아니면 돈 주고 사거나 알아서 할 일이다.
Java web framework이 너무 많이 나온다고 불평들이 많은데 그건 당연한 거다. 주로 개발자 한명이 자기가 web application 시스템 만들어 보니까 틀을 이렇게 가져가면 편리하고 생산성도 높아지겠더라고 생각해서 쉬는 시간에 열심히 만들어서 그거 가지고 project 들어가서 consulting도 하고 돈도 좀 벌어보겠다고 내놓는 것이다.
나오는 framework마다 배우느라고 정신없다고 불평할게 아니라, 본인이 web application을 만들어보니까 이런식으로 틀을 만들어야 겠다는 아이디어를 가져야되고, 다른 넘이 이미 나하고 비슷한 생각을 가지고 만든게 있으면 그거 가져다가 개선하면 되는것이다.
그런 역량이 안되면 유명한거 찍어서 source code 보고 열심히 배우는 수밖에 없다.
만 약 framework이 필요하지 않는 수준의 시스템이어서 framework을 사용하는게 시간도 더 걸리고 유지보수도 더 어렵다고 가정하더라도, 그걸 왜 파견나간 개발자가 걱정하나? 어차피 돈 받고 일하는데, 그 기간동안 하나라도 더 배우는 기회로 활용하면 되는것이다. |
|
|
|
|
|