시스템 아키텍처란, 소프트웨어와 하드웨어 구성요소 간의 상호작용 방식을 정의하는 체계적인 구조이다.
중앙집중형 시스템 아키텍처는 클라이언트-서버 모델을 기반으로 하며, 다중 계층 아키텍처(Multi-tiered Architecture)
를 사용하여 여러 대의 컴퓨터에 분산된 클라이언트-서버 애플리케이션을 구축할 수 있다.
다중 계층 아키텍처는 세 가지 논리적 수준으로 구성되어 있으며, 클라이언트 머신은 사용자 인터페이스 레벨 일부를 구현하는 프로그램만 포함하고, 서버 머신은 처리 및 데이터 레벨을 구현하는 프로그램을 포함한다.
또한, 응용 프로그램 레이어의 프로그램을 여러 대의 컴퓨터에 분산시킬 수 있다.
예를 들어, 클라이언트 머신에는 사용자 인터페이스의 터미널 종속적인 부분만 있고, 나머지 애플리케이션 레이어는 서버 머신에 있으며, 데이터 표시에 대한 원격 제어를 제공하는 경우가 있다.
또한 클라이언트는 인터페이스 표시에 필요한 처리를 제외하고는 처리를 하지 않고, 프론트 엔드에서는 양식의 정확성과 일관성을 검사하고, 워드 프로세서와 같은 고급 지원 도구는 서버 측에서 실행된다.
더 많은 기능을 클라이언트 머신에 두면 클라이언트 측 소프트웨어가 오류
에 민감해지고 클라이언트의 기본 플랫폼에 의존성이 높아지므로, 최근에는 클라이언트 머신에서 더 많은 기능을 제공하지 않고, 분산 파일 시스템이나 데이터베이스를 사용하는 멀티 티어 아키텍처가 인기를 얻고 있다.
이 경우, 서버 측 솔루션이 단일 서버 대신 다른 머신에서 실행되는 여러 대의 서버로 대체되는 경우가 많다.
또한, 서버가 때로는 클라이언트 역할
을 수행해야 하는 경우도 있다.
따라서 멀티 티어 아키텍처를 사용하면 서버 측 솔루션을 분산시키면서 시스템의 확장성
과 유연성
이 증가하게 된다.
또한, 서버와 클라이언트 사이의 역할을 명확하게 구분하여 서로간에 책임을 분리함으로써 시스템의 유지보수 및 개선이 용이해지게 된다.
그러나 멀티 티어 아키텍처를 구현할 때는, 분산 시스템에서 발생하는 다양한 문제들에 대처해야 한다.
예를 들어, 데이터 일관성
과 병목 현상
등의 문제가 발생할 수 있으며, 이를 해결하기 위해 데이터베이스 복제, 캐시, 로드 밸런싱 등의 기술을 사용할 수 있다.
또한, 멀티 티어 아키텍처는 보안 문제에 노출될 가능성도 있다.
서버와 클라이언트 사이에 데이터를 주고 받을 때, 중간자 공격 등의 위협에 취약해질 수 있으므로, 보안 프로토콜을 적용하여 보안성을 강화해야 한다.
결론적으로, 멀티 티어 아키텍처는 대규모 애플리케이션을 구축할 때 매우 유용한 방법이다.
그러나 구현하기 어렵고, 다양한 문제들이 발생할 가능성도 있으므로, 이를 고려하여 적절한 아키텍처를 선택하고, 구현할 때에는 신중하게 대처해야 한다.