[One-Day Tech Talk] 3-Tier Architecture

황제연·2025년 2월 27일
0

CS학습

목록 보기
17/193
post-thumbnail

서론

지난 시간에 이어 이번에는 3-Tier 아키텍처에 대해 정리했습니다

3-Tier 아키텍처

3-Tier 아키텍처에는 2-Tier 아키텍처의 사용자와 서버 사이에 추가적인 계층이 존재하는 구조입니다

2-Tier 아키텍처는 클라이언트 애플리케이션이 데이터베이스와 직접적으로 연결됩니다
하지만 3-Tier 아키텍처에서는 클라이언트와 데이터베이스 사이에 Application Layer가 추가되며,
이 계층이 매개체 역할을 수행합니다.
따라서 클라이언트는 데이터베이스와 직접 통신하지 않습니다

3-Tier 아키텍처의 구성

3-Tier 아키텍처는 다음 3가지 계층으로 구성됩니다

  • Presentation Layer (클라이언트 UI)
  • Application Layer (애플리케이션 Server)
  • Database Layer(데이터베이스 Server)

Presentation Layer와 Database는 2-Tier 아키텍처와 동일한 개념이며,
Application Layer가 추가된 것이 3-Tier 아키텍처의 특징입니다

3-Tier 아키텍처의 장점

3-Tier 아키텍처는 대규모 웹 애플리케이션에서 널리 사용됩니다.
예를 들어 JSP와 Spring MVC 패턴이 대표적인 3-Tier 아키텍처를 따르는 예시입니다

보안 강화

2-Tier 아키텍처에서는 클라이언트가 데이터베이스에 직접 접근하므로 보안 취약점이 존재합니다
하지만 3-Tier 아키텍처에서는 Application Layer를 통해서만 접근할 수 있어 보안이 강화됩니다

데이터 무결성 유지

Application Layer가 중간 계층으로 작용해, 사용자의 직접적인 데이터 접근을 방지하므로
데이터 손상을 예방할 수 있습니다
이것이 데이터 무결성을 유지하는 결정적인 역할을 합니다

데이터 무결성이란?
데이터의 정확성, 일관성, 유효성을 유지하는 것을 의미합니다

확장성 향상

2-Tier 아키텍처에서는 서버 한 대에 여러 클라이언트가 직접 연결되는 구조이므로
트래픽 증가 시, 확장성이 제한됩니다
반면, 3-Tier 아키텍처에서는 Application Layer를 여러 대의 서버로 분산 배포할 수 있어 확장성이 뛰어납니다

3-Tier 아키텍처의 단점

구조의 복잡성 증가

2-Tier 아키텍처에 비해 계층이 하나 더 추가되었기 때문에 시스템의 복잡성이 증가합니다.
또한 계층의 증가로 개발 및 유지보수의 부담이 증가합니다

통신 비용 증가

Application Layer가 추가되면서 데이터 요청이 여러 계층을 거쳐야 하므로,
2-Tier 아키텍처보다 통신 비용이 증가할 수 있습니다

둘중 어떤 것을 많이 사용할까?

그렇다면 2-Tier 아키텍처와 3-Tier 아키텍처 중 어떤 것이 더 많이 사용될까요?

현실적으로는 대부분 3-Tier 아키텍처가 사용됩니다
과거에는 내부 관리 시스템이나 Swing 기반 데스크톱 앱에서 2-Tier 아키텍처가 사용되었지만,
최근에는 거의 모든 웹, 앱에서 3-Tier 이상의 구조를 채택하고 있습니다
특히, 클라우드 환경이 보편화되면서 3-Tier 아키텍처는 사실상 기본 선택지가 되었습니다

따라서 3-Tier 아키텍처를 더 많이 사용합니다

결론

  • 3-Tier 아키텍처는 2-tier 아키텍처에 Application Layer가 추가된 구조입니다
  • Application Layer는 Presentation Layer와 Database Layer사이에서 매개체 역할을 수행합니다
  • 3-Tier 아키텍처는 보안과 데이터 무결성을 강화할 수 있고, 서버 분산 배포를 통해 확장성을 확보할 수 있습니다
  • 하지만 계층이 추가되면서 시스템이 복잡해지고 통신 비용이 증가하는 단점이 있습니다

참고

profile
Software Developer

0개의 댓글