아무거나

3 Tier Architecture(3계층 구조) 본문

IT/기타 IT지식

3 Tier Architecture(3계층 구조)

전봉근 2018. 7. 31. 00:03
반응형

3계층 구조(3 Tire Architecture)란 프레젠테이션 로직(클라이언트, 사용자 인터페이스), 비즈니스 로직, 데이터베이스를 각각 다른 플랫폼 상에서 구현한 것이다.


우리가 보편적으로 개발하는 웹프로그램은 최소 3tier이상, 4tier로도 개발을 할 수 있다. 보통 프레젠테이션 로직은 UI를 구성하는 document 페이지(ex-html)정도로 생각할 수 있고, 비즈니스로직은 웹서버 즉 iis, apache... 등에서 돌아가는 서비스로 보면되며 마지막은 데이터베이스가 된다.


그래서 보통 웹은 3tier로 가져간다. 특별한 경우에는 데이터 트랜잭션 등의 용도로 미들웨어를 웹 서버와 데이터베이스서버 사이에 두는 경우도 있다. 이런 구조는 데이터 작업의 부분적인 프로세스를 미들웨어로 분산시키는 4tier 구조이다. 


3계층을 바로 보기전에 1, 2, 3계층 구조를 순서대로 알아보자.


[ 1계층 구조(1 Tier) ]

1계층 구조는 한 컴퓨터에 3가지 로직을 다 구현한 것이다. 그러므로 한 가지 로직을 바꾸려면 다른 로직의 변경도 필요한 단점이 있다.


[ 2계층 구조(2 Tier) ]

Client Tier와 Data Tier로 2개의 물리적 컴퓨터로 구분되며 클라이언트와 서버를 분리하여 어플리케이션과 데이터베이스가 분리되어있기 때문에 데이터베이스의 변경이 편리한 장점을 가지고 있다.


[ 3계층 구조(3 Tier) ]

3계층은 각 계층별로 물리적으로 독립적이며 각 계층의 변경이 다른 계층에 의존하지 않는다.




(1) 프레젠테이션(클라이언트) 계층

     - 사용자 인터페이스를 지원한다. (인터넷 브라우저의 정적인 데이터를 제공한다.)

     - 이 계층은 Front-end라고도 불린다.

     - 비즈니스로직이나 데이터관리 코드를 포함해서는 안된다.

(2) 애플리케이션 계층

     - 정보처리의 규칙을 가진다. (동적 데이터 제공)

     - middleware 또는 back-end라고도 불린다.

     - 프레젠테이션코드나 데이터관리 코드를 포함해서는 안된다.

(3) 데이터 계층

     - 데이터베이스를 주로 뜻한다.

     - DB 또는 File System 를 접근 및 관리한다.

     - 주로 DB서버를 뜻한다.


[장단점 비교표]

 

 2 Tier

3 Tier 

개발 편의성 측면 

 프로그래밍 개발에 용이함

프레젠테이션 로직과 비즈니스/데이터접근 로직을 별도로작성하므로 2-Tier에비해 개발이 불편 함 

 재사용성 측면

 모든 로직이 클라이언트에 존재하므로 내용 변경시에 모든 로직을 재개발 하여야 하므로 재사용성 측면에 좋지않다.

 동일한 비즈니스 로직을 필요로 하는 프레젠테이션 로직을 다양하게 구현할 수 있다. 비즈니스 로직을 모듈화하여 클라이언트 / 서버 환경과 웹 환경에서 동시에 사용 가능

 성능 측면

 동시 사용자 수가 증가 함에 따라 성능이 급격하게 저하 된다.

동시 사용자 수가 증가해도 일정한 응답속도와 처리량을 보장한다. 

 자원 활용 측면

 H/W 자원(CPU, 메모리 등)과 데이터베이스 자원을 비효율적으로 사용한다.

미들웨어에서 부하 분산, 큐잉 메커니즘을 통해 효율적으로 자원을 활용한다. 

 시스템 관리 측면

 모니터링 및 관리가 용이하지 못하다.

처리되고 있는 애플리케이션 정보, 프로그램별 처리 건수 등 다양한 모니터링이 가능하여 관리 및 모니터링에 용이하다. 



* 결론적으로 3 Tier 구조를 사용하면 각 계층별로 역할분담을하여 일을 효율적으로 할 수 있다. 또한 문제가 생겨도 서로 각각의 계층을 갖고 있으므로 문제되는 부분만 해결해주면 된다. -> 회사 규모 및 사용자의 증가에 따라서 Tier 구조를 고려해야 한다.

반응형
Comments