계산기 프로그램 웹 애플리케이션으로 만들기
- Step1 - 사용자 요청을 메인 Thread가 처리하도록 한다.
- Step2 - 사용자 요청이 들어올 때마다 Thread를 새로 생성해서 사용자 요청을 처리 하도록 한다.
- Step3 - Thread Pool을 적용해 안정적인 서비스가 가능하도록 한다.
-

어제까지는 사용자 요청을 메인 Thread가 처리하도록 계산기 프로그램을 만들어봤는데
오늘은 어제에 이어 어제까지 작성한 코드의 한계점을 풀기 위해 사용자 요청이 들어올 때마다
Thread를 새로 생성해서 사용자 요청을 처리 하도록 구현했다.
위에서 말한 한계점은 메인 Thread가 작업을 수행하면서 블로킹이 걸리게 된다면
다음 클라이언트의 일정이 해당 요청이 끝날 때 까지 기다려야 한다는 심각한 문제가 발생하기 때문에
사용자 요청이 들어올 떄마다 Thread를 새로 생성해서 사용자 요청을 처리 하도록 수정했다.

위와 같은 이유로 Thread를 새로 생성하다 보니 또 다른 문제가 있었는데
이는 새로 생성 될 때 마다 메모리를 할당 받는다는 것이었다.
즉, 사용자의 요청이 올 때 마다 Thread를 새로 생성하여 메모리를 할당 받게 된다면
성능이 매우 떨어지는 상황이 생긴다.
이는 퍼포먼스 측면에서도 좋지 않을뿐더러 동시 접속자 수가 많아지면 Thread는 많이 생성 될 것이고
이로 인해 Thread가 많아지게 되면 CPU와 메모리 사용량이 매우 증가하게 될 것이다.
최악의 경우에는 서버의 리소스가 감당하지 못해서 서버가 다운될 가능성도 있다.
다음 강의에서는 요청이 들어올 때마다 Thread를 새로 생성하는 것이 아니라
Thread를 고정된 개수만큼 생성해두고 이를 재활용하는 Thread Pool 개념을 적용하여
안정적인 서비스가 가능하도록 구현할 것 같다.
.#패스트캠퍼스 #패캠챌린지 #수강료0원챌린지 #직장인인강 #직장인자기계발
#패캠인강후기 #패스트캠퍼스후기 #환급챌린지 #오공완 #10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online.
필수 링크 : http://bit.ly/3Y34pE0
'10개 프로젝트 자바스프링' 카테고리의 다른 글
0302 (0) | 2023.03.02 |
---|---|
0301 10개 프로젝트로 완성하는 백엔드 웹개발 10 (0) | 2023.03.01 |
0227 10개 프로젝트로 완성하는 백엔드 웹개발 8회 (0) | 2023.02.27 |
0226 (0) | 2023.02.26 |
0225 (0) | 2023.02.25 |