웹 서버와 WAS 서버? 우린 웹으로 무엇을 만들고 있는가?

자바 지배적인 한국에서는 왠만한, 아니, 거의 표준이라고 할 만한 개발용어들 대부분이 자바에서 따왔다.
물론 자바에 없는 개념은 다른 언어에서도 가져오기도 한다.

웹에서는, 자바 경험자들이 IT 관리하다 보니 웹 서비스 시 웹 서버와 WAS 서버라고 칭한다.
웹 서버는 웹 페이지를 서비스하는 서버 프로그램이고. 이에 해당하는 제품이 Apache나 IIS, nginx, webtob 등이 있다.
WAS 서버는 Web Application Server의 약자로, 서버단 언어를 통해 웹 기반의 서비스를 제공하는 서버를 뜻한다. 이에 해당하는 제품이 Tomcat, Jetty, WebLogic, WebSphere, JEUS 등이 있다.

당연히 WAS 단독으로 운영은 가능하며, 자바로 아예 독립적인 웹 서비스를 제공할 수 있다.
하지만 관행적으로 반드시 Tomcat 같은 WAS 서버를 통해서 제공해야 대한민국 개발자들은 직성이 풀린다.

그렇다면 자바로 아예 독립적인 웹 서비스를 제공하는 것을 뭐라고 하느냐.
간단하다. 닷넷에서는 웹 응용 프로그램(Web Application)이라는 용어가 있다.

그렇다. 웹 앱이다. 내가 웹 애비다. 웹 어플리케이션. 웹 프로그램 등등… 그냥 웹 기반의 프로그램인 것이다.
초보들이 어려워하는 이유 안다. 대체적으로 WEB과 WAS 분리 운영, 그리고 서블릿 기반만 가르치다 보니,
자바 혼자서 운영하리라고 생각할 틈을 주지 않는다. PHP는 더하고, 하지만 파이썬이나 루비 등은 오히려 여기에 익숙하다.

갑자기 생각나네. C++ 으로 웹 어플리케이션 제작 후기 올렸는데 왜 생산성 좋은 자바 안쓰냐고 태클건 어느 코더의 댓글…

하지만, 특히 자바 개발자들, 우리는 지금 웹 어플리케이션을 만든다는 것을 잊어선 안 된다.
스프링은 웹 아닌 환경에서도 제공하지만, MVC를 통해 웹 개발 환경도 제공한다.
전자정부는 웹 어플리케이션이라고 칭하지 않는다. 웹 개발 환경이라 칭한다. 왜인진 나도 모른다.
어찌됐던, 우리가 자바던 닷넷이던 그 어떤 언어던 웹 기반의 프로그램을 작성하고 있다면,
웹 앱 또는 웹 응용 프로그램(Web Application)을 개발한다고 해야 모든 언어의 개발자들이 이해하기 쉽다.

이번 글은 웹개발하는 우리의 정체성을 일깨워 주기 위해 싸지른 글이라고 볼 수 있다.
홍콩행 게이바에서 핑크가 딜도 던지는 그런 정체성 말고.

composite / 2017년 10월 24일 / Piss Development / 0 Comments

재밌는거 발견했다. 유명한 브금저장소.

브금저장소 말이다.

http://bgmstore.net

이녀석 JSP 로 만들었구나.

그것도 서블릿빨이다. 물론 뷰페이지는 JSP이고.

대신 CDN 연동을 하니 그 많은 swf 를 저장하고 관리하지 아니었으면 사이트 뻗고도 남았을 터.

업로드도 자바를 쓰고, 연동 서비스를 이용하나보다.

CDN 서비스는 알게뭐야. 한국에서 잘되면되지. 어자피 그들도 트래픽 감당 안되서 CloudFlare 쓰는데. ㅋㅋ

가끔 한국 서버가 잡히긴 하는데.. 나라면 한국 서버로 잡히는것보다 CloudFlare 통해서 숨기는게 아주 효율적이라 생각하지만

문제는 구글 통계 서비스하고 잘 안맞는대나 모래나. 근데 지금 별문제 없다 하니 굳이 뭐..

그냥 그렇다고. 일베충들 위한 브금저장소인 핱브는 일베와 같은 PHP 에서 변형된 XE 엔진이니 그리 알도록.

composite / 2013년 11월 24일 / 미분류 / 0 Comments

Scalate Template Engine 이용시 참고점

유지보수 항목에 자바 웹 개발항목도 포함되어 있어서 본의아니게 JSP를 하게 되었다.

여기서 JSP 템플릿 엔진 중 흥미롭고 재밌고 나한테 딱 맞는 템플릿 엔진이 있는데 바로 Scalate 이다.

이녀석은 자바의 스칼라 언어 기반의 템플릿 엔진인데, 자바의 JSP 대신 스칼라의 SSP로 JSP 처럼 꾸밀 수 있고,

또한 node.js 의 템플릿 엔진으로 깔끔하고 간결해서 유명한 jade 엔진도 있다.

닷넷의 경우 jade 템플릿 엔진은 spark 템플릿 엔진에서 지원한다고 한다.

어쨌든 닷넷의 Razor 템플릿 엔진같이 간결한 맛이 없어서 아쉬워지다가 스칼렛에 jade 엔진에 눈맞아 사용하고 있다가 한가지 장벽에 부딪혔다.

바로 web.xml 에서

  <welcome-file-list>
    <welcome-file>index.jade</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
  </welcome-file-list>

이 부분 중 index.jade 파일을 먼저 불러오는데, 파일을 불러오긴 하지만 템플릿 파싱이 안된 쌩으로 출력된다는 것이다.

이 어이없지 아니할 수 없는 부분이 아니던가. 스칼렛 서블릿 세팅은 제공한 서블릿 필터로 세팅만 하면 끝난다.

  <!– START: Scalate config –>
  <filter>
    <filter-name>TemplateEngineFilter</filter-name>
    <filter-class>org.fusesource.scalate.servlet.TemplateEngineFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>TemplateEngineFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <!– END: Scalate config –>

어쨌든 직접 jade 파일 요청시 템플릿 파싱은 되는데 폴더 요청(/)을 통한 템플릿 파싱이 전혀 지원되지 않아서 고심했으나,

해결 방법을 찾았기에 여기에 블로그에 기록한다.

  <!– START: Scalate config –>
  <filter>
    <filter-name>TemplateEngineFilter</filter-name>
    <filter-class>org.fusesource.scalate.servlet.TemplateEngineFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>TemplateEngineFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>FORWARD</dispatcher> 
    <dispatcher>REQUEST</dispatcher> 

  </filter-mapping>
  <!– END: Scalate config –>

여기 굵은 부분을 추가하니 말끔하게 해결되었다. http://localhost/ 만 호출해도 jade 템플릿이 파싱되어 출력된다.

여기 관심있는 분들은 Scalate 홈페이지를 참고하시라. jade 템플릿 엔진은 실무에 써도 전혀 손색없다. 스프링 연동도 당연히 지원되니 관심있으면 직접 들어거 Getting Started 메뉴를 참고하시라.

composite / 2012년 12월 22일 / 미분류 / 0 Comments