[Network] Load Balancing (로드 밸런싱)의 개념과 이해

처음 서버를 개발하고, 이를 운영하는 데까지 많은 학습 시간이 필요했습니다. 서버 개발을 위해 Servlet, JSP, Spring을 배우게 되었고, 나아가서는 더 나은 프레임워크 및 차이를 알아보기 위해 Flask, Django, Nest.js 등 다양한 프레임워크를 사용했었죠. 그러나 서버 공부는 이것이 끝이 아니었습니다. 우리는 이러한 서버를 인터넷에 서비스하기 위해 많은 것을 고민해야 했습니다. 서버에서 10, 100명만 접속해서 끝날 일이라면 그냥 서버를 개발하고, 배포하는 것만으로 끝날 일이지만, 만약 수십만 명의 사용자들이 내 서버에 접속해야 한다면 어떤 일이 벌어질까요? 만약, 서버가 멀티 스레드를 사용하고, 각 사용자가 접속할 때마다 스레드를 생성하는 형태를 가지고 있다면, 1만 명 아니..