[architecture] N-Tier 아키텍처 란 무엇입니까?

최근에 “N-Tier 아키텍처에 대한 경험이 있어야합니다”또는 “N-Tier 앱을 개발할 수 있어야합니다”라는 문장이 포함 된 개발자 구인 게시가 상당히 많이있었습니다.

N-Tier 아키텍처 란 무엇입니까? 어떻게 경험을 쌓을 수 있습니까?



답변

위키 백과 :

소프트웨어 엔지니어링에서 멀티 티어 아키텍처 (종종 n 티어 아키텍처라고 함)는 프리젠 테이션, 애플리케이션 처리 및 데이터 관리가 논리적으로 별개의 프로세스 인 클라이언트-서버 아키텍처입니다. 예를 들어 미들웨어를 사용하여 사용자와 데이터베이스 간의 데이터 요청을 처리하는 응용 프로그램은 다중 계층 아키텍처를 사용합니다. “멀티 티어 아키텍처”의 가장 널리 사용되는 것은 3 티어 아키텍처입니다.

“계층”으로 간주되는 것은 논란의 여지가 있지만 적어도 프로세스 경계를 ​​넘어서는 것이 필요합니다. 아니면 레이어라고합니다. 그러나 물리적으로 다른 시스템에있을 필요는 없습니다. 권장하지는 않지만 논리 계층과 데이터베이스를 같은 상자에 호스팅 할 수 있습니다 .

대체 텍스트

편집 : 한 가지 의미는 프레젠테이션 계층과 논리 계층 (때때로 비즈니스 논리 계층이라고 함)이 때때로 신뢰할 수 없거나 느리고 불안정한 네트워크를 통해 “전선을 가로 질러”경계를 넘어야한다는 것입니다. 이것은 데이터가 파일과 동일한 시스템에 있거나 데이터베이스를 직접 칠 수있는 웹 응용 프로그램과 같은 컴퓨터에있는 간단한 데스크톱 응용 프로그램과는 매우 다릅니다.

n 계층 프로그래밍의 경우 데이터를 “데이터 세트”라고하는 일종의 전송 가능한 형태로 패키지화하여 와이어로 전송해야합니다. .NET의 DataSet 클래스 또는 SOAP 와 같은 웹 서비스 프로토콜 은 와이어를 통해 객체를 비행하려는 시도가 거의 없습니다.


답변

핵심 비즈니스 로직 및 데이터 액세스와 프레젠테이션 계층을 분리하는 방법을 기반으로합니다 ( Wikipedia )

  • 3 계층 은 프리젠 테이션 계층 + 컴포넌트 계층 + 데이터 액세스 계층을 의미합니다.
  • N 계층은 일반적으로 추가 모듈성, 구성 성 또는 다른 시스템과의 상호 운용성을 위해 추가 계층을 추가 할 때입니다.

답변

Javascript-ASP.Net-Middleware-Database 레이어와 같은 일반적인 웹 아키텍처와 같은 것을 나타내는 용어입니다. 이들 각각은 “계층”입니다.


답변

N 계층 데이터 애플리케이션은 여러 계층으로 분리 된 데이터 애플리케이션입니다. “분산 응용 프로그램”및 “멀티 티어 응용 프로그램”이라고도하는 n- 티어 응용 프로그램은 처리를 클라이언트와 서버간에 분산 된 개별 계층으로 분리합니다. 데이터에 액세스하는 응용 프로그램을 개발할 때는 응용 프로그램을 구성하는 다양한 계층을 명확하게 구분해야합니다.

일반적인 n 계층 응용 프로그램에는 프레젠테이션 계층, 중간 계층 및 데이터 계층이 포함됩니다. n 계층 응용 프로그램에서 다양한 계층을 분리하는 가장 쉬운 방법은 응용 프로그램에 포함하려는 각 계층에 대한 개별 프로젝트를 만드는 것입니다. 예를 들어 프레젠테이션 계층은 Windows Forms 응용 프로그램 인 반면 데이터 액세스 논리는 중간 계층에있는 클래스 라이브러리 일 수 있습니다. 또한, 프리젠 테이션 계층은 서비스와 같은 서비스를 통해 중간 계층의 데이터 액세스 로직과 통신 할 수있다. 응용 프로그램 구성 요소를 별도의 계층으로 분리하면 응용 프로그램의 유지 관리 성과 확장 성이 향상됩니다. 전체 솔루션을 재 설계 할 필요없이 단일 계층에 적용 할 수있는 새로운 기술을보다 쉽게 ​​채택 할 수 있습니다. 게다가,

Microsoft 웹 사이트 에서 가져 왔습니다 .


답변

질문을 이해하면 질문자가 실제로 “OK, 3 계층은 잘 이해하고있는 것 같습니다. 그러나 4 계층 또는 일반화, N 계층 아키텍처 란 의미는 ……… 널리 이해되고 동의 된 N 계층의 정의는 무엇입니까? “

실제로 상당히 깊은 질문이며 이유를 설명하기 위해 조금 더 깊이 들어가야합니다. 나와 함께 참아

고전적인 3 계층 아키텍처 : 데이터베이스, “비즈니스 로직”및 프리젠 테이션은 우려 분리 원칙을 존중하는 방법을 명확히하는 좋은 방법입니다. 즉, “비즈니스”가 고객에게 서비스를 제공하는 방식을 변경하려면 전체 시스템을 조사하여이를 수행하는 방법을 파악할 필요가 없으며 특히 비즈니스 문제가 흩어져서는 안되는 결정을해야합니다. 코드를 통해 willy-nilly.

이제이 모델은 수십 년 동안 잘 작동했으며 이는 전형적인 ‘클라이언트 서버’모델입니다. 웹 브라우저는 광범위하고 물리적으로 분산 된 사용자 집합을위한 사용자 인터페이스이며, 일반적으로 클래식 3 계층 아키텍처의 일부가 아닌 콘텐츠 배포 서비스를 추가해야하는 클라우드 오퍼링 자체적으로 관리해야합니다).

이 개념은 서비스, 마이크로 서비스, 데이터 및 계산 배포 방법 등에 관한 일반화입니다. 어떤 계층이 ‘계층’인지 여부는 계층이 계층 뒤에있는 (또는 아래에있는) 서비스에 인터페이스 및 배포 모델을 제공하는지 여부에 따라 크게 달라집니다. 따라서 콘텐츠 배포 네트워크는 계층이지만 인증 서비스는 그렇지 않습니다.

이제이 개념을 염두에두고 N 계층 아키텍처의 예에 대한 다른 설명을 읽으면 문제를 이해하기 시작할 것입니다. 다른 관점으로는 벤더 기반 접근 방식 (예 : NGINX), 컨텐츠 인식로드 밸런서, 데이터 격리 및 보안 서비스 (예 : IBM Datapower)가 있으며,이 모두 는 주어진 아키텍처, 배치 및 사용 사례 에 가치부가하거나 부여 하지 않을 수 있습니다 .


답변

N-Tier가 별도의 물리적 시스템을 사용하여 비즈니스 로직, 클라이언트 액세스 및 데이터를 서로 분리한다는 것을 이해하고 있습니다. 이론 중 하나는 다른 하나와 독립적으로 업데이트 할 수 있다는 것입니다.


답변

N 계층 데이터 애플리케이션은 여러 계층으로 분리 된 데이터 애플리케이션입니다. “분산 응용 프로그램”및 “멀티 티어 응용 프로그램”이라고도하는 n- 티어 응용 프로그램은 처리를 클라이언트와 서버간에 분산 된 개별 계층으로 분리합니다. 데이터에 액세스하는 응용 프로그램을 개발할 때는 응용 프로그램을 구성하는 다양한 계층을 명확하게 구분해야합니다.

http://msdn.microsoft.com/en-us/library/bb384398.aspx 등에서