3 Tier & Layer Architecture

YEON·2022년 4월 17일
1

서버를 설계하기 이전에 아키텍처에 대해 알아보고, 어떤 아키텍처로 설계하면 좋을지 생각해보자.

  • 3 Tier Architecture
    3 계층 구조 : 클라이언트, 어플리케이션, 데이터 계층에 따른 서버를 분리하여 개발

  • 3 Layer Architecture
    3 레이어 구조 : Controller, Service, DAO 로 분리하여 개발



'계층' 이란?

코드의 물리적 분리(구조) ( 분리시, 동일한 서버(컴퓨터)안에서 위치 할 수 없음)
다른 서버에 상주 함으로, 직렬화된 개체로서 값으로만 계층과 통신

1 계층 구조

하나의 서버(컴퓨터)에서 3가지의 다른 기능을 함께 구현한 방식. (프론트엔드, 백엔드, DB 가 모두 구현해져있는 형태로 클라이언트 계층(Client Tier)으로 1계층 구조가 완성된다.)

2 계층 구조

클라이언트 계층과 데이터 계층의 서버(컴퓨터)로 구분하여, 서로의 계층에서 변경이 이루어지더라도 영향을 받지 않는다.

3 계층 구조

클라이언트 계층Client Tier (웹 서버, 프론트엔드), 어플리케이션 계층Application Tier (비즈니스 로직, 데이터 액세스 로직), 데이터 계층Data Tier (DBMS, 쿼리 실행) 의 서버(컴퓨터)들을 모두 물리적으로 구분하여 구성한 경우로, 각각의 계층에서 변화가 일어나더라도 서로 영향을 받지 않도 독립적으로 운영된다.

비즈니스 로직을 완전히 분리하여 데이터베이스 시스템과 클라이언트 사이에 배치한 클라이어느 서버 시스템의 일종이다. 일반적으로 3-tier 구조가 널리 쓰인다.

3 계층 구조(3 Tier Architecture) 의 장점

  • 각 계층을 담당하는 팀들을 구성하여 업무 분담이 가능함으로 업무 효율성 증가,
  • 서로 다른 물리적인 서버들을 구성함으로 리스크 완화,
  • 여러 대의 서버로 나누어 각 계층이 동작하므로 서버의 부하 감소 및 유지보수 용이

(+) 단점 : 1계층으로만 관리하는 것에 비하여는 비용이 많이 발생 할 수 있으므로 서비스 규모 및 사용자 증가에 따라서 계층 구조를 설계 및 고려해야 한다.




'레이어' 란?

코드의 논리적 분리(구조) ( 동일한 서버(컴퓨터)안에 위치해야 서로 통신이 가능)
값과 참조를 통하여 다른 계층과 통신 할 수 있음.

3 레이어 구조

Controller - Service - Data Access Layer 구조

  • Controller 에서 클라이언트 요청을 받고 서비스에 전달하면,
  • Service 는 비즈니스 로직을 수행하는데 이때 DAO 를 통해 값을 얻어오고,
  • Data Access Layer 는 이때 쿼리를 수행하여 DB 와 상호작용한다.

3 레이어 구조(3 Layer Architecture)의 장점

  • 가독성과 재사용성을 향상시키고
  • 다른 레이어의 변경으로 인한 애플리케이션 변경을 최소화 할 수 있다.







[참조]
http://dawoonjeong.com/mvc-vs-3tier/
https://freefeast.info/tutorials-for-beginners/dotnet-tutorials/3-tier-vs-3-layer-architecture-difference-between-3-layer-and-3-tier-architecture/
https://www.stevenjlee.net/2020/05/08/%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-3%EA%B3%84%EC%B8%B5-%EA%B5%AC%EC%A1%B0-3-tier-architecture/

profile
- 👩🏻‍💻

0개의 댓글