본문 바로가기

back-end/cs

네트워크/ 1-Tier, 2-Tier, 3-Tier Architecture

1-Tier Architecture

클라이언트와 서버, 데이터베이스가 모두 동일한 장치에 있는 구조로 사용자가 DBMS를 직접적으로 사용 가능하다. 연습용으로 로컬 시스템에 SQL 서버와 데이터베이스를 설정하는 경우에 해당한다.

 


2-Tier Architecture

ODBC, JDBC와 같은 API를 사용해 클라이언트가 데이터베이스 서버와 직접적으로 통신하는 구조이다. 하나의 서버와 다수의 클라이언트로 구성될 수 있으며 사용자가 클라이언트를 통해서 서버에 서비스를 요청하면, 서버는 클라이언트에게 서비스를 제공한다. 과정에서 서버는 계속 클라이언트로부터 요청을 대기하게 된다.

 

사용자는 클라이언트를 통해 데이터베이스와 통신하게 되므로 1-Tier보다 DBMS의 보안은 강화되고, 유지관리와 기본 시스템의 호환 측면에서 이점을 갖지만 사용자가 많다면 성능이 떨어질 수 있다.

 


3-Tier Architecture

2-Tier 아키텍처의 확장으로, 대형 웹 애플리케이션의 경우에 사용된다.

 

Presentation Layer(PC/Tablet, etc), Application Layer(Server), Database (Server)로 나뉘어 작업을 수행한다.

 

사용자와 데이터베이스 사이에 서버가 추가되어 클라이언트는 데이터베이스와 더 이상 직접적으로 통신할 수 없다. 서버는 클라이언트로부터 요청을 받아 DBMS 시스템에 사용자의 요청을 전달하고, 다시 클라이언트에게 응답을 반환한다. 즉, Application Server는 데이터베이스 서버와 클라이언트 사이에서 부분적으로 처리된 데이터를 교환하는 매개체 역할을 한다.

 

 

클라이언트와 데이터베이스 서버는 중간 서버(Application)을 통해 통신한다

 

정리하자면 3-Tier Architecture는 클라이언트와 (데이터베이스) 서버가 직접적으로 통신하도록 하지 않고 중간 계층을 통해 통신하게 하는 특징을 갖는다. 이로 인해 클라이언트와 서버를 개별적으로 연결할 필요가 없으므로 확장성이 향상되고, 클라이언트가 직접적으로 데이터베이스에 접근하지 않기 때문에 데이터의 무결성을 유지하고 보안을 강화할 수 있다.

 

 

ref.