< 목차 >
리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리시킨 것을 2-Tier아키텍처, 다른 말로 클라이언트-서버 아키텍처라고 부른다.
리소스를 사용하는 앱이 바로 "클라이언트", 리소스를 제공(serve)하는 곳은 "서버"라고 부른다.
리소스에 접근하는 앱은 마치 손님(client)과 같아서, 리소스를 가지고 있는 점원에게 물품을 요청해야 한다. 요청에 따라, 매니저(Server)는 리소스를 담아 응답한다.( 클라이언트와 서버는 요청과 응답을 주고받는 관계이다. 클라이언트-서버 아키텍처에서는 요청이 선행되고 그 후에 응답이 온다.)
보통 서버는 리소스를 저장하는 공간은 데이터베이스라는 창고에 담아둔다. 이처럼 클라이언트-서버 아키텍처에 데이터베이스가 추가된 형태를 3-Tier 아키텍처라고 한다.
< 클라이언트와 서버 종류 >
클라이언트는 보통 플랫폼에 따라 구분된다. 브라우저를 통해 주로 이용하는 웹(Web) 플랫폼에서의 클라이언트는 웹사이트 또는 웹 앱이라고 부른다.
iOS나 안드로이드와 같은 스마트폰/태블릿 플랫폼, 그리고 윈도우와 같은 데스크탑 플랫폼에서 이용하는 앱 역시 클라이언트가 될 수 있다.
서버는 무엇을 하느냐에 따라 종류가 달라진다. 파일 서버는 파일을 제공하는 앱, 웹 서버는 웹사이트에서 필요로 하는 정보들을 제공하는 앱, 메일 서버는 메일을 주고받을 수 있도록 도와주는 앱이다.
데이터베이스도 데이터 제공자로서 일하므로 일종의 서버라고 볼 수 있다.