파게로그

Web Server, Web Server Application의 개념 본문

콤퓨타 왕기초/JSP

Web Server, Web Server Application의 개념

파게 2020. 10. 19. 21:25

https://developer.mozilla.org/ko/docs/Learn/Common_questions/What_is_a_web_server

 

웹 서버란 무엇일까?

"Web server"는 하드웨어, 소프트웨어 혹은 두 개 모두를 의미할 수 있습니다.

developer.mozilla.org

 

https://genesis8.tistory.com/232

 

웹서버(Web Server) / 웹 서버 어플리케이션(WSA)

출처 : http://round1tko.tistory.com/64 [ 웹 서버와 WAS(Web Application Server)의 정의 ] 웹서버와 WAS는 비슷한 개념이기 때문에 같이 또는 다르게 사용되는 단어 가운데 하나이다. 인터넷 확산 초기에..

genesis8.tistory.com

 

간단하게...

자바 프로그램에다가 Servlet을 얹으면 자바 웹 프로그램이 된다.

하지만 HTML 코드 출력 문제로 JSP를 이용하게 되고,

여기서 MVC 패턴으로 코드를 정리하면 자바 웹 프로그램이 얼추 완성된다.

(Servlet - JSP - JSP MVC는 한 뭉텅이)

-> 그 다음 과정이 Spring MVC

 

클라이언트-서버에서 원래 소켓, RPC 등을 이용하다가..

-> 데이터 전송 구현의 어려움, 클라이언트 프로그램 업데이트의 어려움(재설치)를 해결하고자

-> HTTP(웹)을 이용해서 요청-응답을 약간만 바꾸면 서버-클라이언트 프로그램을 웹 프로그램에 얹을 수 있지 않을까? 정적인 페이지를 전달하는 웹 서버의 환경을 조금 바꿔서 동적인 페이지를 전달하는 환경을 만든다. (서버측에서는 서버프로그램이 만들고, 클라이언트는 웹브라우저를 사용한다. 즉 특별한 클라이언트 프로그램이 필요없다. CS(Client-Server) 프로그램에서 Client가 사라지면서... 브라우저단에 JS로 윈도우 프로그램 만들듯이 만드니까 프런트엔드-백엔드가 갈림.

 

 

 

 

아파치 versus. 톰캣 versus. 아파치 톰캣

 

https://limmmee.tistory.com/4

 

 

 

위키백과 기반 기본적인 개념들

 

Java Servlet

Java를 사용하여 웹페이지를 동적으로 생성해주는 서버측 프로그램, 또는 Java EE 사양의 일부분으로서 Java class의 일종이다.

 

- JSP와의 차이

JSP는 HTML 문서 안에 Java 코드를 포함한다.

Servlet은 Java 코드 안에 HTML을 포함한다.

 

- 유사한 기술
CGI(Pearl 기반), mod_php(PHP를 Apache 웹 서버 프로세스에서 동작하게 함), ASP(IIS에서 동작) 등.

CGI는 요청이 있을 때마다 새로운 프로세스가 생성되어 응답하는 데 비해, 자바 서블릿은 외부 요청마다 프로세스보다 가벼운 스레드로써 응답하므로 보다 가볍다. 또한, 자바 서블릿은 자바로 구현되므로 다양한 플랫폼에서 동작한다.

 

JSP(Java Server Page)

HTML 문서 내에 Java 코드를 삽입하여, 웹 서버에서 동적으로 웹 페이지를 생성하여, 웹 브라우저에 돌려주는 언어이다.

Java EE 스펙 중 일부로서 WAS에서 동작한다.

JSP는 실행 과정에서 Java Servlet으로 변환된 후 실행되므로 Servlet과 거의 유사하다고 볼 수 있다.

다만, Servlet과는 다르게 HTML 표준에 따라 작성되므로 웹 디자인에 편리한 측면이 있다.

클라이언트에서 서비스가 요청되면, JSP의 실행을 요구하고,

JSP는 WAS의 Servlet 컨테이너에서 Servlet 원시코드로 변환된다.

그 후에 Servlet 원시코드는 바로 컴파일된 후 실행되어 결과를 HTML 형태로 클라이언트에 돌려준다.

 

- 유사한 기술

PHP, ASP, ASP.NET

 

JDBC(Java Database Connectivity)

Java에서 데이터베이스에 접속할 수 있도록 하는 Java API이다.

JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공한다.

JDBC는 Java로 작성된 프로그램을 일반 데이터베이스에 연결하기 위한 응용프로그램 인터페이스 규격이다.

JDBC는 DBMS에 넘겨질 SQL 형태의 데이터베이스 접근 요구 문장을 각 시스템에 맞도록 바꾸어준다.

API는 동적으로 올바른 Java 패키지를 불러오고, JDBC 드라이버 매니저에 등록하기 위한 메커니즘을 재공한다.

JDBC connection을 생성하기 위한 connection factory로 JDBC 드라이버 매니저가 사용된다.

 

JMS(Java Message Service)

Java 프로그램이 네트워크를 통해 데이터를 송수신하는 자바 API

 

EJB(Enterprise JavaBeans)

EJB는 기업 환경의 시스템을 구현하기 위한 서버 측 컴포넌트 모델이다.

즉 EJB는 application의 비즈니스 로직을 가지고 있는 server application이다.

EJB 사양은 Java EE의 Java API 중 하나로,

주로 웹 시스템에서, JSP는 화면 로직을 처리하고 EJB는 비즈니스 로직을 처리한다.

EJB의 종류는 session bean, entity bean, message-driven bean 등이 있다.

 

JMX(Java Management eXtensions)

응용 프로그램 소프트웨어, 객체, 장치(프린터 등) 및 서비스 지향 네트워크 등에 대한

감시 및 관리 목적의 도구를 제공하기 위한 Java API이다.

이러한 리소스는 MBean(Managed Bean)이라는 객체로 표현된다.

 

Java Naming and Directory Interface(JNDI)

디렉터리 서비스에서 제공하는 데이터 및 객체를 발견(discover)하고 참고(lookup)하기 위한 Java API이다.

 

---

 

(추천 링크) Servlet이란?

https://gmlwjd9405.github.io/2018/10/28/servlet.html

 

(추천 링크) JSP(Java Server Pages)란?

https://gmlwjd9405.github.io/2018/11/03/jsp.html

 

(추천 링크) 둘의 차이는?

https://gmlwjd9405.github.io/2018/11/04/servlet-vs-jsp.html

 

간략히...

Servlet과 JSP는 모두 Java 기반으로 HTML과 함께 사용된다. 동적 웹페이지 생성이라는 공통의 목적을 위한 것이며, 동일한 기능을 수행한다. 그리고 서버에 web container가 필요하며, web container의 기능에는 JDK를 실행할 수 있는 요소들이 포함되어야 한다는 것도 동일하다. Servlet과 JSP 모두 javac에 의해 컴파일되어서, .class 파일이 만들어지고, 이를 java.exe가 JVM 위에서 실행시켜준다.

 

Servlet(.java)

Servlet은 .java 파일에 작성하는 코드 속에 HTML을 작성할 수 있는 클래스를 가져와서 HTML 태그를 삽입하는 형식이다. Servlet은 Java platform에서 web application을 개발할 때 사용하는 기술로서, 서버에서 웹 페이지를 동적으로 생성하거나 데이터 처리를 수행하기 위해서 Java로 작성되는 프로그램을 말한다.

  • 코드가 수정되면 다시 컴파일하고 배포해야 한다.
  • HTML 태그로 문자열("") 스크림으로 처리해야 한다(???)
  • Servlet은 웹 기반의 요청에 대해 동적인 처리가 가능한 하나의 클래스이다.
  • server side에서 돌아가는 Java 프로그램
  • 개발자가 작성해야 하는 부분

 

JSP(.jsp → .java)

JSP는 .jsp 파일에서 HTML로 틀을 잡은 후 그 안에 Java 코드를 삽입하는 형식이다.사실 .jsp 파일 역시 WAS에 의해 .java 파일, 즉 Servlet으로 변환되기에 본질적으로 Servlet과 거의 동일하다. JSP가 출현한 동기를 보면, JSP는 Servlet 기반의 스크립트 기술로서, Servlet이 화면 인터페이스 구성에는 비효율적인 단점을 보완한 것이라 할 수 있다. JSP는 Java를 기반으로 하는 server side 스크립트 언어이다만, 엄밀히는 Servlet이라고 해야 한다. JSP는 HTML 코드에 Java 코드를 넣어 동적인 웹 페이지를 생성하는 웹 어플리케이션 도구를 말한다.

  • 키워드가 태그화되어있어 배우기 쉽다.
  • 자바코드를 <% %> 태그 내에서 처리한다.
  • JSP를 통해 정적인 HTML과 동적으로 생성된 contents(HTTP 요청 parameters)를 혼합하여 사용할 수 있다. 즉 사용자가 입력한 contents에 맞게 동적인 웹 페이지를 생성한다.

 

+ MVC Programming

MVC(Model-View-Controller)이란 하나의 소프트웨어 디자인 패턴이다.

MVC에서,

Model은 애플리케이션의 정보(데이터)를 나타내며,

View는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내고,

Controller는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다.

즉 정적인 View 부분을 개발하는 코드는 JSP로 작성하고, 보다 동적인, Controller 부분을 개발하는 코드는 Servlet으로 작성하여 DB 연결 등에서 용이하도록 한다. 이러한 분리를 통해 가독성 또는 유지보수에서 강점을 지닐 수 있다.

'콤퓨타 왕기초 > JSP' 카테고리의 다른 글

(IDE 없이) 클라이언트에게 출력  (0) 2020.10.20
IDE 없이 간단한 Servlet 만들어보기  (0) 2020.10.20
Context site  (0) 2020.10.20
Tomcat 9  (0) 2020.10.19
큰 그림  (0) 2020.10.19
Comments