서블릿이란 한마디로 자바로 개발된 CGI프로그램이다. 서블릿 = server + applet-> server에서 돌아가는 작은 applet(자바 프로그램) 자바EE기술중에서 jsp와 서블릿 기술만 구현한 서버를 서블릿 컨테이너라고 한다. 웹 서버가 있고 웹 애플리케이션이 있다. 이때 이 프로그램이 자바로 개발되었으면 서블릿인것이다. CGI프로그램에는 펄,PHP등 유명한것들이 있다. CGI 프로그램이 무엇인가? CGI프로토콜이 뭔지 우선 설명하겠다. CGI프로토콜이란, 웹 서버와 웹상에서 돌아가는 프로그램 사이의 통신 규약이다. 즉, 웹 서버와 웹 앱이 서로 데이터를 어떻게 주고 받을것인지에 대한 프로토콜이다. 그리고, 이 프로토콜을 지킨 웹에서 돌아가는 응용프로그램이 CGI프로그램이다. 자바로 구현된 C..
서블릿 컨테이너(톰캣)는 서블릿의 생명주기를 관리한다. 서블릿을 생성,실행,소멸하는 역할을 한다.서블릿 컨테이너는 DD(Deployment Descriptor)파일이라고 불리는 web.xml을 참고하여 어떤 URL이 클라이언트로부터 들어왔을때 그 URL을 처리 할 수 있는 서블릿을 찾게 된다. 근데 만약에 그 서블릿이 메모리에 로드 되어 있지 않다면, 로드 시킨다. 근데 이미 로드 되어 있는 서블릿이 있다면 그 서블릿을 재활용 한다. 그렇기 때문에, 서블릿이 처음 생성 될때는 init() service()가 차례로 호출 되는데 똑같은 URL로 요청을 하게 되면 service()만 호출 하는 것이다. service()콜백 메소드는 서블릿이 실행될때 호출 된다. 또한 WAS가 종료 될때 서블릿에 대해 des..
JSP 설계 모델에는 2가지 모델이 있다. 모델1방식과 모델2방식.데이터 입력, 데이터 처리, 데이터 출력 각각을 어느 곳에서 처리하느냐에 따라서 모델1과 모델2방식이 구분된다. 모델1 모델1 방식은 JSP가 데이터 입력과 출력을 담당하고, 자바빈이 데이터 처리를 담당한다.여기서 사용되는 자바빈은 데이터를 담는 역할 뿐만 아니라, 로직을 처리하기도 하기 때문에 데이터 빈+ 서비스 빈의 역할을 동시에 하고 있는 자바빈이다. 즉, JSP 혼자서 거의 모든 업무를 처리한다.모델1방식은, 매우 빠르게 개발해야 하며 유지보수가 필요하지 않은 경우에 사용하는것이 좋다. 즉, 남들과 코드를 공유 할일이 없고 나만 그 코드를 보는 경우에는 모델1을 사용해도 상관없다. JSP가 더러워도 나는 그 코드를 알아 볼 수 있기..
필터 필터는 웹 컴포넌트(jsp,서블릿)와 웹 브라우저 사이에 존재한다. 정확히는 웹 컨테이너 내부에 여러개의 웹 컴포넌트들이 있는데 웹 컨테이너와 웹 컴포넌트 사이에 존재한다. 사용자가 현재 로그인 상태인지 아닌지에 따라 보여줘야 할 페이지가 다를 수 있다. 이때 필터에 사용자가 로그인 상태인지 확인하는 코드를 작성하게 되면 로그인 여부에 따라 다른 페이지를 보여 줄 수 있다.위와 같은 구조로 구성 되어 있다. 래퍼 기본적으로는 사용자가 보낸 요청을 임의로 수정할 수 없지만 그 요청을 감싸는 래퍼 클래스를 만들면 수정할수 있다.래퍼 클래스는 요청 래퍼 클래스와 응답 래퍼 클래스 2가지 종류가 있다. 웹 컨테이너는 웹 브라우저로부터 요청을 받게 되면 request객체와 response객체를 만들게 된다...
익스프레션 언어 익스프레션이란 식이라는 의미이다. 식이라는것은 y=x+1처럼 연산자(+)와 피연산자(x,y)로 이루어진것을 의미한다.익스프레션 언어란 ${cnt+1} 와 같이 표현하며 cnt는 어떤 자바 변수가 아니라 attribute이다. 기존 JSP의 로 나타내는 익스프레션 문법 과는 다르다. 이곳에서의 cnt는 자바 변수를 의미한다.즉, 익스프레션 언어란 식으로 표현된 언어라는 뜻이다. 기존 JSP 에서는 Attribute를 다음과 같은 방법으로 가져왔었다.하지만 이 JSP는 HTML내에 포함되기 때문에 디자이너도 이 파일을 보게 되는데, 디자이너는 코드를 볼줄 모르기 때문에 저 구문이 쉽게 읽혀지지않으며 혼란을 줄 수 있다.그렇기 때문에 새롭게 JSP에 추가된 문법이 바로 익스프레션 언어이다. 다..
서블릿 컨테이너란? 이 서블릿을 웹 서버에 올리기만 해서는 클라이언트의 요청을 처리할 수 없기 때문에 이 서블릿을 관리해주는 서블릿 컨테이너가 필요한 것이다. 서블릿 컨테이너가 하는 역할을 대충 정리해보면 1. 서블릿의 생명 주기 관리서블릿 컨테이너가 실행 되면, 서블릿 클래스를 인스턴스화시키고 초기화 시킨다.(탄생)또한, 클라이언트로 부터 어떤 요청이 들어왔을때 그 요청에 해당하는 적절한 서블릿에 맵핑 시켜준다.(전성기)서블릿이 사망하는 순간 서블릿 컨테이너는 가비지 컬렉션을 실행한다.(사망) 2. 멀티 스레딩 관리클라이언트의 요청이 들어올때마다 쓰레드를 생성한다. 하나의 서블릿에 여러개의 쓰레드가 동작하면서, 동시에 여러 클라이언트의 요청을 처리 할 수 있게 된다. 3.보안 관리서블릿 컨테이너 자체에..
(1),(5)웹 브라우저가 웹서버와 통신을 하는 과정, 요청과 응답클라이언트와의 통신은 웹 서버가 전담하고, 실질적인 비즈니스 로직은 웹어플리케이션서버가 담당한다.웹 서버는 단순히 클라이언트의 요청이 들어오면 작업을 웹어플리케이션 서버에 위임하는 역할을 한다. 웹 어플리케이션 서버는 웹 서버에서 작동하는 어떤 실행 흐름이자 비즈니스 로직이다. 데이터베이스 접속이 필요한 작업을 실행한다. 대표적인 웹 어플리케이션 서버로는 톰캣이 있으며, 톰캣은 내부적으로 웹서버도 내장하고 있다. 웹 어플리케이션 기능이 구현된 서블릿을 웹 어플리케이션 서버에 배포(deployment)를 해야 나중에 요청이 들어왔을때, 그 비즈니스 로직이 담긴 서블릿을 실행 시킬수 있게 된다. 이것을 웹 어플리케이션을 웹 어플리케이션 서버(..
옛날 초기 인터넷에서는, 하나의 웹서버가 모든 클라이언트의 요청을 처리했지만, 시간이 지날수록 인터넷이 복잡해 지면서 기능을 나눠야 될 필요가 생겼다. 따라서 웹 어플리케이션 서버라는것이 등장했다. 웹서버HTML문서 ,이미지파일,자바스크립트 등과 같은 정적인 파일을 HTTP프로토콜을 통해서 웹 브라우저에 제공한다.유명한 웹서버로는 아파치가 있다. 웹 어플리케이션 서버 (was) 동적인 데이터를 처리한다.EX) 사용자가 로그인을 하면 아이디와 비밀번호를 HTTP를 통해서 웹 서버에 전송한다. 웹서버는 이것을 다시웹 어플리케이션 서버에 전달한다. 그럼 WAS는 이 요청 정보를 가지고 데이터베이스에 접근해서 이 아이디에 해당하는비밀번호가 맞는지 확인하고 맞는지 아닌지를 클라이언트에게 응답으로 내어준다. 그 값..
- Total
- Today
- Yesterday
- async
- reactdom
- react hooks
- Action
- useRef
- Babel
- webpack
- promise
- react
- Next.js
- Polyfill
- storybook
- computed
- await
- state
- type alias
- es6
- mobx
- atomic design
- hydrate
- useEffect
- rendering scope
- typescript
- design system
- props
- reflow
- javascript
- return type
- server side rendering
- reducer
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |