본문 바로가기
IT 기본지식

3-Tier Architecture 정의 및 구성방식

by 내기록 2022. 2. 13.
반응형

목차 LIST

     

     

    3-Tier Architecture of Web Application 이란?

     

    "3-tier 아키텍처는 다중 계층 아키텍처에서 가장 널리 사용되며
    단일 프레젠테이션 계층, 로직 계층 및 데이터 계층으로 구성된다."

     

    3-tier architecture는 모든 계층이 3개의 논리 계층으로 분할되는 아키텍처 패턴이다.

     

    https://docs.aws.amazon.com/ko_kr/whitepapers/latest/serverless-multi-tier-architectures-api-gateway-lambda/three-tier-architecture-overview.html

     

    첫 번째 계층

    Presentation Tier(Client) - 일반 사용자가 직접 액세스 할 수 있는 프레젠테이션 계층

    콘텐츠를 HTML/JS/CSS 형식으로 브라우저에 전송하는 계층(React, ..)

     

    모든 HTTPS 지원 클라이언트 또는 장치와 통신할 수 있으므로 프레젠테이션 계층은 다양한 형식(데스크톱 어플리케이션, 모바일 앱, 웹페이지, IoT 장치 등)을 유연하게 수행 할 수 있다.

     

    두 번째 계층

    Logic Tier(Application) - 비즈니스 로직이 실행되는 비즈니스 로직 계층

    예) 어플리케이션 서버를 사용하고 어플리케이션에 대한 비즈니스 논리를 처리하는 계층(C#,Java,C++,Python,..)

     

    세 번째 계층

    Data Tier(Database) - 데이터 스토리지 계층

    응용 프로그램 데이터에 대한 액세스를 제공하는 데이터베이스 관리 시스템(MySQL, Postgres,..)

     

     

    * Tier : 컴포넌트들의 물리적인 분리 

    * Layer : 컴포넌트들의 논리적인 분리

     

    이 아키텍처는 프론트엔드, 백엔드 그리고 각 계층에 특정 작업이 있으며 독립적으로 관리되는 데이터베이스같은 클라이언트-서버 어플리케이션을 실행하는데 사용된다.

     

     

    https://medium.com/@codewithniraj/the-typical-3-tier-architecture-of-web-application-in-aws-f2f9d662fdfe

     

    예시

    웹 어플리케이션을 사용하여 해당 지역에서 영화 시간을 찾고 있다고 가정하면

    1) 프레젠테이션 계층에는 동영상을 보려는 날짜 등을 선택하는 웹 페이지 표시

    2) 입력한 정보는 Application layer로 전달되고 조회 쿼리를 생성해서 Database layer로 전달

    3) Database layer는 쿼리를 실행하고 결과를 Application layer 계층으로 리턴

    4) Application layer는 결과를 웹 페이지에 구성

    5) 페이지가 브라우저로 다시 전송되고 Presentation layer가 laptop 또는 타 장치에 페이지를 표시한다.

    https://www.logianalytics.com/5-benefits-3-tier-architecture/

     

    이점

    어플리케이션을 3개의 계층으로 분리할 경우 다음과 같은 5가지 이점이 있다.

    1. 어플리케이션의 다른 영역에 영향을 주지 않고 한 계층의 기술 스택을 업데이트할 수 있다.
    2. 서로 다른 개발 팀이 각자의 전문 분야에 대해 작업할 수 있다 (한 영역에서 심층적인 역량)
    3. 어플리케이션을 스케일업 및 스케일아웃 할 수 있다
      예) 별도의 백엔드 계층을 통해 다양한 데이터베이스에 구현할 수 있으며, 여러 웹 서버를 추가하여 확장할 수 있다
    4. 서비스나 서버의 신뢰성과 독립성을 높여준다.
    5. 프레젠테이션 코드와 비즈니스 로직을 별도로 관리하여 비즈니스 로직의 변경 등이 프레젠테이션 계층에 영향을 미치지 않는다.

     

    같이 보면 좋은 1-tier, 2-tier, N-tier architecture

    1-Tier Architecture

    https://www.perfmatrix.com/software-architecture-and-its-types/

    단일 계층 아키텍처는 동일한 tier, 즉 클라이언트 tier에 프레젠테이션 layer, 비즈니스 layer 및 데이터 layer가 있다.

    이름에서 알 수 있듯이 모든 계층과 구성요소를 동일한 시스템에서 사용할 수 있다.

    예로는 MP3 플레이어, MS Office 등이 있다. 데이터를 저장하기 위해(데이터 계층의 기능으로) 로컬 시스템 또는 공유 드라이버를 사용한다.

     

    2-Tier Architecture

    https://www.perfmatrix.com/software-architecture-and-its-types/

    클라이언트 tier에서 프레젠테이션 layer와 어플리케이션 layer를 모두 처리하고 서버는 데이터베이스 layer를 처리한다.

    2계층 아키텍처는 '클라이언트-서버 어플리케이션'이라고도 한다.

    2계층 아키텍처에서 통신은 클라이언트와 서버 간에 이루어지는데 클라이언트 시스템은 요청을 서버 시스템으로 전송하고 서버 시스템은 요청을 처리한 후 응답을 클라이언트 시스템으로 다시 보낸다.

     

     

    3-Tier Architecture

    https://www.perfmatrix.com/software-architecture-and-its-types/

    세 개의 주요 층이 모두 분리되어 있다. 프레젠테이션layer는 클라이언트tier에 있고 어플리케이션 layer는 미들웨어 역할을 하며 비즈니스 Tier에 있다. 그리고 데이터layer는 데이터tier에서 사용 할 수 있다. 매우 일반적인 아키텍처이다~

     

     

    N-Tier Architecture

    https://www.perfmatrix.com/software-architecture-and-its-types/

    분산 아키텍처 또는 다중 계층 아키텍처라고도 한다. 3-tier와 유사하지만 비즈니스 로직을 분산하기 위해 어플리케이션 서버의 수가 증가하여 개별 계층으로 표시된다.

     

    같이 보면 좋을 미들웨어

    좋은 블로그 글 추천!

     

    [인프라 뿌시기 #1] 미들웨어, 개념을 알아보자

    미들웨어는 양 쪽을 연결하여 데이터를 주고 받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어, 네트워크를 통해서 연결된 여러 개의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를

    velog.io

     

     

    References

    https://medium.com/@codewithniraj/the-typical-3-tier-architecture-of-web-application-in-aws-f2f9d662fdfe

    https://prinha.tistory.com/entry/WEB-3-Tier-Architecture-3%EA%B3%84%EC%B8%B5-%EA%B5%AC%EC%A1%B0

    https://bkjeon1614.tistory.com/27

    https://docs.aws.amazon.com/ko_kr/whitepapers/latest/serverless-multi-tier-architectures-api-gateway-lambda/three-tier-architecture-overview.html

    https://www.perfmatrix.com/software-architecture-and-its-types/

    반응형

    댓글