본문 바로가기

Back-End

서버 아키텍처

 대부분의 프레임워크는 클라이언트에서 어떤 작업을 요청하면 각각 받은 요청을 별도의 Thread에서 처리하도록 구성되어 있다. (Worker-Thread Model) 한 번에 많은 요청을 하여도 처리가 가능하지만, 만약 동시에 처리할 수 있는 MAX개가 모두 돌고 있다면 아무런 작업이 불가능해진다. 대부분의 요청은 '단순 조회나 단순계산'인 경우가 많다. 즉 서비스 처리 시간모다 Thread Block상태인 것이다.


 그래서 새로운 아키텍쳐가 나왔는데 Node에서 사용하고 있는 Event-driven Architecture이다. 일단 요청이 들어오면 single-thread에서 요청을 처리를 하고, DB I/O등 Synchronous한 작업은 Worker-Thread Model을 이용하여 처리한다.  이 때 Single Thread에서는 Thread Blocking이 되지 않도록 서비스 요청은 Async 방식으로 처리한다.

'Back-End' 카테고리의 다른 글

서버 개발자의 SPA 적용기 - NHN FORWARD  (0) 2019.11.27
Spring - Unable to acquire JDBC Connection 이슈  (1) 2019.08.02
백앤드 개발자 면접 준비 리스트  (0) 2019.03.31
Logback 아키텍처  (0) 2018.09.19
2.logback Appender란  (0) 2018.09.19