쓰레드
HTTP에서 서블릿 객체를 누가 호출하지? 쓰레드
코드를 순차적으로 실행하는 것이 쓰레드이다.
동시처리가 필요하면 쓰레드를 추가해야 한다.
요청이 들어올 때마다 쓰레드를 생성해서 서비스를 처리한다.
쓰레드 풀
이러한 단점들을 극복하고자 쓰레드 풀을 생성한다.
미리 풀 안에 쓰레드를 생성해놓고 요청이 올때마다 풀에서 꺼내서 처리한다.
응답 이후 죽이지 말고 다시 풀에 반납한다.
쓰레드 풀이 비어있는 경우 대기 시키거나 거절할 수 있다.
톰캣 서버는 기본적으로 200개의 쓰레드를 사용해서 관리한다.
WAS의 멀티 쓰레드 지원
WAS가 멀티 쓰레드 지원을 해준다!
개발자가 멀티 쓰레드 관련 코드를 신경쓰지 않아도 된다.
개발자는 마치 싱글 쓰레드 프로그래밍을 하듯이 편하게 해도 된다.
싱글톤 객체는 주의해서 사용해야 한다.
서버에서 3가지 요청 Handler
정적 리소스 요청
그냥 있는거 보내주면 된다.
동적 요청(HTML 페이지)
DB에서 관련 데이터를 가져와서 HTML페이지를 만든 다음 응답한다.
HTTP API 요청
주로 JSON으로 데이터 통신
UI화면이 필요하면 클라이언트가 별도로 처리한다.
web to server / app to server / servert to server(was: 결제 서버)
SSR/CSR
서버사이드렌더링
서버에서 최종 HTML을 생성해서 클라이언트에 전달
클라이언트 사이드 렌더링
HTML 결과를 자바스크립트를 사용해 웹 브라우저에서 동적으로 생성
동적인 화면에서 사용, 웹 환경을 앱처럼 필요한 부분부분 변경할 수 있다.
React, Vue -> Web frontend
SSR
JSP보다는 이제 타임리프는 사용한다.
화면이 정적이고 복잡하지 않을 때 사용한다.
CSR
복잡하고 동적 UI
FE 영역
'Backend > spring' 카테고리의 다른 글
WEB/WAS, Servlet (0) | 2022.02.17 |
---|---|
빈 라이프사이클, AOP (0) | 2022.01.13 |
의존 자동 주입과 컴포넌트 스캔 (0) | 2022.01.08 |
Spring DI (0) | 2022.01.08 |
Spring ApplicationContext, IoC, Singleton (0) | 2022.01.08 |