웹을 만들다가 자동으로 웹을 생성할순 없을까? 라는생각에 시작되어 만들어진 것이CGI이다.
CGI는 동적 데이터를 처리하는 인터페이스고 Common Gate Interface이다.
CGI이후에 누가왔는지도 알수 있고 원하는것도 상호작용 가능하게되었다.
하지만. CGI에 2가지 문제점이있었는데
하나는 요청이 들어올때마다 프로세스를 만든다는것이다, 그럴 경우 물리적한계로인해 대용량 요구를 수행할 수 없게된다.
(프로세스는 메모리를 통으로 가지기 때문에 크기가 크다)
그래서 프로세스안에 쓰래드를 만들어 크기를 줄이게되었고,(쓰래드는 레지스터와 스택을 제외한 메모리를 공유함)
두번째 문제점은 같은 구현체(CGI)를 사용해도 쓰래드가 다르다면 새로운 구현체가 생긴다는것->
싱글톤 패턴을로 변경한다.
이렇게 두 문제점을 해결해서 만들어진것이 서블릿이다
+
서블릿의 구동원리
다시말해, Servlet은 웹콘텐츠(HTML, CSS 등)을 생성하고 전달하기 위해 Servlet클래스의 구현규칙을 지켜 자바로 만들어진 프로그램
servlet은 Java코드 안에 HTML태그가 삽입되며 자바언어로 되어있다.
그러다가 안에있는 HTML을 코딩하기 너무 어렵고 불편해서 HTML 내부에 Java코드를 삽입하는 형식이 JSP이다.
다시 말해 서블릿의 단점을 보완하고자 만든 서블릿 기반의 스크립트 기술이다.
서블릿을 이용하게 되면 웹프로그래밍을 할 수 있지만 자바에 대한 지식이 필요하며 화면 인터페이스 구현에 너무 많은 코드를 필요로 하는 등 비효율적인 측면들이 있다. 때문에 서블릿을 작성하지 않고도 간편하게 웹프로그래밍을 구현하게 만든 기술이 JSP(Java Server Pages)이다.
JSP는 HTML태그 사용이 용이하고 자바코드 사용이 불편하기 때문에 웹어플리케이션에서 사용자에게 결과를 보여주는 View(Client)를 담당하고 Servlet은 자바코드 작성이 편리하기 때문에 주로 화면과 통신하여 자료를 받아 가공하고 가공한 자료를 다시 화면에 전달하는 Controller역할을 하고 있다.
javascript란 html을 동적으로 만드는것
하지만 JavaScript로 로그인 페이지는 만들 수 있지만 서버와 연동하여 실행되는 것이 아니기 때문에 자신의 컴퓨터에만 로그인 한것이다.
또 다른 컴퓨터 사람들은 글을 남길 수도 볼 수도 없다.
Servlet VS Spring
Spring의 원래 이름은 Spring Web MVC이다.
스프링 프레임 워크를 사용해서 웹서버를 만들고, MVC패턴을 사용한다. 그리고 이것이 Servlet을 사용하여 구동한다.
'기타' 카테고리의 다른 글
Servlet의 life Cycle (0) | 2021.05.02 |
---|---|
JSON의 이해 (0) | 2021.05.02 |
웹서버와 WAS (0) | 2021.04.03 |
톰켓(Tomcat)의 역활 (0) | 2021.04.03 |