N계층(다계층), 3계층, 2계층 Archi예시를 이용한 강의

⚡ 스마트 요약

N계층 아키텍처(다계층 아키텍처라고도 함)는 애플리케이션을 프레젠테이션, 비즈니스 로직, 데이터와 같은 세 개 이상의 분리된 계층에 분산시킵니다. 이 모델은 엔터프라이즈급 클라이언트-서버 애플리케이션의 확장성, 보안 및 재사용성을 향상시킵니다.

  • 🏗️ 정의: N계층 애플리케이션은 분산 네트워크에서 세 대 이상의 서로 다른 컴퓨터에 분산되어 있습니다.
  • 🧱 세 가지 핵심 계층: 사용자 인터페이스, 비즈니스 로직, 데이터베이스 계층이 각각의 관심사를 명확하게 분리합니다.
  • 🔢 등급별 변형: 일반적인 모델로는 1단, 2단, 3단이 있으며, 그중 3단이 가장 널리 사용됩니다.
  • 🌐 실제 사용: IRCTC, MakeMyTrip 등의 사이트 Amazon 이 아키텍처에 의존합니다.
  • 주요 혜택: 확장성, 데이터 무결성, 재사용성, 향상된 보안 및 가용성.
  • ⚠️ 트레이드오프: 레이어가 많아질수록 개발 노력과 시스템 전체의 복잡성이 증가합니다.

N 계층 Archi강의

N티어란 무엇인가요?

An N 계층 애플리케이션 프로그램은 분산 네트워크에 있는 세 대 이상의 개별 컴퓨터에 분산되는 프로그램입니다.

n-tier의 가장 일반적인 형태는 3-tier 애플리케이션이며, 세 가지 범주로 분류됩니다.

  • 사용자 컴퓨터의 사용자 인터페이스 프로그래밍
  • 보다 중앙 집중화된 컴퓨터의 비즈니스 로직
  • 데이터베이스를 관리하는 컴퓨터에 필요한 데이터입니다.

이 아키텍처 모델은 소프트웨어 개발자에게 최대한의 유연성을 가지고 재사용 가능한 애플리케이션/시스템을 만들 수 있는 방법을 제공합니다.

In N 계층, “N” 사용되는 여러 단계 또는 계층을 나타냅니다. 예를 들면 다음과 같습니다. 2층, 3층, 4층 등. “라고도 불린다.다중 계층 Archi강의".

n계층 아키텍처 업계에서 검증된 소프트웨어 아키텍처 모델입니다. 확장성, 보안, 내결함성, 재사용성 및 유지보수성을 제공하여 엔터프라이즈급 클라이언트-서버 애플리케이션을 지원하는 데 적합합니다. 개발자가 유연하고 재사용 가능한 애플리케이션을 만들 수 있도록 도와줍니다.

N 계층 Archi강의

n 계층 시스템의 도식적 표현은 프레젠테이션, 애플리케이션 및 데이터베이스 계층을 보여줍니다.

N 계층 Archi강의
N티어 Archi강의 다이어그램

이 세 가지 계층은 요구 사항에 따라 서로 다른 하위 계층으로 더 세분화될 수 있습니다.

이러한 아키텍처를 적용한 인기 웹사이트는 다음과 같습니다.

  • MakeMyTrip.com
  • Sales Force 엔터프라이즈 애플리케이션
  • 인도 철도 – IRCTC
  • Amazon.com 등

개념을 더 명확하게 이해하기 위해 기억해 두면 좋은 몇 가지 일반적인 용어는 다음과 같습니다.

  • 분산 네트워크: 네트워크 아키텍처는 네트워크 컴퓨터에 위치한 구성 요소들이 메시지 전달만을 통해 서로 협력하고 통신하는 방식입니다. 여러 노드에 분산된 다양한 시스템들이 모여 하나의 시스템처럼 보이는 구조입니다.
    • 이는 서로 다른 네트워크에서 별도로 관리할 수 있는 단일 데이터 통신 네트워크를 제공합니다.
    • 분산 네트워크의 한 예로, 서로 다른 클라이언트들이 한쪽으로는 LAN 아키텍처 내에 연결되어 있고, 다른 한쪽으로는 고속 스위치와 서비스 노드가 포함된 서버 랙에 연결되어 있는 구조를 들 수 있습니다.
  • 클라이언트 서버 Archi강의: 클라이언트(하나의 프로그램)가 서버(다른 프로그램)에게 서비스를 요청하는 아키텍처 모델입니다. 이는 인터넷이나 인트라넷을 통해 제공되는 요청-응답 서비스입니다. 이 모델에서, Client 네트워크를 통해 일련의 작업을 실행하는 하나의 프로그램/코드 세트 역할을 합니다. 하는 동안 서버반면에 는 요청에 따라 결과 세트를 클라이언트 시스템으로 보내는 또 다른 프로그램 세트입니다.
    • 이 방식에서 클라이언트 컴퓨터는 최종 사용자가 서버에 서비스나 리소스를 요청할 수 있는 인터페이스를 제공하고, 서버는 해당 요청을 처리한 후 결과를 최종 사용자에게 표시합니다.
    • 클라이언트-서버 모델의 예로 ATM 기계를 들 수 있습니다. 은행은 대규모 고객 데이터베이스 내에서 애플리케이션을 처리하는 서버 역할을 하고, ATM 기계는 간단한 애플리케이션 처리 기능을 갖춘 사용자 인터페이스를 가진 클라이언트 역할을 합니다.
  • 플랫폼 : 컴퓨터 과학이나 소프트웨어 산업에서 플랫폼이란 응용 프로그램이 실행될 수 있는 시스템을 말합니다. 플랫폼은 프로세서/마이크로프로세서가 특정 작업을 수행할 수 있도록 내장된 명령어를 갖춘 하드웨어와 소프트웨어의 조합으로 구성됩니다.
    • 더 간단히 말하면, 플랫폼은 모든 애플리케이션이 특정 작업을 수행하기 위해 실행될 수 있는 시스템 또는 기반입니다.
    • 플랫폼의 예 – 다음이 탑재된 개인용 기계 Windows 2000 또는 Mac OS X를 두 가지 다른 플랫폼의 예로 들 수 있습니다.
  • 데이터 베이스: 쉽게 접근하고, 관리하고, 업데이트할 수 있도록 체계적으로 정보를 모아 놓은 것입니다.
    • 데이터베이스의 예 - MySQL, SQL 서버 및 Oracle Database 다음은 몇 가지 일반적인 데이터베이스입니다.

N 계층 유형 Archi강의

N-Tier에는 다양한 유형이 있습니다. Archi같은 강의 3 계층 Archi강의, 2-Tier Archi구조 및 1층 Archi강의.

먼저 3티어를 살펴보겠습니다. Archi매우 중요한 강의입니다.

3-Tier Archi강의

아래 도표를 보면 그 내용을 쉽게 알 수 있습니다. 3 계층 아키텍처 세 가지 다른 레이어가 있습니다.

  • 프레젠테이션 레이어
  • 비즈니스 로직 레이어
  • 데이터베이스 계층
3 등급 Archi강의 다이어그램
3 등급 Archi강의 다이어그램

여기서는 이 세 가지 계층을 이해하기 위해 간단한 학생 양식을 예로 들어 설명하겠습니다. 이 양식에는 학생의 이름, 주소, 이메일, 사진과 같은 정보가 포함되어 있습니다.

사용자 인터페이스 레이어 또는 프리젠테이션 레이어

3-Tier Archi강의

프리젠 테이션 레이어

private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
{
// Object of the Property layer
clsStudent objproperty=new clsStudent();
// Object of the business layer
clsStudentInfo objbs=new clsStudentInfo();
// Object of the dataset in which we receive the data sent by the business layer
DataSet ds=new DataSet();
// here we are placing the value in the property using the object of the
//property layer
objproperty.id=int.Parse(DataGridl.SelectedItem.Cells[1].Text.ToString());

// In this following code we are calling a function from the business layer and
// passing the object of the property layer which will carry the ID till the database.
ds=objbs.GetAllStudentBsIDWise(objproperty);

// What ever the data has been returned by the above function into the dataset
//is being populate through the presentation laye.
txtId.Text=ds.Tables[0].Rows[0][0].ToString();
txtFname.Text=ds.Tables[0].Rows[0][1].ToString();
txtAddress.Text=ds.Tables[0].Rows[0][2].ToString();
txtemail.Text=ds.Tables[0].Rows[0][3].ToString();

Code 설명

  • 위 코드는 애플리케이션의 프런트엔드 뷰에 대한 기본적인 디자인을 정의하고, 다른 계층의 함수들을 호출하여 서로 통합할 수 있도록 합니다.

비즈니스 액세스 계층 –

이는 애플리케이션 계층에서 데이터를 받아 데이터 계층으로 전달하는 비즈니스 계층의 기능입니다.

  • 비즈니스 로직은 클라이언트 계층과 데이터 액세스 계층 사이의 인터페이스 역할을 합니다.
  • 데이터 유효성 검사, 계산, 데이터 삽입/수정 등 모든 비즈니스 로직은 비즈니스 로직 계층 아래에 ​​작성됩니다.
  • 이를 통해 클라이언트와 데이터 계층 간의 통신이 더 빠르고 쉬워집니다.
  • 작업을 완료하는 데 필요한 적절한 워크플로 활동을 정의합니다.
// this is the function of the business layer which accepts the data from the
//application layer and passes it to the data layer.
public class clsStudentInfo
{
	public DataSet GetAllStudentBsIDWise(clsStudent obj)
	{
	 DataSet ds=new DataSet();
	 ds=objdt.getdata_dtIDWise(obj);// Calling of Data layer function
	 return ds;
	}
}

코드 설명

이 코드는 비즈니스 계층의 함수를 사용하는데, 이 함수는 애플리케이션 계층에서 데이터를 받아 데이터 계층으로 전달합니다. 비즈니스 계층 코드는 프레젠테이션 계층과 데이터 계층에 정의된 함수들 사이에서 중개자 역할을 하며, 반대로도 함수를 호출합니다.

데이터 액세스 계층

이는 비즈니스 계층에서 데이터를 수신하고 데이터베이스에 필요한 작업을 수행하는 데이터 계층 기능입니다.

// this is the datalayer function which is receiving the data from the business
//layer and performing the required operation into the database

public class clsStudentData // Data layer class
{
	// object of property layer class
	public DataSet getdata_dtIDUise(clsStudent obj)
	{
	 DataSet ds;
	 string sql;
	 sql="select * from student where Studentld=" +obj.id+ "order by Studentld;
	 ds=new DataSet();
	//this is the datalayer function which accepts the sql query and performs the
	//corresponding operation
		ds=objdt.ExecuteSql(sql);
		return ds;
	}
}

코드 설명

위의 데이터셋 계층에 정의된 코드는 시스템에서 요청한 전체 요청을 받아들이고 데이터베이스에 필요한 작업을 수행합니다.

2-Tier Archi강의

이는 클라이언트-서버 아키텍처와 같으며, 통신은 클라이언트와 서버 사이에서 이루어집니다.

이러한 유형의 소프트웨어 아키텍처에서 프레젠테이션 계층 또는 사용자 인터페이스 계층은 클라이언트 측에서 실행되고 데이터 세트 계층은 서버 측에서 실행되고 저장됩니다.

클라이언트와 서버 사이에 비즈니스 로직 계층이나 중간 계층이 없습니다.

단일 계층 또는 1계층 Archi강의

가장 간단한 방법으로, 개인용 컴퓨터에서 애플리케이션을 실행하는 것과 같습니다. 애플리케이션 실행에 필요한 모든 구성 요소가 단일 애플리케이션 또는 서버에 있습니다.

프레젠테이션 계층, 비즈니스 논리 계층 및 데이터 계층은 모두 단일 시스템에 있습니다.

다중 계층의 장점과 단점 Archi강의

다른 모든 설계 선택과 마찬가지로, 다단계 접근 방식은 몇 가지 단점과 함께 분명한 이점을 제공하며, 이는 아래에 요약되어 있습니다.

장점 단점
확장성 노력의 증가
Data Integrity 복잡성 증가
재사용 성
배포 감소
보안 향상
향상된 가용성

따라서 이는 실제 비즈니스 문제를 암호화하고 전체 작업을 완료하기 위해 데이터를 업데이트, 생성, 저장 또는 변경하는 방법을 결정하는 프로그램의 일부입니다.

N 계층 Archi강의 팁 및 개발

소프트웨어 전문가가 아키텍처의 모든 계층을 완벽하게 제어해야 한다는 점을 고려하여, n계층 아키텍처에 대한 몇 가지 팁을 아래에 제시합니다.

  1. SOAP XML과 같은 기술을 사용하여 계층 간 분리를 최대한 강화하십시오.
  2. 자동화 도구를 사용하여 지도를 생성하세요.ping 비즈니스 로직 계층과 관계형 데이터베이스 계층(데이터 계층) 사이의 매핑을 모델링하는 데 도움이 되는 도구들이 있습니다.ping 사용되는 기술로는 .Net용 Entity Framework 및 Hibernate 등이 있습니다.
  3. 클라이언트-프레젠터 계층에서는 모든 클라이언트가 공통으로 사용하는 코드를 가능한 한 별도의 라이브러리에 두십시오. 이렇게 하면 모든 유형의 클라이언트에서 코드 재사용성을 극대화할 수 있습니다.
  4. 성능 속도를 높이기 위해 기존 레이어에 캐시 레이어를 추가할 수 있습니다.

자주 묻는 질문

레이어는 프레젠테이션 로직이나 비즈니스 로직처럼 코드를 논리적으로 분리한 것입니다. 티어는 이러한 레이어들을 서로 다른 머신에 물리적으로 분리한 것입니다. 여러 레이어가 하나의 티어에서 실행될 수도 있고, 각 레이어가 자체적인 티어를 가질 수도 있습니다.

아니요. MVC는 애플리케이션 내 코드 구성을 위한 디자인 패턴인 반면, 3계층 아키텍처는 표현, 로직, 데이터를 물리적으로 계층별로 분리합니다. MVC 구성 요소는 자유롭게 상호 작용하는 반면, 3계층 아키텍처는 엄격한 하향식 순서로 통신합니다.

일반적으로 많이 사용되는 옵션으로는 .NET이 있습니다. Java (Spring) 및 Node.js는 비즈니스 로직에, HTML/Java프레젠테이션용 스크립트 프레임워크 및 데이터베이스 등 MySQLSQL Server 또는 Oracle 데이터 계층의 경우, Entity Framework 및 Hibernate와 같은 ORM이 이러한 계층들을 연결합니다.

AI는 일반적으로 비즈니스 로직 계층에 추가되거나 별도의 서비스 계층으로 구현됩니다. AI는 추천, 사기 탐지, 검색과 같은 기능을 지원하며, 프레젠테이션 및 데이터 계층은 변경되지 않고 그대로 유지됩니다.ping 모듈식 아키텍처로 유지보수가 용이합니다.

네. AI 기반 모니터링은 트래픽 급증을 예측하고 각 계층을 독립적으로 자동 확장할 수 있습니다. 또한 부하 분산, 병목 현상 감지, 데이터베이스 쿼리 최적화 등도 지원합니다.ping 대규모 클라이언트-서버 애플리케이션은 변화하는 수요 속에서도 응답성을 유지합니다.

이 게시물을 요약하면 다음과 같습니다.