소프트웨어 아키텍처 - 18(Multi-tiers Architecture Style)

박승현·2023년 10월 15일
0

아키텍처

목록 보기
18/30
post-thumbnail

Multi-tiers Architecture Style

One-tire 아키텍처

  • 메인프레임 기반 및 덤(dumb) 터미널 상호 작용을 나타냄
    • 메인프레임 기반 및 덤 터미널 상호 작용
      • 메인프레임 컴퓨터와 간단한 터미널 간의 상호작용을 나타냄, 클라이언트 역할을 하는 덤 터미널이 주로 키보드와 화면만을 가짐
    • 주요 관심사
      • CPU및 시스템의 효율적인 사용
      • 메인프레임 시스템의 리소스를 효율적으로 사용 하는 것
    • 단일 티어로 통합된 정보 시스템
      • 응용 프로그램 로직 및 리소스 관리 계층을 단일 티어로 통합, 이는 시스템의 모든 구성 요소가 메인프레임 내에 위치하고 모든 처리가 해당 메인프레임에서 이루어지는 방식을 의미
    • 덤 터미널(덤 클라이언트)
      • 클라이언트 역할을 하는 덤 터미널은 주로 입력을 받고 메인프레임에서 처리된 결과를 화면에 표시하는 단순한 장치
    • 프레젠테이션 계층의 전체가 메인프레임에 위치: 이 아키텍처에서는 프레젠테이션 계층의 전체가 메인프레임에 위치하며, 클라이언트에서는 주로 사용자 입력과 출력 표시만 담당

Two-tier 아키텍처

  • 대형 컴퓨터(메인프레임 및 서버) 그룹과 소형 컴퓨터(PC 및 워크 스테이션) 그룹으로 구분
  • 프레젠테이션 계층의 클라이언트와 PC
    • 프레젠테이션 계층은 클라이언트와 PC에서 수행
    • 프레젠테이션 계층은 PC에서 사용 가능한 계산 능력정도를 활용
    • 시스템의 복잡성을 증가 시키지 않고 다양한 목적에 맞게 프레젠테이션 계층을 맞춤화
    • 관리 목적 및 일반 사용자들을 위한 목적으로 사용
  • 응용 프로그램 로직 계층 및 리소스 관리 계층
    • 응용 프로그램 로직 실행 및 리소스 관리
  • Two-tier 정리
  • 클라이언트/서버
    • 클라이언트 : 주로 시각적으로 표현되는 부분과 실제 클라이언트 소프트웨어를 의미, 사용자 인터페이스 담당, 사용자와 상호작용
    • 서버 : 서버는 애플리케이션의 논리적인 부분과 리소스 관리 계층, 클라이언트의 요청을 처리 데이터베이스와 같은 백엔드 시스템과 상호작용
  • 클라이언트의 복잡성에 따라 2가지 유형의 클라이언트로 구분
    • Thin 클라이언트
      • 기능이 제한적인 클라이언트 기능이 적고 가벼움, 이식성이 높고 설치 및 유지 관리가 쉬움 서버에서 주로 데이터 및 작업을 관리 클라이언트는 화면 표시와 입력 처리에 관여
    • fat 클라이언트
      • 다양한 기능을 제공, 클라이언트 디바이스에서 실행되는 코드가 많이 포함되어 있으며 클라이언트 디바이스의 자원을 많이 사용 더 복잡한 작업을 수행 가능하지만 설치와 유지 관리가 복잡

Three-tier 아키텍처

  • 추상 레벨 : 삼계층 아키텍처는 명확한 분리를 기반
    • 프레젠테이션 계층
      • 클라이언트에 위치 사용자 인터페이스와 관련된 역할, 사용자와 상호작용 정보를 시각화
    • 애플리케이션 로직 계층
      • 중간 계층에 위치, 애플리케이션 로직이 실행, 미드루에어를 포함한 추상화와 인프라를 제공, 에플리케이션의 핵심 비즈니스 로직이 이곳에 구현
    • 리소스 관리 계층
      • 서버 리소스 및 데이터베이스와 같은 벡엔드 시스템을 관리, 클라이언트 및 애플리케이션 로직 계층과 상호작용하여 데이터 처리

Application Layering


2-tier vs 3-tier

  • 2-tier
    • app로직이 주로 클라이언트의 사용자 인터페이스 내에 있거나 서버의 데이터베이스 내에 있거나 둘다에 위치할 수 있음
  • 3-tier
    • app로직이 중간계층에 위치
    • 확장가능, 견고하고 유연

3-tier Vertical Distribution


Multi-tiers Architecture Style

  • 개요
    • 프론트엔트 계층
      • 주로 사용자 인터페이스 표현 계층을 의미
      • 사용자와 상호작용, 사용자 인터페이스 담당
    • 중간 계층
      • 비즈니스 로직과 실행을 관리
      • 클라이언트와 백엔드 데이터베이스간의 중개 역할
    • 백엔드 계층
      • 주로 데이터베이스 관리를 처리
      • 데이터의 저장 및 관리를 담당 데이터베이스와 상호작용하여 필요한 데이터 반환
    • 다층 아키텍처는 시스템을 여러 계층으로 분할하여 확장성 유연성 및 유지 보수성을 향상

  • 3-tier
  • 4-tier

멀티 티어 아키텍처 장,단점

  • 장점
    • 중간 계층 추가로 재사용성 및 확장성 향상
    • 비즈니스 변경사항은 중간계층에만 적용
    • 플랫폼 독립적으로 개발가능 특정 공급업체에 의존하지 않음
    • 확장성을 위한 멀티스레딩 지원(병렬처리)
    • 중간 계층이 비즈니스 로직을 처리하므로 클라이언트, 서버간의 트래픽이 줄어 네트워크 효율 향상
    • 서버 신뢰성 및 가용성 향상 : 중간계층이 장애 발생 시 서버를 통해 계속 작동할 수 있음
  • 단점
    • 테스트의 어려움 : 테스트 도구의 부족
    • 시스템에 여러 서버를 추가하는 경우 유지보수가 어려움 : 서버 수의 증가는 시스템이 복잡해지고 유지보수가 어려워짐
profile
KMU SW

0개의 댓글