스프링 MVC-1

존스노우·2022년 2월 1일
0

SPRING-MVC

목록 보기
1/18

웹 서버, 웹 애플리케이션 서버

http로 데이터를 주고 받는다.

웹 서버란?

정적 리소스 ?

보통 특정 폴더 디렉토리에 이미저 영상 파일 html

파일들을 서빙해주는것이다.

이런 식으로 요청 응답 데이터 주고받기

웹 애플리 케이션 서버

로직을 수행한다.

사용자에 따라 이름을 보여줄수도 있고 다른 화면을 보여 줄 수 있다.

차이

웹 시스템 구성 -WAS , DB

HTML , CSS ,JS 이미지는 자원이 싸다..

애플리케이션 로직은 자원이 많이 들어간다. (복잡한 로직 등.. 서버 호출, 디비호출 등..)

그래서

각자 역할을 분리시킴

결론적으로

요세는 CDN 정적 서버를 두기도 함

api 서버만 제공하게 되면 굳이 WEB 서버가 없어도 됨.

서블릿

처음 부터 서버를 구축한다?

요청한 메세지를 해석해야되고..

서블릿은 ?
초록색 라인을 제외한 모든 일을 다 지원 해준다.
서빌릿을 지원하는 WAS가..

요청 / 응답 메세지도 손쉽게

WAS에 hello 요청

WAS에서는 요청 메세지 기반으로 리퀘스트 리스폰스 객체를 만듬.
helloServlet 실행
리스폰스 객체를 기반으로 응답메세지 만들어서 전달.

서블릿 컨테이너?

WAS안에 서블릿 컨테이너

자동으로 생성 호출 관리

동시 요청 - 멀티 쓰레드

서블릿 객체는 누가 호출하지?

쓰레드 순서

응답 하고 -> 휴식

기다림 ..

1번도 지연되는대 2번 요청은 수행자체가 안됨

시간이 지나면 둘다 죽어버림.

그래서 신규 쓰레드를 생성 시켜주면 됨

문제점 ?

치킨 디도스 ?? 고객 요청이 무지하게 많으면...!!!(할인 이벤트 할 때)

쓰레드 풀 에서 쓰레드들이 놀고 있다 .
요청하면 가져다 쓰기

사용이 다 끝나면 죽이면 쓰레드를 죽이기 않고 쓰레드 풀에 반납.

요청 수가 넘어 가면?

대기 OR 거절

성능 튜닝 팁

너무 작게 잡아버리면... cpu를 너무 작게 사용.. 너무 부끄러운 경우

50% 써줘야 된다.

너무 높게 설정하면?

서버 다운...

적정 숫자는 ... 애플리케이션 로직의 복잡도 ( ex) DB 한두번 다녀가는지?)
아무리 뛰어난 사람도 최적의 숫자는 모름

결론은 성능 테스트를 해봐야됨

HTML,HTTP API , CSR ,SSR

정적리소스 , HTML 페이지

웹 브라우저 랜더링 -> 자바스크립트 (AJAX 등..) 동적으로 만들어서 뿌림

고민포인트 정적리소스 어떻게 제공? 동적으로 제공되는 페이지는? API 는 어떻게 제공할 것 인가?

html 만드는 과정을 서버에서 끝내는 것

텅텅빈 HTML 반환.

자바스크립트 요청..

profile
어제의 나보다 한걸음 더

0개의 댓글