Layered Architecture 

계층화 아키텍쳐

  • 효율적인 개발과 유지보수를 위해 계층화하여 개발
  • 대부분의 중/대규모 어플리케이션에 적용
  • 각 레이어는 독립된 R&R을 가짐
  • Layered Architecture는 인접한 레이어로만 통신이 가능하다.
  • Spring에서 기본적으로 제공하는 방식은 아님
  • 3가지 영역으로 구분됨
    • Client(화면)와 DB가 끝단에 위치

 

MVC 패턴

Presentation을 좀 더 구체화 한 패턴

  • Layered Architecture를 사용한 대표적 패턴
  • 어플리케이션을 Model, View, Controller로 구분
  • UI를 가지는 대부분의 어플리케이션은 MVC혹은 변형된 MVC 패턴을 사용
    • ex) Angular, Android, IOS, SpringMVC

Model

바인딩 하기전 데이터를 가지고있는 것

데이터 저장, 처리

Controller

중간에서 바인딩, 제어를 해주는 것 - >화면 (UI)

View

사용자 요청(입력)을 처리

모델과 화면을 서로 연결 시켜줌

 

 

사례

전자정부 프레임워크

 

컴포넌트 자동등록

=bean

어노테이션(Annotation)을 사용

@Component와 하위 어노테이션을 사용

<context:component-scan base-apckage="패키지 명"/>

패키지 명 이후 하위 패키지를 검색해 @Component 어노테이션을 포함하는 모든 클래스를 빈으로 자동 등록

Context:component-scan

bean이 될 수 있는 모든 Component들을 자동으로 찾아 bean Container에 등록

단 의존성 관계 등록은 따로 하지 않음

@Autowired

Component간의 의존관계는 Autowired라는 Annotation으로 적용

Component-scan과 수동(Setter, 생성자) DI는 혼용해서 사용가능

 

실습

1. 게시판의 글쓰기 기능 구현(가상 구현)

  • BbsService.registArticle(Article)
  • AricleDAO.insertArticle(Article)

2.Service, DAO, VO .. Layering

3.@Service, @repository 어노테이션 등록

  • <context:component-scan../>사용

4.@Autowired 사용으로 DI 구현

 

Context NameSpace 사용

 

 

Layered Architecture 사례 : MVC 패턴

 

m.blog.naver.com/PostView.nhn?blogId=mering_k&logNo=221421049987&proxyReferer=https:%2F%2Fwww.google.com%2F

 

Layered Architecture & @Component 예시

- Layered Architecture(계층화 아키텍쳐) - 효율적인 개발과 유지보수를 위해 계층화 하여 개발 - 각 레...

blog.naver.com

 

+ Recent posts