서버간의 통신을 서버와 클라이언트로 분리시킨 설계방식이다.
이러한 설계방식을 2티어 아키텍처, 또는 클라이언트-서버 아키텍처라고 한다.
클라이언트(client) : 서버로 요청을 보내고, 요청한 내용 응답(리소스)을 받아 사용하는 역할
서버(server) : 클라이언트의 요청에 따라 적절한 응답(리소스)을 전달해주는 곳
데이터베이스 : 리소스를 저장하는 공간(일종의 서버라고 볼수있다).
서버의 요청에 따라 적절한 응답(리소스)을 꺼내 서버에게 전달한다.
클라이언트
클라이언트는 보통 플랫폼에 따라 구분한다.
ex)웹사이트(웹,앱), 스마트폰/태블릿용 앱, 데스크탑 앱
서버
서버는 보통 무엇을 하느냐에 따라 구분한다.
ex)파일서버(파일을 제공하는 앱), 웹 서버(웹사이트에서 필요로 하는 정보들을 제공하는 앱), 메일서버(메일을 주고 받을 수 있도록 도와주는 앱), 데이터베이스(데이터베이스도 데이터 제공자로 일하므로 일종의 서버라고 볼 수 있음)
클라이언트와 서버가 요청과 응답을 주고받음
예를들어 클라이언트(손님)이 서버(빵집)에 빵에 대한 정보를 요청하면 서버(빵집)은 받은 요청에 대한 정보를 답장하는 식이다.

기존 2티어 아키텍처에 데이터베이스가 추가된 형태이다.
데이터베이스는 창고와 같은 역할을 하며, 서버는 리소스를 이곳에 저장한다.

2Tier 아키텍처
3Tier 아키텍처