3-Tier 아키텍처
소프트웨어 애플리케이션을 3개의 계층으로 나누어 구성하는 구조
Presentation Tier, Application Tier, Data Tier로 나뉜다.
각각의 계층은 독립적으로 설계되고 실행되어, 응용 프로그램의 유지보수성과 확장성을 높인다.
3-Tier 아키텍처 장점
1. 유지보수성 향상
계층별로 독립되어 특정 계층만 수정해도 전체 시스템에 영향 X
2. 확장성 높음
각 계층이 독립적으로 확장 가능
→ 대규모 애플리케이션에 적합
3. 보안 강화
데이터와 애플리케이션 로직이 분리되어, 민감한 데이터를 안전하게 관리 가능
4. 재사용성
각 계층이 독립적이므로 다른 애플리케이션에서 재사용 가능
3-Tier 아키텍처 단점
1. 복잡성 증가
구조와 구현이 복잡해질 수 있다.
2. 응답 속도 지연
클라이언트와 서버 간 통신이 많아지면서 응답 시간이 늘어날 수 있다.
3. 비용 증가
각 계층에 필요한 서버와 인프라를 구축해야 해서 초기 비용이 높다.
1-Tier 아키텍처
모든 기능이 하나의 단일 시스템(보통 클라이언트 시스템)에서 실행되는 구조
ex. 단일 데스크톱 애플리케이션 (엑셀, 로컬 데이터베이스 기반 프로그램 등)
1-Tier 아키텍처 장점
1. 간단한 구조
설계와 구현이 단순하며, 작은 규모의 애플리케이션에 적합
2. 빠른 실행
클라이언트가 모든 작업을 로컬에서 처리하므로 네트워크 지연 X
3. 저렴한 비용
네트워크 인프라나 별도 서버가 필요하지 않아 초기 비용 Down
1-Tier 아키텍처 단점
1. 확장성 부족
데이터와 로직이 단일 시스템에 있어 확장이 어렵다.
2. 유지보수 어려움
시스템이 복잡해지면 유지보수 및 업데이트가 어렵다.
3. 보안 취약성
모든 데이터를 로컬에 저장하므로 보안 관리가 어려움.
2-Tier 아키텍처
클라이언트와 서버가 각각의 역할을 담당한다.
- 클라이언트: 사용자 인터페이스와 일부 애플리케이션 로직
- 서버: 데이터베이스 관리 및 일부 애플리케이션 로직
ex. 클라이언트-서버 모델의 ERP 시스템, 데이터베이스 연결형 애플리케이션
2-Tier 아키텍처 장점
1. 데이터 관리 개선
데이터베이스가 서버에 중앙 집중화되어 데이터 무결성 및 관리 용이
2. 빠른 응답
클라이언트와 서버 간의 직접 통신으로 데이터 전송이 효율적
3. 보안 강화
서버에 데이터가 저장되므로 로컬보다 보안성이 높다.
2-Tier 아키텍처 단점
1. 애플리케이션 로직 중복
클라이언트와 서버가 로직을 나누어 처리하므로 중복 발생 가능성 O
2. 확장성 제약
클라이언트-서버 간의 연결이 증가하면 서버에 과부하 가능성 Up
3. 유지보수 어려움
클라이언트와 서버 모두에서 업데이트가 필요할 수 있다.
대규모 애플리케이션의 경우 2-Tier보다 3-Tier를 사용하는 것이 더 좋다고 한다.
2-Tier는 내부 시스템이나 소규모 프로젝트에 사용되는데, 요구사항이 많아질수록 3-Tier로 전환하기도 한다고 한다.
'개발 > Database' 카테고리의 다른 글
[Database] ORM과 Prisma (1) | 2024.11.25 |
---|