WEB
3계층 티어
2025. 1. 21. 10:36

3계층 티어(3-tier architecture)는 소프트웨어 애플리케이션의 아키텍처 모델 중 하나로, 애플리케이션을 세 가지 주요 구성 요소로 분리하여 효율적으로 관리하고 유지보수할 수 있도록 도와줍니다. 이 모델은 프레젠테이션 계층, 비즈니스 계층, 데이터 계층으로 나뉩니다. 각 계층은 독립적으로 기능하며, 특정 역할을 담당합니다.

1. 프레젠테이션 계층 (Presentation Layer)

  • 역할: 사용자와 상호작용하는 부분입니다. 사용자의 입력을 받고, 데이터를 시각적으로 표시하는 역할을 합니다.
  • 기능:
    • 사용자 인터페이스(UI)와 관련된 모든 작업을 담당합니다.
    • 브라우저, 모바일 애플리케이션, 데스크탑 애플리케이션 등 클라이언트 측에서 실행되는 코드가 이 계층에 속합니다.
    • 요청을 받아 비즈니스 로직 계층에 전달하고, 비즈니스 로직의 처리 결과를 사용자에게 표시합니다.
  • 예시: 웹 애플리케이션의 HTML, CSS, JavaScript, 모바일 앱의 UI, Angular, React, Vue.js와 같은 프론트엔드 프레임워크.

2. 비즈니스 계층 (Business Layer)

  • 역할: 애플리케이션의 핵심 비즈니스 로직을 처리합니다. 사용자 요청을 처리하고, 데이터를 처리하며, 로직을 실행하는 계층입니다.
  • 기능:
    • 비즈니스 로직을 수행하는 데 필요한 계산이나 데이터를 처리합니다.
    • 유효성 검사, 트랜잭션 관리, 승인 절차 등의 비즈니스 규칙을 구현합니다.
    • 프레젠테이션 계층에서 요청을 받아 데이터 계층과 상호작용하고, 그 결과를 반환합니다.
  • 예시: 서버 측 애플리케이션 코드, Spring, Node.js, Django의 백엔드 로직, API 서버 등.

3. 데이터 계층 (Data Layer)

  • 역할: 데이터의 저장과 관리가 이루어지는 부분으로, 애플리케이션의 데이터를 처리하고 저장하는 역할을 합니다.
  • 기능:
    • 데이터베이스와의 상호작용을 담당합니다. 데이터의 CRUD(Create, Read, Update, Delete) 작업을 처리합니다.
    • 파일 시스템에 저장된 데이터나 외부 시스템과의 통신을 처리하기도 합니다.
    • 비즈니스 계층의 요청에 따라 필요한 데이터를 제공하고, 데이터를 관리합니다.
  • 예시: 관계형 데이터베이스(MySQL, PostgreSQL), NoSQL 데이터베이스(MongoDB, Cassandra), 파일 시스템, RESTful API 데이터 소스 등.

3계층 티어 아키텍처의 장점

  • 유지보수 용이: 각 계층이 독립적으로 존재하여, 특정 계층을 변경할 때 다른 계층에 미치는 영향을 최소화할 수 있습니다.
  • 확장성: 각 계층을 별도로 확장할 수 있어, 예를 들어 비즈니스 로직을 더 강력하게 만들거나 데이터베이스 성능을 향상시키는 것이 가능합니다.
  • 보안: 데이터 계층은 외부에서 직접 접근할 수 없고, 비즈니스 계층과 프레젠테이션 계층을 통해서만 데이터에 접근할 수 있어 보안성이 높습니다.
  • 재사용성: 비즈니스 로직을 다른 애플리케이션에서 재사용할 수 있습니다. 예를 들어, 웹 애플리케이션과 모바일 애플리케이션에서 같은 비즈니스 로직을 공유할 수 있습니다.

3계층 티어 아키텍처의 단점

  • 복잡성: 각 계층을 독립적으로 관리해야 하기 때문에 시스템 구조가 복잡해질 수 있습니다.
  • 성능 문제: 계층 간의 상호작용이 많아지면, 각 계층을 거칠 때마다 네트워크 호출이 이루어지므로 성능 저하가 있을 수 있습니다.
  • 비용: 각 계층을 별도로 관리하고 배포해야 하므로, 인프라와 유지보수 비용이 증가할 수 있습니다.

예시: 3계층 아키텍처의 흐름

  1. 사용자가 프레젠테이션 계층(웹 브라우저 또는 모바일 앱)을 통해 애플리케이션에 요청을 보냅니다.
  2. 프레젠테이션 계층은 이 요청을 비즈니스 계층에 전달하고, 필요한 비즈니스 로직을 처리합니다.
  3. 비즈니스 계층은 데이터를 처리하거나 데이터 계층에 필요한 데이터를 요청합니다.
  4. 데이터 계층은 데이터를 제공하고, 비즈니스 계층은 이를 바탕으로 최종 결과를 반환합니다.
  5. 프레젠테이션 계층은 사용자가 볼 수 있도록 결과를 표시합니다.

결론

3계층 아키텍처는 애플리케이션을 세 개의 주요 계층으로 나누어 각 계층이 독립적으로 동작하도록 하여 개발, 유지보수, 확장성 등을 용이하게 만듭니다. 이러한 구조는 대규모 애플리케이션이나 기업용 시스템에서 자주 사용되며, 각각의 계층을 효율적으로 관리하고 최적화할 수 있는 좋은 방법입니다.

 

 

 

'WEB' 카테고리의 다른 글

Http 동작 방식  (0) 2025.05.27
SOP  (0) 2025.02.18
SQL SESSION 메서드  (0) 2024.12.02
SQL Session Factory  (0) 2024.12.02
이미지 파일저장  (0) 2024.11.21