3계층 아키텍처(Three Tier Architecture)란?
- 어플리케이션을 프레젠테이션(사용자 인터페이스), 데이터가 처리되는 어플리케이션 계층, 데이터가 정장 및 관리되는 데이터 계층이라는 3개의 논리적이고 1개의 무리적 컴퓨터 계층으로 구성하는 소프트웨어 어플리케이션 아키텍처
- Client는 프레젠테이션 tier, Server는 어플리케이션 tier, Database는 Data tier라고도 한다.
장점
- 각 계층이 자체 인프라를 가지고 실행된다
- 각 계층의 별도의 개발팀에 의해 동시에 개발이 가능하다
- 다른 계층에 영향을 미치지 않고 업데이트나 확장이 가능하다
- 빠른 개발이 가능하다
- 향상된 확장성, 안정성 및 보안을 제공한다
단점
- 2계층 클라이언트-서버 컴퓨팅 모델보다 더 복잡하다
- 별도의 프록시 서버가 필요할 수도 있다
- 별도의 프록시 서버를 사용하면 네트워크 트래픽이 증가한다
Client(Presentation Tire)
- 제일 위에 있는 계층
- 어플리케이션 레벨이자 유저의 인터페이스(외부와의 통신을 담당한다)
- Desktop Application 또는 GUI가 해당된다
- 구성요소
Application Server(Web Server)
- Logic이나 미들웨어 레벨 티어
- 어플리케이션의 중심
- 정보가 처리되는 부분
- 비즈니스 로직이나 규칙이라고도 한다
- Data tier의 저장, 수정, 삭제가 이루어 진다
- Presentation Tire와 Data Tier 사이를 연결한다
- 구성요소
- Python, Java, Peral, PHP, Ruby 등등
Database Server
- Database tier 또는 backend라고도 한다
- 데이터가 저장되고 관리된다
- Presentation Tire와 Data Tier와 통신한다(Client와 바로 소통되지 않는다. Application Server를 통해 통신한다)
- 구성요소
- RDBMS : MySQL, MariaDB, Oracle, DB2, Microsoft SQL server, PostgresQL 등등
- DBMS : Cassandra, CouchDB, MongoDB 등등
DBMS에서 3계층 아키텍처의 장단점
쉽게 풀어쓴 Nest.JS - Provider
3계층 아키텍처란?
Three Tier Architecture