Background

왜 서버를 분리하는 것일까?

유저가 늘어나면 뭘할건지?

로드밸런싱 + 웹서버 추가 → Stateless하기 때문에 가능한 것

웹페이지에서 call을 2번 요청하면 이걸 같은 유저가 2번 요청한건지 알까?

클라이언트를 안다면 그건 클라이언트 서버임

웹서버는 클라이언트가 누구인지 체크하지 않음 (Stateless)

쿠키를 사용함

그렇다면 미들웨어는 어떤 웹서버를 호출할지 알까?

모름. Stateless하게 동작하기 때문에.

쿠버네티스나 뭐든간에 스케일 아웃을 쉽게 하기 위한 것임

데이터베이스는 분리할 수 있을까?

스케일 아웃 분리가 안됨

SQL서버는 스케일 업만 가능 → CPU / 메모리 등등

동기화를 하는 동안 트랜잭션으로 인해 시간이 걸리고 recovery에 시간이 소요되기 때문

클라이언트 ↔ 미들웨어 ↔ 웹서버 는 Stateless지만 Database는 일관성을 고려해야함