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 패턴
Layered Architecture & @Component 예시
- Layered Architecture(계층화 아키텍쳐) - 효율적인 개발과 유지보수를 위해 계층화 하여 개발 - 각 레...
blog.naver.com
'Spring > [강의] Spring FrameWork' 카테고리의 다른 글
[Spring 8강] @Controller (0) | 2021.02.17 |
---|---|
[Spring 강의 7강] Spring MVC 소개 (0) | 2021.02.17 |
[Spring 강의 5장] - Dependency Injection (0) | 2021.02.16 |
[Spring 4강] IoC(Inversion of Control) (0) | 2021.02.15 |
[Spring 3강] - 스프링과 메이븐(Maven) (0) | 2021.02.04 |