소개
3계층 레이어드 아키텍처는 소프트웨어 시스템이나 어플리케이션을 구성하는 방법 중 하나임.
3가지 계층을 사용하여 시스템을 구성하므로 각 계층이 서로 독립적이며 서로 영향을 주지 않고 변경 가능함.
이는 곧 유지보수 및 확장성을 향상시키는데 도움을 줌.
구조
Presentation Tier
사용자와 상호작용하며 데이터를 화면에 표시하는 부분임
주로 사용자 인터페이스와 관련이 있음.
웹 어플리케이션의 경우 HTML/CSS, JavaScript 등을 사용하여 사용자에게 정보를 표시하고 입력을 받음.
Application Tier
실제 비즈니스 로직, 데이터 처리 및 계산을 담당하는 계층.
이 레이어는 사용자의 요청값을 처리하고 데이터를 조작하여 필요한 계산을 수행함.
비즈니스 계층은 데이터의 유효성 검사, 로그인, 사용자 인증 등과 같은 기능을 처리함.
Data Tier
데이터베이스나 파일 시스템과 같은 데이터 저장 및 관리 소스를 담당하는 계층.
이 계층은 어플리케이션에서 사용되는 데이터를 영구적으로 저장하고 관리함.
간단하게 ORM이 발생하는 단계라고 생각하면 됨.
예제
MVC 형태로 구현해 보았고, 뷰 부분임.
Presentation Tier 에 속함.
<h1>Presentation Tier</h1>
<form asp-action="Add" asp-controller="Index">
<input id="No" name="No" type="text" />
<input id="Name" name="Name" type="text" />
<button type="submit"></button>
</form>
다음은 컨트롤러 부분이고 역시 Presentation Tier 속함.
뷰, 컨트롤러가 Presentation 계층을 의미함.
[HttpPost]
public IActionResult Add(Taco taco)
{
_taco.Add(taco);
return RedirectToAction("Index");
}
모델은 Application Tier에 속함.
namespace MVC.Models
{
public class Taco
{
public int No { get; set; }
public string Nmae { get; set; }
}
}
실제 비즈니스 로직임.
Applicatoin Tier에 속함.
주로 Service 라는 네이밍 룰을 사용함.
using MVC.Interface;
using MVC.Models;
namespace MVC.Service
{
public class TacoService : ITaco
{
public string GetName(string name)
{
return name;
}
public string Add(Taco taco)
{
return taco.No + taco.Nmae;
}
}
}
DB 데이터를 가져오거나 수정하는 Repository 단계임.
Data Tier 속함.
using MVC.Interface;
namespace MVC.Repository
{
public class TacoRepository : IRepository
{
public void Add()
{
}
}
}
결론
말 그대로 3단계로 프로세스 로직이 나눠져 있고 Presentation 단계에서는 HTML/CSS 등 뷰 와 관련된 로직을 수행함.
Application 단계에서는 비즈니스 서비스 로직을 담당함.
Data 단계에서는 DB와 연관된 프로세스를 담당함.
'SW 구조 > 아키텍처' 카테고리의 다른 글
헥사고날(Hexagonal) (0) | 2023.11.23 |
---|