반응형

Layered Architecture

 

효율적인 개발과 유지보수를 위해 어플리케이션을 계층화하여 개발하는 것을 말한다. 대체적으로 중/대규모 어플리케이션에서 사용하고 있다. 

 

Layered Architecture

Pressentation Layer 

- 사용자와 가장 가까운 계층을 말하며, 사용자와 상호작용을 한다.
- Spring MVC 객체를 말하며, 프론트 컨트롤러(DispatcherServlet), 컨트롤러, 뷰, 모델이 포함된다. 

 

Business Layer (Service Layer)

- 실제 비지니스 로직을 수행하는 컴포넌트로 트랜잭션 및 기능을 수행한다.

- 컨트롤러(presentation layer)에서 요청을 보내면 DAO(data access layer)를 이용해 실제로 비지니스 로직을 수행한다.

- 보통 하나의 비지니스 로직은 하나의 트랜잭션으로 동작(ACID 특징 가짐)한다. 

 

Data Access Layer (Repository Layer)

- 데이터베이스에 연동되어 데이터의 저장과 조회를 담당한다. 

- DB에 값을 저장하거나 가져오기 위해 JDBC, Mybatis, JPA 등을 사용해 구현한 DAO이다.

 

 

Layered Architecture 동작 과정

Layered Architecture 동작 과정

① Client 에서 요청이 들어오면 먼저 Presentation Layer 에서 DispatcherServlet 이 HandelerMapping 을 통해 
Controller 에게 Client 요청이 무엇인지 알리고,Controller 는 Client 요청을 처리를 Business Layer 에게 요구한다.

이 때, Business Layer 에 넘겨줄 데이터(Client 가 요청한 데이터)가 있으면 Domain Object 에 담는다.
 
② Business Layer 는 Presentation Layer 와 Interface 를 통해서 통신하며, Client 요청을 적절히 처리한 후 데이터베이스에 데이터를 저장하거나 데이터를 꺼내기 위해 Data Access Layer 에 요청한다.
이 때, 비지니스 로직을 수행하기 위해 데이터가 필요하면 Domain Object 에서 가져오고, Data Access Layer 넘겨줄 데이터가 있으면  Domain Object 에 담는다.
 
③ Data Access Layer 역시 Business Layer 와 Interface 를 통해서 통신하며, Business Layer 의 요청을 처리한다.
이 때, 데이터베이스에 저장하기 위해 필요한 데이터를 Domain Object 에서 가져오고, 데이터베이스에서 데이터를 가져와 반환할 데이터가 있다면 Domain Object 에 저장한다.
 
④ 모든 처리가 끝나면 Controller 는 Client 요청이 처리된 데이터와 사용할 View 정보를 Domain Object 에서 가져와서 ModelAndView에 담는다. 그리고 ModelAndView 객체를 DispatcherServlet 에 넘긴다.
 
⑤ ModelAndView 객체가 DispatcherServlet 에 전달되면, DispatcherServlet 은 ViewResolver 를 통해서 View 를 선택하고 Client 에게 요청이 처리된 데이터를 화면에 출력한다.

 

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기