티스토리 툴바


web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  version="2.4">
 <display-name>WicketSampleApplication</display-name>
 <filter>
  <filter-name>wicket.wicketsample</filter-name>
  <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
  <init-param>
  <param-name>applicationClassName</param-name>
  <param-value>wicket.WicketSample.WicketSampleApplication</param-value>
  </init-param>
  </filter>
 <filter-mapping>
  <filter-name>wicket.wicketsample</filter-name>
 <url-pattern>/*</url-pattern>
 </filter-mapping>
</web-app>

WicketSampleApplication.java
public class WicketSampleApplication extends WebApplication {

    @Override
    public Class getHomePage() {
        return Home.class;
    }

}

Home.java
public class Home extends WebPage {
    private static final long serialVersionUID = 1L;
}

Home.html
<html>
    <head>
    </head>
    <body>
        Wicket Sample
    </body>
</html>

저작자 표시
Posted by wickets

Wicket이라는 웹 프레임워크가 나온지 꽤 오래 되었고 많은 사람들이 점점 wicket프레임워크를 인식해 가고 있다. 하지만 정작 국내에서는 wicket이 실무에 쓰이는 경우를 거의 보지 못했다. 이는 역시 정보의 부족때문이라고 생각된다. 
Wicket, Maven2, Eclipse, Jetty로 기존 웹개발 과는 달리 매우 빠르게 웹 개발을 할수 있는 방법을 소개하려 한다.

  1. 위켓 개발환경 설정
    1. Maven2설치
      1. maven.apache.org에서 zip, tgz파일을 받아서 적당한 장소에 압축을 해제한다.
      2. 컴퓨터의 환경변수에 M2_HOME을 설정하고 PATH에 $M2_HOME/bin이나 %M2_HOME%/bin을 설정한다.
      3. 명령창에서 mvn -version
    2. 이클립스 플러그인 설치
      1. Jetty플러그인
        제티플러그인은 제티를 설치해야하는 플러그인과
        제티를 설치하지 않아도 되는 플러그인이 있다. 이중 설치가 필요없는 플러그인을 설치하자 주소는 아래와 같다.
        http://run-jetty-run.googlecode.com/svn/trunk/updatesite/
      2. Maven플러그인
        http://m2eclipse.codehaus.org/update/
      3. Amateras html 플러그인

  2. 위켓 개발환경 설정 (2011.06.17)
    1. Jetty 6.1.26 설치
      1. http://dist.codehaus.org/jetty/에서 파일을 받아서 적당한 장소에 압축을 해제한다.
    2. 이클립스 플러그인 설치
      1. Jetty플러그인
        http://eclipse-jetty.sourceforge.net/update/ 
      2. Maven플러그인
        http://download.eclipse.org/technology/m2e/releases/
      3. Amateras html 플러그인

  3. Wicket 샘플 프로젝트 작성
    1. 프로젝트 작성




    2. Jetty를 위한 환경설정

       
저작자 표시
Posted by wickets

Wicket이란

분류없음 2009/05/11 07:19
사내에서 유일하게 자바를 주 언어로 사용하고 있는 개발팀에 배속되어 Wicket이라는 HTML컴포넌트기반의 프레임워크를 사용하고 있고 아직까지는 struts와 같은 MVC를 기반으로 하는 프레임워크가 인기를 끌고 있는 가운데 HTML컴포넌트기반프레임워크라는 새로운 타입의 프레임워크가 얼마만큼 팀의 생산성을 향상시킬 수 있는지에 대해 많은 사람들이 잘 알지 못하여서 쓰지 못하고 있다는 생각이 들었습니다. 그래서 몇가지 Wicket이 가지고 있는 특징을 설명하여 HTML컴포넌트기반 프레임워크가 가져올 수 있는 개발팀의 생산성 향상에 대해 언급해 보려고 합니다. 
우선 가장 큰 특징으로 HTML자체를 컴포넌트화 하였기 때문에 가장 객체 지향적인 웹 개발을 할 수 있다는 점을 들고 싶습니다. 자바의 Swing이나AWT처럼 HTML태그들을 생성하고 그 컴포넌트들의 이벤트 핸들링 처리를 함으로 기존 웹프레임워크에서는 볼 수 없는 객체 지향적인 프로그램 설계가 가능하게 되었습니다. 따라서 객체 지향 프로그래밍을 이해 하고 있는 프로그래머로서는 손쉽게 위켓프레임워크를 접할 수 있게 되고 이것은 새로운 프레임워크 도입비용을 감소 시키는 결과를 가져오게 됩니다. 또한 프로젝트 기간 단축인 면에서도 위험 부담을 감소 시킬 수 있다는 생각입니다.
두번째로 화면 표현을 순수 HTML태그로 제한하여 화면에서 로직이 들어갈 수 있는 가능성을 일체 차단하였습니다. 이것은 단순히 화면에서 로직의 배제가 아닌 에러발생 가능성의 감소, 로직개발과 화면개발의 동시 협업과 같은 유용한 장점을 불러오게 됩니다.
같은 HTML컴포넌트기반 프레임워크인 Tapestry는 화면에서 단순히 값의 출력뿐만이 아니라 비지니스로직의 호출과 같은 여러가지 연계 가능성을 열어두어 화면에서 로직의 서술이 가능합니다. 얼핏 이것은 굉장히 편리하게 보일 수 있지만 체크로직의 중복이라던지 비지니스 로직에서 변경된 값이나 메소드명의 반영을 체크 할수 있는 방법이 없게 되고 기존의 JSP에서의 단점을 그대로 가져 오게 되었습니다. 하지만 위켓에서는 이러한 사실을 일체 배제 하여 오직 비지니스로직에서만 그러한 처리를 할수 있게 하였고 그러므로 위에서 언급한 여러가지 에러의 가능성을 원천적으로 차단하였습니다.
동시 협업 문제에 있어서도 순수 HTML태그만을 사용함으로 화면 설계이후에 디자인팀에서는 화면의 디자인을 개발팀에서는 비지니스 로직 개발에만 충실할 수 있게 되고 또한 두 개발팀에서 각자의 성과물을 만들어 내는데 있어서 상충할 수 있는 여지가 없기때문에 동시 진행이 가능하게 됩니다.
세번째로 여러가지 설정파일을 작성하지 않고 몇 가지 규칙을 두어 그에 따라 프로그램을 작성하면 프레임워크에서 자동적으로 인식이 되도록 하였다는 사실입니다. Struts1에서는 웹어플리케이션의 규모가 커지면 커질 수록 그에 따른 설정 파일이 커질 수 밖에 없는 상황이고 이는 잘못된 설정의 확장이라든지 중복된 설정이라든지 개발/유지/보수 면에서 굉장히 많은 문제를 불러일으킬 여지가 있습니다. Struts2에서 해결책으로 제시한 것은 단순히 그런 설정들은 다른 파일로 옮겨 놓은 것에 지나지 않고 결국 이는 파일수의 증가에 따른 유지, 관리의 어려움에 직면하게 되는 것은 마찬가지 일이 됩니다.
아파치 위켓 프로젝트는 현 시점에서는 가장 최근에 만들어진 프레임워크 중 하나이며 이사실은 종전의 프레임워크에서 제기 될 수 있었던 많은 문제점의 해결책을 제시해 줄 수 있는 시점에서 만들어 졌다는 것을 의미합니다. 그 일례로 뒤로가기 버튼문제라든지 Ajax의 지원은 다른 프레임워크보다 뛰어난 해결책을 제시하고 있는 것을 들 수 있습니다. 기존의 프레임워크들이 가지고 있는 문제들을 새로운 시각에서 해결하려는 노력에서 탄생되었으며 위에서 언급한 바와 같은 해결책을 제시하고 있습니다. 세계의 많은 프로젝트에서 이 프레임워크를 도입하고 있으며 실제로 그들은 이르페임워크 도입에 따르는 생산성 향상을 보고하고 있습니다.
저작자 표시
Posted by wickets
TAG wicket, 위켓