Web Application / Web Service

블로그를 보시면서 도대체 코드는 언제 나오나 이렇게 생각하시는 분들도 계실거라 생각합니다.  
(사실 저도 처음에는 빨리 코드를 보고 싶었지만ㅋㅋ 전체적인 흐름과 그림을 통해 시각적으로 공부하니 오래 기억에 남는 것 같습니다.)

교수님께서 말씀하시길 단순히 코드만 달달 외우고 공부하는 것은 개발자가 아닌 코더로 전락할 수 있으며, 전체적인 흐름을 볼 줄 알아야된다고 하셨습니다.

저의 블로그는 비전공자도 접하기에 거부감이 없도록 최대한 기초부터 다룰 예정입니다.

우리가 짜게 될 코드도 물론 중요합니다.
그러나 그 코드는 과연 어디에 들어가는 것인지와 전체적인 흐름이 어떻게 되는 것인지도 중요합니다. 공부를 하다가 모르는 용어들이 갑자기 나오면 거부감이 들고 자신감도 떨어지구요ㅠㅠ

이번에는 웹 어플리케이션과 웹 서비스 구조에 대해 살펴보겠습니다.


<Web Application 구조>


익숙한 용어들이 점점 보이시죠?
그림의 각 하위 층은 상위층의 플랫폼을 의미합니다.
O/S입장에서 플랫폼은 H/W, Web Server 입장에서 플랫폼은 O/S + H/W 입니다.

Web Server
 웹 서버는 많은 분들이 아실거라 생각합니다.
지금은 웹브라우저(익스플로러, 크롬 등)와 통신하는 곳이라 간단하게 생각하시면 될 것 같습니다.
간혹 인터넷을 하다가 404에러가 뜨는 것을 보셨을텐데, 이 웹서버 설정 값에 웹 컨테이너랑 연동을 해줘야 에러가 발생하지 않습니다.
(웹 컨테이너는 엔터프라이즈 에디션의 웹 기능 구현체입니다. servlet을 도와주는 솔루션으로 우리는 http서블릿을 상속하고 request와 response를 통해 코딩하게 되어있습니다.)

JavaSE (Java Platform, Standard Edition)
 데스크톱 및 서버, 임베디드 시스템을 표준 자바 플랫폼입니다.
컴퓨팅 환경을 지원하기 위한 자바 가상 머신 규격 및 API 집합을 포함합니다.
쉽게 말해서, servlet이 자바니까 자바플랫폼이 필요하겠죠? 그래서 JavaSE가 필요한겁니다.
그리고 servlet을 지원하는게 web container구요.

JavaEE (Java Platform, Enterprise Edition)
자바를 이용한 서버측 개발을 위한 플랫폼입니다. 
무슨말이냐면, 웹 애플리케이션 서버에서 동작하는 장애복구 및 분산 멀티티어를 제공하는 자바 소프트웨어의 기능을 추가한 서버를 위한 플랫폼입니다.
Java EE 스펙에 따라 제품으로 구현한 것을 웹 애플리케이션 서버 또는 WAS라 부릅니다.




<Web Service 구조>



한번에 처리해야할 일의 단위를 트랜잭션 이라고합니다.
트랜잭션과 보안, 영속성 등 이 3가지가 고려되어야하는데 이 기술이 어렵기 때문에 이를 지원해주는 기술이 나오는데 EJB라고합니다.

EJB구현체를 어플리케이션 서버라 부릅니다.
무료버전도 있지만 불안하기 때문에 많은 곳에서 유료로 사용했습니다.
(무료버전이 안좋았다기보다는 유료버전은 유지보수도 책임져주기 때문입니다.)

다른 머신과 연동할때는 다른 머신의 biz와 연결하기 때문에 b2b라 부릅니다.
다른 머신과 연동할 때  한 곳이 java고 한 곳이 c이면 이에대한 데이터 포맷을 결정해야합니다.  데이터포맷을 통일화 시키기 위해 XML이 나왔구요.
http는 XML을 보내는 인프라입니다.

점점 퍼포먼스는 낮아지지만 복잡성은 높아지면서 안전성은 높아집니다.
복잡성이 높아지면 시스템이 쉽게 뻗을거 같지만 오히려 반대입니다.

은행, 증권같이 돈을 다루는 곳에서는 biz가 중요하기 때문에 웹컨테이너 하나만 가지고 운영하는게 아니라 대부분이 다른 biz와 연동해서 사용하기 때문에 Web Serices를 이용합니다. 이를 n-tier 아키텍처라 부릅니다. (머신이 n)

다음 포스팅에서는 간단히 몇가지 용어에 대해 다뤄보겠습니다.













댓글 없음:

Powered by Blogger.