일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Java 8 in action
- spring boot
- Java8 in action
- Design Pattern
- facade pattern
- jsp
- Java
- Java in action
- SERVLET
- 자바의 신
- Stream
- web
- 자바8
- ddd
- head first
- 스트림
- 자바8인액션
- Java8
- spring Batch
- 클린코드
- 자바
- spring
- Clean Code
- Was
- AWS101
- domain
- CQRS
- Template Method Pattern
- 디자인 패턴
- 패스트캠퍼스
- Today
- Total
목록Was (6)
주난v 개발 성장기
서블릿 정리 업무 : 클라이언트로부터의 요청을 받아 응답하는 것 서블릿 관리 주체 : 컨테이너 ex)Tomcat 클라이언트의 요청 시 컨테이너는 새로운 스레드를 생성하거나, 스레드 풀에서 가져와서, 서블릿의 service() 호출 매번 새로운 request, response 객체 생성(컨테이너가 함) 즉, 요청한 횟수만큼 스레드가 생성된다. ==> 모든 요청은 자신만의 스레드 / 스택에 할당 서블릿의 일생 컨테이너 서블릿 클래스 서블릿 객체 ——-> 클래스 로딩 1. 컨테이너가 시작할 때(톰캣이 실행될 때) 2. 최초 클라이언트 접근 시 ———————-> 서블릿 인스턴스(기본 생성자 실행) ———————-> init() 초기화 1. 서블릿 일생에서 단 한번만 호출 ———————-> service() ——..
학습목표 서블릿의 생명주기, 목적에 대한 설명이 가능하다. 새로운 도구 Container 등장! 서블릿은 '그'의 도움이 필요하다. 1. 요청이 들어오면 누군가 서블릿을 초기화해서, 요청을 처리할 새로운 스레드를 만들어야한다. 2. HttpServletRequest, HttpServletResponse를 생성하여 넘겨준다. 3. 서블릿의 doPost() or doGet()을 호출 4. 서블릿 생성, 소멸에 대한 자원 관리 컨테이너 (ex. Tomcat) * Apache (웹 서버)가 사용자로부터 서블릿에 대한 요청을 받으면, 컨테이너에게 이 요청을 넘긴다. 컨테이너의 혜택 1. 커뮤니케이션 지원 * 웹 서버와 서블릿이 통신할 수 있는 API 제공 2. 생명주기 관리 * 서블릿의 탄생과 죽음(가비지 컬렉션..
학습목표 웹 클라이언트 - 웹 서버간의 커뮤니케이션에 대해서 알아보자. 목표 더 이상 코더가 아닌 개발자로 성장하고 싶다. 웹의 동작, 라이프 사이클, 스레드 관리 등에 대해 알아보자. 웹 서버는 무슨 일을 하는가? 단순하게 보면 클라이언트의 요청을 받아서, 응답을 내려주는 역할을 한다. 웹 클라이언트는 무슨 일을 하는가? 서버에게 요청을 보내고, 결과를 화면에 출력하는 역할을 한다. Http 프로토콜이란? 프로토콜 : 서버와 대화하기 위해 사용하는 커뮤니케이션(ex. http) Http는 TCP / IP 기반으로 한 지점에서 다른 지점으로 요청과 응답을 전송한다. 요약 : 요청과 응답의 끊임 없는 주고 받음. GET 요청 : URL 뒤에 파라미터로 붙는다. & 이용 단점 : 화면에 파라미터가 다 보이고..
필터 필터는 자바 컴포넌트 중간에서 요청을 가로챈다. Dispatcher Servlet 이전에..(service() 메소드 호출 전에) 장점 : 아무도 눈치채지 못한다. Request / Response 필터 Request Filter 보안 체크 헤더와 바디 체크 요청 감시 및 기록 Response Filter 응답 스트림 압축 새로운 응답, 추가 수정 필터와 서블릿은 유사하다. 컨테이너가 API를 알고 있다. 컨테이너가 생명주기를 관리한다. doFilter() DD(web.xml에 설정) 구현 implements Filter 필터의 생명주기 init() -> doFilter() -> destory() init() : 설정 doFilter() : 필터 기능 구현 destory() Filter Chain ..
등장 배경 웹 서버는 몇번을 요청을 보냈는지, 응답을 보냈는지 기억을 하지 못한다. 근데, 때로는 이를 기억해야할 필요가 있다.(결제, 장바구니) 컨테이너는 클라이언트를 어떻게 구분하나? HTTP 프로토콜은 무상태 연결 브라우저 - 서버에 연결 - 요청 전달 - 응답 - 연결 해제 이러한 요청이 유지되는 것이 아니기 때문에 컨테이너는 새로운 클라이언트로부터 요청이 들어왔다고 인식한다. 유일한 세션ID가 필요하다. 클라이언트가 최초 요청을 보낼 때, 컨테이너는 클라이언트의 유일한 세션 ID를 생성한다. 그리고 이 값을 response에 전달한다. 다음 요청부터는 이 세션 ID와 함께 요청을 한다. ==> 이를 처리하는 일반적인 방법은 쿠키 클라이언트가 쿠키 사용을 막는다면? 백업으로 URL을 재작성한다, ..
Servlet Config 컨테이너가 서블릿을 초기화 할 때, 서블릿마다 하나씩 ServletConfig 생성 컨테이너는 web.xml에서 서블릿 초기화 파라미터를 읽어서, ServletConfig로 넘겨준다. 컨테이너가 서블릿을 초기화 할 때, 한번만 초기화 파라미터를 읽는다. 컨텍스트 초기화 파라미터 컨텍스트 초기화 파라미터의 동작 방식은 서블릿 초기화 파라미터와 같다. 그러나, 컨텍스트 초기화 파라미터는 한 서블릿만 사용하는게 아니라 공용이다. 컨텍스트 초기화 파라미터 vs 서블릿 초기화 파라미터 ServletConfig는 서블릿당 한개, ServletContext는 웹 애플리케이션에 한개 ServletContextListener ServletContext의 이벤트(생성, 소멸) 감지 동기화 컨텍스..