2 tier와 3 tier는 네트워크 아키텍처를 나타내는 용어로, 클라이언트와 서버 간의 물리적 또는 소프트웨어적인 구분을 의미합니다.
2 tier: 클라이언트와 데이터베이스 서버로 구성된 아키텍처
로, 클라이언트가 사용자 인터페이스와 비즈니스 로직을 담당하고 데이터베이스 서버가 데이터를 저장하고 관리합니다. 클라이언트가 직접 데이터베이스에 쿼리를 전송하고 결과를 받습니다. 이러한 아키텍처는 구현과 유지보수가 간단하지만, 클라이언트 수가 많아지면 네트워크 부하와 보안 문제가 발생할 수 있습니다.
3 tier: 클라이언트, 어플리케이션 서버, 데이터베이스 서버로 구성된 아키텍처
로, 각 계층별로 물리적으로 독립적입니다. 클라이언트는 사용자 인터페이스만 처리하고 어플리케이션 서버가 비즈니스 로직과 데이터 가공을 담당합니다. 어플리케이션 서버가 데이터베이스에 쿼리를 요청하고 결과를 받아서 클라이언트에게 전달합니다. 이러한 아키텍처는 확장성과 보안성이 높지만, 구현과 유지보수가 복잡할 수 있습니다.
서버는 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템이나 프로그램입니다. 서버는 웹 서버, 애플리케이션 서버, 프록시 서버 등 다양한 종류가 있습니다. 서버는 데이터를 저장하고 앱과 웹 사이트를 구동하는 데 특화되어 있습니다.
3 tier 웹 어플리케이션은 모듈식 클라이언트-서버 아키텍처로서 프레젠테이션 계층, 애플리케이션 계층, 데이터 계층으로 구성되는 아키텍처입니다. 데이터 계층은 정보를 저장하고 관리하고, 애플리케이션 계층은 로직을 처리하고, 프레젠테이션 계층은 그래픽 사용자 인터페이스(GUI)로서 다른 두 계층과 통신하는 역할을 합니다.
3 tier 웹 어플리케이션의 구성방식은 다음과 같습니다. 프레젠테이션 계층은 웹 브라우저나 모바일 앱과 같은 클라이언트 쪽에서 실행되며 사용자의 입력과 출력을 담당합니다. 애플리케이션 계층은 웹 서버나 WAS와 같은 서버 쪽에서 실행되며 비즈니스 로직을 수행하고 데이터베이스와 통신합니다. 데이터 계층은 DBMS와 같은 서버 쪽에서 실행되며 데이터를 저장하고 조회하고 수정합니다.