다층 구조

다층 구조(Multi-tier Architecture 또는 n-tier Architecture)는 비즈니스 로직을 완전히 분리하여 데이터베이스 시스템과 클라이언트의 사이에 배치한 클라이언트 서버 시스템의 일종이다. 예를 들어 사용자와 데이터베이스간의 데이터 요구 서비스에 미들웨어를 이용하는 것을 들 수 있다. 일반적으로는 3층 구조가 널리 쓰인다.

계층

일반적인 계층 
 프레젠테이션 계층
 애플리케이션 계층
 비즈니스 계층
 데이터 접근 계층

3층 구조 (3-Tier) 

세 층이란 사용자 인터페이스, 비즈니스 로직, 데이터베이스를 말하며, 이들을 각각 독립된 모듈로 개발하고 유지하는 구조로, 일반적으로 이들은 각각 다른 플랫폼 상에서 구동된다.

3층 구조는 2층 구조의 제한을 극복하기 위해서 탄생한 구조로, 사용자 인터페이스 환경과 데이터베이스 관리서버 환경 사이의 중간층이 추가된 구조이다. 중간층의 구현은 트랜잭션 처리 모니터, 메시지 서버, 응용 서버 등 여러 가지 방법으로 구축될 수 있다. 이러한 중간층은 데이터베이스의 다단계나 응용 프로그램의 실행 또는 사용자 요구 분산을 위한 큐잉을 수행할 수 있다. 예를 들어, 중간층이 큐로써 역할을 한다면 클라이언트는 자신의 요청을 중간층에 전달만 하고 중간층이 서버에 접속해서 클라이언트가 남기고 간 요청에 대한 응답을 받아 클라이언트에 돌려줄 것이다. 이러한 중간층의 역할은 스케줄링을 가능하게 할 뿐만 아니라, 다수 사용자 요구 처리에 대한 우선 순위를 정할 수 있게 해주어 서버의 부하를 줄여준다.

3층 구조는 아래의 세 층으로 나뉘어 있다.

프레젠테이션 계층 
프레젠테이션 계층은 응용 프로그램의 최상위에 위치하고 있는데 이는 서로 다른 층에 있는 데이터 등과 커뮤니케이션을 한다.

애플리케이션 계층 
이 계층은 비즈니스 로직 계층 또는 트랜잭션 계층이라고도 하는데, 비즈니스 로직은 워크스테이션으로부터의 클라이언트 요청에 대해 마치 서버처럼 행동한다. 그것은 차례로 어떤 데이터가 필요한지를 결정하고, 메인프레임 컴퓨터 상에 위치하고 있을 세 번째 계층의 프로그램에 대해서는 마치 클라이언트처럼 행동한다.

데이터 계층 
데이터 계층은 데이터베이스와 그것에 액세스해서 읽거나 쓰는 것을 관리하는 프로그램을 포함한다. 애플리케이션의 조직은 이것보다 더욱 복잡해질 수 있지만, 3계층 관점은 대규모 프로그램에서 일부분에 관해 생각하기에 편리한 방법이다.

외부 링크 
 리눅스 저널의 3층 구조에 관한 기사

월드 와이드 웹
소프트웨어 공학
소프트웨어 구조
아키텍처 패턴