기술블로그

3계층 구조(3-Tier Architecture)

ignuy 2023. 6. 24.
3 계층(3-tier) 구조란, 플랫폼을 3 계층으로 나누어 별도의 논리적, 물리적 장치에 구축하고 운영하는 형태를 의미한다.

웹 서버 운영을 예를 들자면, 서버 한 대에 한꺼번에 모든 기능들을 몰아넣고 구축하는 것이 아니라 데이터를 저장하고 읽는 데이터 계층, 데이터를 처리하는 어플리케이션 계층, 그리고 데이터를 표현해 주는 클라이언트(혹은 프레젠테이션) 계층과 같이 3개의 계층으로 나누어 각각의 기능을 별도의 논리적, 물리적 장치에 개발, 운영하는 형태이다. 프로젝트의 상황에 맞게 2개, 4개의 계층을 활용할 수도 있고 이 경우엔 다층 구조(Multi-tier Architecture 또는 n-tier Architecture)라고도 표현할 수 있다.

네이버 D2에서 제공하는 웹 서비스의 일반적인 3계층 분산 처리 모델 모식도

인프라 관점에서 3 Tier 구조는 클라이언트로부터 request를 받고 response를 보내는 Web Server와 비즈니스 로직을 수행하는 Application Server(AP), 데이터를 저장하고 조회하는 Database Server로 구성되는 것이 일반적이다.

조금더 세부적으로 설명하자면 아래와 같다.

  • Web Server
    • 클라이언트가 보려고 하는 GUI, 인터페이스, 웹 화면등을 제공해 주는 서버이다. 우리가 흔히 사용하는 HTTP 통신을 토아형 인터넷을 사용할 때 우리가 보는 브라우저 화면 및 기능 요소들을 보여주는 계층이라고 보면 된다.
  • AP 계층
    • AP 계층은 웹 서버로 전달받은 컴포넌트와 명령에 따라 실질적인 비즈니스 로직을 수행하는 계층이다. 이커머스를 통해서 상품 주문, 결제 등을 생각한다면 웹서버에서 전달받은 구매 항목과 사용자 정보를 통해 실질적인 결제 로직을 실행하는 단계이다. 뿐만 아니라 뒷단의 DB에 업무를 넘기거나 참조를 하는 기능도 함께한다. 실무에서는 보통 Web Application Server를 줄여 WAS 서버라고 부른다.
  • Datebase 계층
    • AP 계층에서 사용자의 요청을 처리할 때, 데이터 기입이나 변경 등이 필요한 상황에서 이에 대한 작업을 지원하고 사용자들의 데이터들을 보관하는 계층이다.

😊3-Tier Architecture의 장점

각 계층에 대해 효과적인 업무 분담이 가능하다. 또한 서로 다른 물리적 혹은 논리적 서버를 사용하므로 이중화 또는 백업 구성 등으로 서비스 장애에 대한 리스크를 완화시킬 수 있다. 여러 대의 서버로 나누어서 각 계층이 동작하므로 서버의 부하를 줄일 수 있다. 경우에 따라 부하가 발생하는 특정 계층의 서버에 대해서만 합리적인 스케일업을 고려할 수 있다.

→ 비즈니스 로직은 간단한데 web Server가 클라이언트와 통신을 자주하는 형태의 서비스는 web server에만 스케일업을 하면 서비스 성능을 효과적으로 향상할 수 있다.

😕3-Tier Architecture의 단점

1계층으로만 사용하는 것 대비 관리 포인트가 많이 늘어나므로 인력이 상대적으로 많이 필요하다. 또한 장애가 발생하는 포인트 또한 함께 늘어날 수 있다.

댓글