Share via


N 계층 데이터 응용 프로그램 개요

업데이트: 2007년 11월

N 계층 데이터 응용 프로그램은 여러 계층으로 분리되어 있는 데이터 응용 프로그램입니다. "분산 응용 프로그램" 또는 "다중 계층 응용 프로그램"이라고도 하는 N 계층 응용 프로그램에서는 처리 과정이 클라이언트와 서버 사이에 분산된 개별 계층으로 분리됩니다. 데이터에 액세스하는 응용 프로그램을 개발할 때는 응용 프로그램을 구성하는 다양한 계층을 명확하게 분리해야 합니다.

일반적인 N 계층 응용 프로그램에는 프레젠테이션 계층, 중간 계층 및 데이터 계층이 포함됩니다. N 계층 응용 프로그램에서 여러 계층을 분리하는 가장 쉬운 방법은 응용 프로그램에 포함할 각 계층에 대해 별도의 프로젝트를 만드는 것입니다. 예를 들어 프레젠테이션 계층은 Windows Forms 응용 프로그램이 될 수 있고 데이터 액세스 논리는 중간 계층에 있는 클래스 라이브러리가 될 수 있습니다. 또한 프레젠테이션 계층은 WCF 서비스 같은 서비스를 통해 중간 계층의 데이터 액세스 논리와 통신할 수 있습니다. 응용 프로그램 구성 요소를 별도의 계층으로 분리하면 응용 프로그램의 유지 관리 편의성과 확장성이 향상됩니다. 이를 위해 전체 솔루션을 다시 디자인하지 않고도 단일 계층에 적용할 수 있는 새 기술을 보다 쉽게 도입할 수 있게 합니다. 또한 N 계층 응용 프로그램에서는 일반적으로 프레젠테이션 계층에서 격리되어 유지 관리되는 중간 계층에 중요한 정보를 저장합니다.

Visual Studio에는 개발자가 N 계층 응용 프로그램을 쉽게 개발할 수 있도록 돕는 여러 기능이 있습니다.

  • 데이터 집합 디자이너에서는 데이터 집합(데이터 엔터티 계층)과 TableAdapter(데이터 액세스 계층)를 별도의 프로젝트로 분리할 수 있는 데이터 집합 프로젝트 속성을 제공합니다.

  • O/R 디자이너(개체 관계형 디자이너)에서는 DataContext 및 데이터 클래스를 별도의 네임스페이스로 생성하는 설정을 제공합니다. 이 설정을 사용하면 데이터 액세스와 데이터 엔터티 계층을 논리적으로 분리할 수 있습니다.

  • LINQ to SQL에서는 서로 다른 계층의 DataContext를 응용 프로그램 하나로 가져오는 데 사용할 수 있는 Attach 메서드를 제공합니다. 자세한 내용은 LINQ to SQL을 사용하는 N 계층 및 원격 응용 프로그램을 참조하십시오.

  • 원격 데이터베이스와 로컬 데이터베이스 캐시 사이의 동기화를 구성하는 데 사용할 수 있는 데이터 동기화 구성 대화 상자에는 고급 구성 옵션이 있습니다. 이 옵션을 사용하면 서버 및 클라이언트를 별도의 프로젝트로 설정할 수 있습니다. 자세한 내용은 연습: N 계층 응용 프로그램에 로컬 데이터베이스 캐시 추가를 참조하십시오.

프레젠테이션 계층

프레젠테이션 계층은 사용자가 응용 프로그램과 상호 작용하는 계층입니다. 이 계층에는 추가 응용 프로그램 논리도 포함되는 경우가 많습니다. 일반적인 프레젠테이션 계층 구성 요소에는 다음이 포함됩니다.

다음 그림에서는 Visual Studio에서 사용할 수 있는 기능과 기술을 보여 주며 이러한 기능 및 기술이 N 계층 응용 프로그램의 프레젠테이션 계층에서 어떤 경우에 적합한지 보여 줍니다.

프레젠테이션 계층

프레젠테이션 계층 구성 요소

프레젠테이션 계층에서는 일반적으로 서비스 참조(예: Windows Communication Foundation 서비스 및 ADO.NET 데이터 서비스 응용 프로그램)를 사용하여 중간 계층에 액세스합니다. 프레젠테이션 계층에서 데이터 계층에 직접 액세스하지는 않습니다. 프레젠테이션 계층에서는 중간 계층의 데이터 액세스 구성 요소를 통해 데이터 계층과 통신합니다.

중간 계층

중간 계층은 프레젠테이션 계층과 데이터 계층이 서로 통신을 주고받는 데 사용하는 계층입니다. 일반적인 중간 계층 구성 요소로는 다음과 같은 것이 있습니다.

  • 비즈니스 규칙 및 데이터 유효성 검사 같은 비즈니스 논리

  • 다음과 같은 데이터 액세스 구성 요소 및 논리

다음 그림에서는 Visual Studio에서 사용할 수 있는 기능과 기술을 보여 주며 이러한 기능 및 기술이 N 계층 응용 프로그램의 중간 계층에서 어떤 경우에 적합한지 보여 줍니다.

중간 계층

중간 계층 구성 요소

중간 계층은 일반적으로 데이터 연결을 통해 데이터 계층에 연결됩니다. 이 데이터 연결은 일반적으로 데이터 액세스 구성 요소에 저장됩니다.

데이터 계층

데이터 계층은 기본적으로 응용 프로그램의 데이터를 저장하는 서버(예: SQL Server를 실행하는 서버)입니다.

다음 그림에서는 Visual Studio에서 사용할 수 있는 기능과 기술을 보여 주며 이러한 기능 및 기술이 N 계층 응용 프로그램의 데이터 계층에서 어떤 경우에 적합한지 보여 줍니다.

데이터 계층

데이터 계층 구성 요소

프레젠테이션 계층의 클라이언트에서 데이터 계층에 직접 액세스할 수는 없습니다. 프레젠테이션 계층과 데이터 계층 사이의 통신에는 중간 계층의 데이터 액세스 구성 요소가 대신 사용됩니다.

N 계층 개발 관련 추가 정보

다음 항목에서는 N 계층 응용 프로그램을 사용한 작업에 대한 정보를 제공합니다.

방법: 데이터 집합 및 TableAdapter를 다른 프로젝트로 분리

연습: N 계층 데이터 응용 프로그램 만들기

연습: N 계층 데이터 응용 프로그램에 유효성 검사 추가

연습: N 계층 응용 프로그램에 로컬 데이터베이스 캐시 추가

LINQ to SQL을 사용하는 N 계층 및 원격 응용 프로그램

참고 항목

작업

연습: N 계층 데이터 응용 프로그램 만들기

개념

데이터의 새로운 기능

Visual Studio의 데이터 집합 개요

참조

Attach

기타 리소스

계층적 업데이트

데이터 액세스(Visual Studio)