서버는 여러개의 request를 어떻게 감당할까?
일반적으로 웹 애플리케이션의 쓰레드 1개가 요청을 받았을 때 동작 방식은 위와 같다. 요청이 들어온 때부터 응답을 리턴해줄 때까지 하나의 스레드는 해당 요청의 작업만을 전담하여 수행한다. (blocking) 처리 중간에 데이터베이스 응답을 기다리거나, 다른 서버에서 api 응답을 기다리느라 cpu가 idle 한 상태이더라도 그 사이 다른 request를 처리하지 못한다. 1. multi-thread approach ( rails puma 서버 외 다수 ) 대부분의 서버 어플리케이션은 멀티스레드로 동작하기 때문에, 스레드 1개만 놓고 봤을때는 하나의 요청을 blocking 방식으로 처리함에도 불구하고 전체 서버 app(프로세스) 단위에서는 서로 다른 코드 부분 ( 예를 들어 session_controlle..
시리즈/Concurrency
2021. 11. 29. 21:22
공지사항
최근에 올라온 글