3계층 구조(3 Tier- Architecture) 란?
어떠한 플랫폼을 3계층으로 나누어 별도의 논리적/물리적인 장치에 구축 및 운영하는 형태
조금 더 표현하자면 아래의 그림과 같다.
해당 계층을 사용하여 서버 한대에 모든 기능을 구축하지않고,
데이터를 저장하고 읽는 데이터 계층,
데이터를 처리하는 어플리케이션 계층,
데이터를 표현해주는 클라이언트(프레젠테이션)계층
으로 나눔으로써 각각의 기능으로 별도의 논리적/물리적 장치로 운영할 수 있게된다.
프레젠테이션 계층 (Presentation Tier)
사용자가 직접 마주하게 되는 계층이다. 따라서 주로 사용자 인터페이스(인터넷 브라우저 등)를 지원하며 이 계층은 GUI 또는 프론트엔드(front-end) 라고도 부른다. 그러므로 이 계층에서는 사용자 인터페이스와 관계없는 데이터를 처리하는 로직은 포함하지 않는다. 주로 웹 서버를 예시로 들 수 있고, HTML, Javascript, CSS 등이 이 계층에 해당 된다.
[특징]
- 사용자 인터페이스 제공
- Front-end, 주로 웹서버 배치
- HTML, javascript, CSS, image
어플리케이션 계층 (Application Tier)
이 계층에서는 (프레젠테이션 계층) 요청되는 정보를 어떠한 규칙을 바탕으로 처리하고 가공하는 것들을 담당한다. (동적인 데이터 제공!) 비즈니스 로직 계층 또는 트랜잭션 계층 이라고도 한다. 첫 번째 계층에서 이 계층을 바라볼 때에는 서버처럼 동작하고(응답), 세 번째 계층의 프로그램에 대해서는 마치 클라이언트처럼 행동한다.(요청)
따라서 이 계층은 미들웨어(Middleware) 또는 백엔드(back-end)라고도 불린다. 이 계층에서는 프레젠테이션코드 (예를 들면 HTML, CSS)나 데이터 관리를 위한 코드는 포함하지 않는다. 주로 PHP, Java 등이 이 계층에 해당한다.
[특징]
- 동적 데이터 제공 (Middleware, Back-end)
- 어플리케이션 서버 (WAS서버)
- Java EE, ASP.NET, PHP 등
데이터 계층 (Data Tier)
데이터 계층은 데이터베이스와 데이터베이스에 접근하여 데이터를 읽거나 쓰는 것을 관리하는 것을 포함한다.
주로 DBMS (Database Management System)이 이 계층에 해당된다. 데이터 계층 또한 백엔드(back-end)라고도 부른다. 주로 MySQL, MongoDB 등이 이 계층에 해당된다.
[특징]
- 데이터베이스 영역
- DB 또는 File System 접근 및 관리
- MySQL, Oracle, MS-SQL 등
BUT!
3계층 구조의 장점 / 단점
장점
> 각 계층이 분리되어 있어 업무 분담이 가능해지므로 업무 효율성이 증가할 수 있다.
> 여러 대의 서버로 나누어 각 계층이 동작하므로 서버의 부하를 줄여줄 수도 있으며, 경우에 따라 합리적인 스케일업(서버의 성능 업그레이드)이 가능하다.
단점
> 1계층으로만 사용하는 것 대비 관리가 더 필요하고, 장애가 발생하는 포인트가 더 늘어날 수 있다는 점을 생각해두어야 한다.
> 위 사항으로 인해 비용이 그만큼 많이 발생하게 되므로 서비스 규모 및 사용자 증가에 따라 계층 구조를 설계 및 고려해야 한다.
'Spring' 카테고리의 다른 글
Spring MVC 패턴구조 및 구동원리 (0) | 2022.12.19 |
---|---|
Spring 요청처리 내부구조 (0) | 2022.12.19 |
HttpServletResponse 사용법 + 응답 데이터 정리 / Framework없이 순수 Java로 web MVC 구현해보기 (0) | 2022.12.17 |
HTTP 요청 데이터 정리 / Framework없이 순수 Java로 web MVC 구현해보기 (0) | 2022.12.16 |
핸들러 매핑 , 핸들러 어뎁터 정리 (0) | 2022.12.09 |
댓글