서버란?
클라이언트가 요청을 하면 네트워크를 통해 그에 대한 서비스와 자원을 제공하는 컴퓨터 시스템
실생활 예시 - 레스토랑 고객 ⇄ 웨이터 ⇄ 요리사 ⇄ 창고(냉장고) ⇄ 외부조달 1. 고객은 메뉴판을 통해 웨이터에 요청을 하면 요리사는 웨이터의 요청에 따라 그에 대한 요리를 제공하고 웨이터는 고객에게 요리를 제공한다. 2. 재료, 메뉴, 요리사에 따라 가능여부가 결정된다. 3. 물티슈와 같은 것은 웨이터가 바로 응답 가능 4. 재료가 없을경우에는 창고에서 꺼내서 사용. 필요할 경우 외부조달 5. 고객이 단골일 경우 웨이터는 고객이 즐겨찾는 음식을 기억한다. |
- 웹서버 - 웨이터, WAS(백엔드 서버) - 요리사, 메뉴판 - API 명세서, 재료 - DB, 외부자원-카카오 api
- 단골의 자주 찾는 음식은 캐시/세션과 대응됨
- 웨이터가 물티슈를 바로 제공하는것은 웹서버가 Client에게 바로 제공하는것과 같다.
- Client가 Server로 request하면 Server는 Client에게 response
- 서버가 DB에게 요청을 할때는 CRUD형태로 요청한다.
- 정적페이지는 웹서버, 동적페이지는 WAS서버에서 구현됨
- Client와 Server는 1:N 관계 성립
- 위 그림에서 서버는 3개 (웹서버, WAS, DB 서버)
- Client 또한 서버가 될수 있다.
+DBMS
Database Management System
데이터베이스를 store(저장) and manage(관리)하기 위해 고안된 software package
ex) Oracle, MySQL 등
+DB vs DB서버
DB - 여러사람들이 공유하고 사용할 목적으로 통합관리되는 데이터 모임
DB 서버 - DB를 제공하는 서버
+프록시 서버
-웹 서버를 대신하여 응답. 자체 저장디스크를 갖고 있어 최근 호출된 객체의 사본을 저장 및 보존.
- 만약 요청하는 컨텐츠가 자신(프록시 서버)에게 있을 경우, 바로 클라이언트에게 컨텐츠를 제공
- 요청하는 컨텐츠가 자신에게 없을 경우 오리지널 서버에게 컨텐츠를 요청하고 이를 프록시 서버에 저장한 후 클라이언트에게 제공하는 형태로 동작
-로드 밸런싱 : 라운드 로빈 등을 이용하여 중간에서 조율 ⇒ 부하 분산
-보안 : 서버에 직접 접근 못하게 한다.
+)로드밸런서와 프록시란 용어는 업계 내에서 대강 동의어로 사용된다. 모든 프록시가 로드밸런서인 건 아니지만, 대부분의 프록시는 기본적으로 부하분산 기능을 수행한다. - 출처 : https://blog.envoyproxy.io/introduction-to-modern-network-load-balancing-and-proxying-a57f6ff80236