3 Tier - Architecture

5w31892p·2022년 11월 28일
0

Java

목록 보기
10/17

📜 3Tier-Architecture (3계층 구조) - 참고자료

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

서버 한대가 모든 기능 구축하는 것이 아니라 각 3계층으로 나눠 각 기능으로 운영하는 방식

client - 데이터 표현 (프리젠테이션)
application - 데이터 처리
data - 데이터 저장 및 읽기

:: 프레젠테이션 계층 (presentation tier)

  • 사용자 직접 마주하는 계층
  • 주로 사용자 인터페이스 지원
  • GUI or 프론트엔트
  • 사용자 인터페이스와 관계없이 데이터 처리하는 로직은 포함 안함
  • HTML, CSS, JavaScript 등이 이 계층에 해당

:: 어플리케이션 계층 (application tier)

  • presentation에서 요청되는 정보를 어떠한 규칙을 바탕으로 처리하고 가공하는 것을 담당
  • 즉, 동적데이터 제공
  • 비즈니스로직 계층 or 트랜잭션 계층이라고도 함
  • presentation에서 볼 때에는 서버처럼 동작 (응답)
  • data에서 볼 때에는 클라이언처럼 행동(요청)
  • 미들웨어(middleware) or 백엔드
  • presentation의 코드나 데이터 관리를 위한 코드 포함 안함
  • PHP, Java 등이 이 계층에 해당

:: 데이터 계층 (data tier)

  • 데이터베이스와 데이터베이스에 접근하여 데이터를 읽거나 쓰는 것을 관리 하는 것
  • 백엔드
  • MySQL, MongoDB 등이 이 계층에 해당
  • 주로 DBMS(Database Management System)이 이 계층에 해당

1계층 구조

  • 하나의 컴퓨터 또는 서버에서 3가지 기능 함께 구현
  • 따라서 새로운 장비로 변경하고자 할 때 모든 구성 함께 변경

2계층 구조

  • 클라이언트와 데이터를 각 구분하여 글라이언트에서의 변경 or 데이터베이스의 변경 시 서로 영향 X

3계층 구조

  • 클라이언트, 어플리케이션, 데이터 모두 나누어 구성
  • 각 계층 변화 일어나도 서로 영향 X
  • 독립적으로 운영

:: 3 Tier 장,단점

장점

  • 각 계층 분리되어 있어 업무 분담 가능해지므로 업무 효율성 증가
  • 여러대 서버로 나눠 각 계층이 동작하므로 서버 부하 줄일 수 있음
  • 경우에 따라 합리적인 스케일업 (서버 성능 업그레이드) 가능

단점

  • 1계층으로만 사용하는 것 대비 관리가 더 필요
  • 장애 발생하는 포인트가 더 늘어날 수 있음
  • 그러므로 비용 그만큼 많이 발생하게 되므로 서비스 및 사용자 증가에 따라 계층 구조 설계 및 고려해야함

0개의 댓글