동시요청, 멀티쓰레드
2021. 5. 17. 00:13
스프링 웹 MVC
동시요청, 멀티쓰레드 쓰레드 -에플리케이션 코드를 하나하나 순차적으로 실행하는 것은 쓰레드 -자바 메인 메이서드를 처음 실행하면 main이라는 이름의 쓰레드가 실행 -쓰레드가 없다면 자바 애플리케이션 실행이 불가능 -쓰레드는 한번에 하나의 코드라인만 수행 -동시 처리가 필요하면 쓰레드를 추가로 생성 근데, 요청마다 쓰레드가 요청마다 생성되면? -생성 비용이 매우 비싸다(CPU,메모리 등등. 응답속도가 늦어진다.) -컨텍스트 스위칭 비용이 발생한다(쓰레드 바뀔 때) -쓰레드 생성에 제한이 없다.(계속 만들다가 뻗을 수도) 그래서 쓰레드 풀로 해결한다.(커넥션 풀 처럼)
서블릿
2021. 5. 17. 00:13
스프링 웹 MVC
서블릿. HTTP 요청시 들어온 HTTP 헤더, 바디 잘라서 읽고 로직 실행하고 다시 HTTP 응답 작성을 해서 내보내야 한다. 이걸 서블릿을 만들어서 다 해결한다. 로직 빼고 다 해주는거다. 서블릿을 지원하는 WAS를 사용함으로서 간단 해 졌다. HttpServletRequest request, HttpServletResponse response, 요청이 오면 WAS는 Request, Response 객체 만들어서 서블릿 객체 호출 Request 꺼내서 사용. Response 담아. -> 내려보낸다. -톰캣처럼 서블릿을 지원하는 WAS를 서블릿 컨테이너라 한다. -서블릿 컨테이너는 서블릿 객체를 생성,초기화,호출,종료하는 생명주기 관리. -서블릿 객체는 싱글톤으로 관리 -고객의 요청이 올 때 마다 계속..
웹 서버(Web Server)
2021. 5. 17. 00:12
스프링 웹 MVC
웹 서버(Web Server) -HTTP 기반으로 동작 -정적 리소스 제공, 기타 부가기능 -정적(파일) HTML, CSS, JS, 이미지, 영상 -NGINX,APACHE HTTP 요청을 웹서버로 요청하면 웹서버는 HTTP로 응답. 정적 데이터를 제공한다.단순 파일 같은 WAS- Web Application Server - 웹 어플리케이션 서버 -HTTP 기반으로 동작 -웹 서버 기능 포함+(정적 리소스 제공 가능) -프로그램 코드를 실행해서 애플리케이션 로직 수행 -동적 HTML, HTTP API(JSON) -서블릿,JSP,스프링MVC -톰캣,Jetty,Undertow -웹 서버는 정적 리소스 제공, WAS는 애플리케이션 로직까지 실행. -사실 경게가 모호하긴 하다. -사실 서로의 기능을 제공하긴 함...