늦은 프로그래밍 이야기

3계층 구조 본문

내일배움캠프/객체지향 프로그래밍

3계층 구조

한정규 2022. 11. 28. 20:57

3계층 구조 (3 Tier Architecture)

 - 어떠한 플랫폼을 3계층으로 나누어 별도의 논리적/물리적인 장치에 구축 및 운영하는 형태

프리젠테이션 계층 (Presentation Tier)

 - 사용자가 직접 마주하게 되는 계층.

 - 주로 사용자 인터페이스를 지원한다.

 - GUI 또는 프론트엔드(front-end)라고 부른다.

 - 사용자 인터페이스와 관계없는 데이터를 처리하는 로직은 포함하지 않는다.

 

어플리케이션 계층 (Application Tier)

 - 프리젠테이션 계층에서 요청되는 정보를 어떠한 규칙을 바탕으로 처리하고 가공하는 것들을 담당. (동적인 데이터 제공)

 - 비즈니스 로직 계층 또는 트랜잭션 계층이라고 부른다.

 - 첫번째 계층에서 바라볼 때에는 서버처럼 동작하고 세번째 계층에 대해서는 클라이언트처럼 행동(요청)

 - 미들웨어(Middleware) 또는 백엔드(back-end)라고 부른다.

 - 프리젠테이션 코드나 데이터 관리를 위한 코드는 포함하지 않는다.

 

데이터 계층 (Data Tier)

 - 데이터베이스와 데이터베이스에 접근하여 데이터를 읽거나 쓰는 것을 관리하는 것을 포함.

 - 주로 DBMS(Database Management System)이 이계층에 해당

 - 데이터 계층 또한 백엔드(back-end)라고 부른다.


장단점

장점

 - 각 계층이 분리되어 있어 업부 분담이 가능해지므로 업무 효율성이 증가.

 - 여러 대의 서버로 나누어 각 계층이 동작하므로 서버의 부하를 줄여줄 수 있다.

 - 경우에 따라 합리적인 스케일업(서버 성능 업그레이드)이 가능하다.

 

단점

 - 1계층으로만 사용하는 것 대비 관리가 더 필요하다.

 - 장애가 발생하는 포인트가 더 늘어날 수 있다.

 - 비용이 그만큼 많이 발생하게 되므로 서비스 규모 및 사용자 증가에 따라 계층 구조를 설계 및 고려해야 한다.


계층 구조

1계층 구조

 - 하나의 물리적인 컴퓨터 또는 서버에 3가지의 다른 기능으로 함께 구현한 방식.

 

2계층 구조

 - 클라이언트 계층과 데이터 계층의 물리적인 컴퓨터 또는 서버로 구분하여 클라이언트 계층과 테이터베이스는 변경에 서로 영향을 받지 않는다.

 

3계층 구조

 - 클라이언트 계층, 어플리케이션 계층, 데이터 계층으로 서버를 모두 물리적으로 나누어 구성하는 방식.


'내일배움캠프 > 객체지향 프로그래밍' 카테고리의 다른 글

SOLID 원칙  (0) 2022.11.21
Comments