인프런 커뮤니티 질문&답변

공부해야지님의 프로필 이미지
공부해야지

작성한 질문수

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

자바 백엔드 웹 기술 역사

스프링 웹 플럭스 질문드립니다!

작성

·

302

0

쓰레드의 개수가 코어수와 거의 동일하다고 하셨는데 그렇다면 다중작업을 할때는 컨텍스트 스위칭 비용이 들더라도 mvc가 효율이 더 좋은건가요?? 그리고 mvc도 쓰레드 수를 코어수와 맞춰 주면 웹 플럭스와 같이 스위칭 비용이 효율화 되는지 궁금합니다

답변 1

5

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 공부해야지님

웹 플럭스 처럼 비동기 Non-blocking을 사용하는 모델

일반적은 MVC처럼 요청 당 쓰레드를 사용하는 모델이 있습니다.

웹 플럭스는 기본적으로 비동기, Non-blocking이라는 개념이기 때문에 이렇게 쓰레드 수를 맞추는 것이 가능합니다. 이 경우 모든 백단 요청과 응답, 데이터베이스 요청 응답까지 다 비동기, Non-blocking으로 동작해야 합니다. -> 비동기, Non-blocking에 대한 자세한 내용은 웹 플럭스를 따로 학습하셔야 합니다.

MVC의 경우 기본적으로 요청당 쓰레드를 만들고 해당 쓰레드가 데이터베이스에 쿼리를 요청하고 응답을 받을 때 까지 대기하는 방식입니다. 그래서 MVC의 경우 쓰레드 숫자가 작으면 해당 숫자밖에 고객 요청을 처리할 수 없습니다. 따라서 이렇게 하면 성능이 매우 저하됩니다. 참고로 MVC는 실무에서 100~1000개 정도의 쓰레드를 기본으로 사용합니다.

감사합니다.

 

답변 감사합니다!!

공부해야지님의 프로필 이미지
공부해야지

작성한 질문수

질문하기