DI(Dependency Injection) - 의존성주입
AOP(Aspect-Oriented Programming) - 관심지향 프로그래밍
DI : 객체에 속성값을 주입하는 방식으로, 모듈간의 결합도를 낮추어 유연한 코드를 작성하게 해주는 역할을 함
AOP : 프로그램 로직 중에 반복되는 코드를 횡으로 분리하여 중복된 코드를 줄여주고 핵심 로직에 대한 가독성을 높이는 역할을함
----
Model+ View + Controller = MVC
Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분
View : 사용자에게 보여지는 UI 부분
Controller : 사용자의 입력(Action)을 받고 처리하는 부분
동작 순서
- 사용자의 Action들이 Controller에 들어온다.
- Controller는 사용자의 Action을 확인하고, Model을 업데이트한다.
- Controller는 Model을 나타내줄 View를 선택한다.
- View는 Model을 이용하여 화면을 나타낸다.
MVC에서 View가 업데이트 되는 방법
- View가 Model을 이용하여 직접 업데이트
- Model에서 View에게 Notify하여 업데이트
- View가 Polling으로 주기적이게 Model의 변경을 감지하여 업데이트
MVC 패턴의 단점
- View와 Model 사이의 의존성이 높다. View와 Model의 높은 의존성은 어플리케이션이 커질수록 복잡해지고 유지보수가 어려울 수 있다.
----
Model +View + Presenter = MVP 패턴
Presenter : View에서 요청한 정보로 Model을 가공하여 View에 전달해주는 부분
동작 순서
- 사용자의 Action들은 View를 통해 들어온다
- View는 데이터를 Presenter에 요청한다.
- Presenter는 Model에게 데이터를 요청한다.
- Model은 Presenter에서 요청받은 데이터를 응답한다.
- Presenter는 View에게 데이터를 응답한다.
- View는 Presenter가 응답한 데이터를 이용하여 화면을 나타낸다.
Presenter는 View와 Model의 인스턴스를 가지고 있어 둘을 연결하는 접착제 역할을 한다. Presenter와 View는 1:1관계이다.
MVP 패턴의 장점
- View와 Model의 의존성이 없다. MVP 패턴은 MVC 패턴의 단점이었던 View와 Model의 의존성을 해결하였다. (Presenter를 통해서만 데이터를 전달받으므로
단점
- View와 Model간 의존성은 해결했으나 View와 Presenter간의 의존성이 존재한다.
'개발 > Java' 카테고리의 다른 글
[Java] Junit이 뭘까.. (0) | 2021.11.07 |
---|---|
[Spring] Maven, Gradle 차이를 알아보자 (0) | 2021.10.31 |
[Java] 메소드 호출, 객체 생성 (0) | 2021.10.19 |
[Java] 과제 중 알게 된 구문들 (0) | 2021.08.31 |
[Java] 직사각형 별 찍기 (프로그래머스) (0) | 2021.08.30 |
댓글