application layering

유석현(SeokHyun Yu)·2023년 4월 12일
0

분산 시스템

목록 보기
14/27
post-thumbnail

분산 시스템에서 중요한 문제는 클라이언트와 서버 간 구분을 명확하게 하는 것이다.

예를 들어, 분산 데이터베이스의 서버는 어떤 시점에서는 클라이언트 역할을 수행할 수 있다(서버가 데이터베이스 서버를 조회하는 경우).

이러한 문제를 해결하기 위해 많은 사람들은 사용자 인터페이스 레벨(user-interface level), 처리 레벨(processing level), 데이터 레벨(data level)이라는 세 가지 수준으로 구분한다.

각 수준은 명확하게 정의되어 있으며 서로 다른 기능을 수행한다.

  • 사용자 인터페이스 레벨: 사용자와 상호작용하고, 요청을 받아 처리
  • 처리 레벨: 서비스 제공을 위해 사용자 요청을 처리하고, 적절한 서비스를 선택하고, 다른 서버에 전달
  • 데이터 레벨: 데이터를 저장하고 관리하며, 서비스 제공을 위한 필요한 데이터를 제공

이러한 구분은 클라이언트와 서버 간의 책임과 역할을 명확하게 분리하고, 시스템의 유지보수와 확장성을 용이하게 한다.


사용자 인터페이스 레벨(user-interface level)

사용자 인터페이스 레벨은 사용자와 직접적인 상호작용을 위해 필요한 모든 것을 포함한다.

이 수준에는 디스플레이 관리가 포함되며 일반적으로 클라이언트에서 구현된다.

가장 간단한 수준은 문자 기반 화면 이상의 것이 아니며 일반적으로 최소한의 그래픽 디스플레이를 제공된다.

이 디스플레이는 팝업 또는 드롭다운 메뉴가 사용되는 경우가 많으며 키보드 대신 마우스를 사용하여 많은 화면 제어가 처리된다.

현대의 사용자 인터페이스는 응용 프로그램이 단일 그래픽 창을 공유하고 사용자 조작을 통해 데이터를 교환할 수 있도록 허용함으로써 훨씬 더 많은 기능을 제공한다.


처리 레벨(processing level)

처리 레벨은 일반적으로 애플리케이션을 포함하고 있으며, 사용자 인터페이스 레벨과는 달리 공통적인 측면이 많지 않다.

예를 들어, 인터넷 검색 엔진은 매우 간단한 사용자 인터페이스를 갖고 있다.

사용자는 키워드 문자열을 입력하고 이에 대한 웹 페이지 제목 목록이 나타난다.

백엔드 데이터 수준은 대량의 웹 페이지 데이터베이스로 구성된다.

핵심 처리 수준은 사용자의 키워드 문자열을 하나 이상의 데이터베이스 쿼리로 변환하고 결과를 목록으로 정렬하며, 이 목록을 HTML 페이지 시리즈로 변환한다.

또한, 주식 중개업체의 의사 결정 지원 시스템의 경우 처리 수준은 재무 데이터 분석이다.

이에는 통계 및 인공 지능 기술이 필요할 수 있다.

데스크톱 패키지와 같은 일반적인 애플리케이션의 경우, 단어 처리기, 스프레드시트, 통신 기능 등이 포함될 수 있습니다. 처리 수준은 상대적으로 간단한 처리 기능을 가진 여러 프로그램의 집합으로 구성된다.


데이터 레벨(data level)

데이터 레벨은 애플리케이션이 동작하는 실제 데이터를 유지하고 관리한다.

데이터는 종종 영속적(persistent)이다.

일반적으로 서버 측에서 구현된다.

데이터를 저장하는 것 외에도, 데이터 레벨은 서로 다른 애플리케이션 간의 데이터 일관성을 유지하는 역할을 힌다.

대부분의 비즈니스 환경에서 데이터 레벨은 관계형 데이터베이스로 구성된다.

데이터 구조는 애플리케이션에 영향을 주지 않으며, 그 반대도 마찬가지이다.

관계형 데이터베이스를 사용하면 처리 수준과 데이터 수준을 분리할 수 있어 유지보수와 확장성을 높일 수 있지만, 항상 최상의 선택은 아닐 수 있다.

profile
Backend Engineer

0개의 댓글