본문 바로가기

Spring/스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술11

[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 동시 요청 - 멀티 쓰레드 쓰레드 애플리케이션 코드를 하나하나 순차적으로 실행하는 것은 쓰레드 자바 메인 메서드를 처음 실행하면 main이라는 이름의 쓰레드가 실행 쓰레드가 없다면 자바 애플리케이션 실행이 불가능 쓰레드는 한번에 하나의 코드 라인만 수행 동시 처리가 필요하면 쓰레드를 추가로 생성 요청 마다 쓰레드 생성 장단점 장점 동시 요청을 처리할 수 있다. 리소스(CPU, 메모리)가 허용할 때 까지 처리가능 하나의 쓰레드가 지연 되어도, 나머지 쓰레드는 정상 동작한다. 단점 쓰레드는 생성 비용은 매우 비싸다. 고객의 요청이 올 때 마다 쓰레드를 생성하면, 응답 속도가 늦어진다. 쓰레드는 컨텍스트 스위칭 비용이 발생한다. 쓰레드 생성에 제한이 없다. 고객 요청이 너무 많이 오면, CPU, 메모리 임계점을 넘어서 서버가 죽을 수 .. 2022. 7. 17.
[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 서블릿 HTML Form 데이터 전송 POST 전송 - 저장 서버에서 처리해야 하는 업무 웹 애플리케이션 서버 직접 구현 서버 TCP/IP 연결 대기, 소캣 연결 HTTP 요청 메시지를 파싱해서 읽기 POST 방식, /save URL 인지 Content-Type 확인 HTTP 메시지 바디 내용 파싱 username, age 데이터를 사용할 수 있게 파싱 저장 프로세스 실행 비지니스 로직 실행 데이터베이스에 저장 요청 HTTP 응답 메시지 생성 시작 HTTP 시작 라인 생성 Header 생성 메시지 바디에 HTML 생성해서 입력 TCP/IP에 응답 전달, 소켓 종료 서블릿을 지원하는 WAS 사용 비지니스 로직 실행 데이터베이스에 저장 요청 => 의미있는 비지니스 로직 서블릿 특징 urlPatterns(/hello.. 2022. 7. 17.
[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 웹 서버, 웹 애플리케이션 서버 모든 것이 HTTP HTTP 메시지에 모든것을 전송 HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML (API) 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 지금은 HTTP 시대! 웹서버(Web Server) HTTP 기반으로 동작 정적 리소스 제공, 기타 부가기능 정적(파일) HTML, CSS, JS, 이미지, 영상 예) NGINX, APACHE 웹 애플리케이션 서버(WAS-Web Applictaion Server) HTTP 기반으로 동작 웹 서버 기능 포함+ (정적 리소스 제공 가능) 프로그램 코드를 실행해서 애플리케이션 로직 수행 동적 HTML, HTTP API(JSON) 서블릿, JSP, 스프링 MVC 예) 톰캣(Tomcat) Je.. 2022. 7. 17.