본문 바로가기
카테고리 없음

TIL-25

by 오우지 2021. 10. 21.

버블 - 끝없는 비교

선택 - 키 작은 사람 찾기

삽입 - 신병

위는 다 N^2 이지만 이미 정렬된 배열이라면 삽입이 가장 좋은 시간복잡도를 가진다.

병합 - 분할정복 - NlogN

 

쓰레드 - 

애플리케이션 코드를 순차적으로 실행하는 것은 쓰레드

자바 메인 메서드는 main이라는 쓰레드가 실행

동시 처리가 필요하면 쓰레드 추가생성

 

요청 마다 쓰레드를 생성하면

 

-장점

    동시 요청을 처리할 수 있다.

    리소스가 허용할 때 까지 처리가 가능하다

    하나의 쓰레드가 지연돼도 나머지 쓰레드는 정상 동작한다

 

-단점

    쓰레드 생성 비용이 비싸고

    컨텍스트 스위칭은 리소스를 많이 쓴다

    쓰레드 생성에 제한이 없으면 hw의 임계점을 넘을 때 서버가 죽는다.

 

따라서 쓰레드 풀이라는 것을 사용한다.

필요한 쓰레드를 풀에 보관하고 관리한다(톰캣은 200개 기본)

쓰레드가 필요하면 이미 생성되어 있는 쓰레드를 꺼내서 사용하고 반납한다.

기다리는 요청은 거절하거나 특정 숫자만큼만 대기하도록 설정할 수 있다.

 

WAS의 튜닝 포인트는 최대 쓰레드 수이다.

쓰레드가 적으면 동시 요청이 많을 때, 서버 리소스는 여유롭지만 클라이언트는 응답 지연

쓰레드가 많으면 동시 요청이 많을 때, hw임계점 초과로 서버 다운

 

SSR - 서버 사이드 렌더링 - JSP, 타임리프

CSR - 클라이언트 사이드 렌더링 - React, Vue

 

 

@ServletComponentScan // 서블릿 자동 등록