(loop (print (eval (read))))

;;닭집을 차리기 위한 여정

warless webapp 전략

이런 접근이 나온지도 벌써 수년이 흘렀고, 몇년동안 써먹고 있는 방법이긴하지만 새삼스럽게 공개하자면

http://www.jamesward.com/2011/08/23/war-less-java-web-apps 여기에 아주 잘 정리 되어 있다.

요점은, embedded jetty 를 통해 main 메서드를 통해 ide 로도 실행할 수 있고, excutable jar 를 생성하여 실행할 수 도 있는 프로젝트를 구성하는 것.

이 접근은 언뜻 생각하기에도 벌써 장점이 여럿 보인다.

  • ide를 통한 실행은 별도로 컴파일 하지 않아도 된다 (incremental compile)
  • 또한 웹 리소스 파일들은 main 메서드에 의해 직접 참조되므로 복사할 필요가 없다.
  • 따라서 프로젝트 초기라면 (또 어느정도 규모가 있지 않다면) 웹어플리케이션을 정지하고 재구동하는데 5초 미만의 시간이 걸리게 된다.

좀 더 작고 기민하게, 수수하지만 실용적인 방법으로 개발하고자 할 때 알맞겠다.

jetty는 사실 고민할 필요도 없이 좋은 was다.
https://wiki.eclipse.org/Jetty/Feature/Continuations

물론 가장 기민한 것은 clojure 다.
이미 jetty를 쓰고 있기도 하고..
하지만 clojure 는 돈이 안되므로.