디자인 패턴은 SW 개발 방법을 공식화한 것으로 수많은 프로그램들이 생성되며
코드가 복잡해지고 유지보수에 불편함이 생기자 코드를 편하게 작성할 수 있는
규칙성을 찾아내어 이 패턴들을 공식처럼 만들어 코드 작성을 유리하게 하고
유지보수를 용이하게 만든 것이다.
그중 MVC패턴은 애플리케이션을 Model, View, Controller 3가지 역할로 구분한
개발 방법론이다. mvc 패턴 이전의 웹 애플리케이션의 아키텍처로는
모델 1과 모델 2 등이 있다. 모델 1(JSP+JavaBean) - 구조가 단순하지만 뷰와 로직이
섞여 JSP코디가 복잡해지고 프런트와 백엔드가 혼재되어 분업이 용이하지 않고
유지보수에 어려움이 있다. 모델 2(JavaBean+JSP+서블릿) - MVC패턴과 비슷하여
뷰와 로직의 분리로 모델 1에 비해 덜 복잡하고, 분업이 용이하여 유지보수가 쉽지만,
모델 1에 비해 습득이 어렵고 작업량이 많다.
모델은 데이터에 관련된 부분을 담당하고, 뷰는 사용자한테 보이는 부분,
컨트롤러는 모델과 뷰를 이어주는 역할을 한다. MVC패턴 사용 시 많이들 하는 실수로는
모델에서 뷰에 접근하거나 그 역할을 대신 수행하는 경우, View에서 일어나는
'과한' 값 검증과 예외 처리, View에서 비즈니스 로직을 사용하는 경우 등이 있을 수 있다.
MVC를 지키면서 코딩을 하기 위한 여러 규칙이 있다.
1. 모델은 컨트롤러와 뷰에 의존해서는 안되며 뷰나 컨트롤러에 관련된 코드를 섞지 않고
데이터와 관련된 코드로만 구성해야 한다.
2. 뷰는 모델에만 의존해야 하고, 컨트롤러에는 의존하면 안 된다.
(뷰 내부에 모델의 코드만 있을 수 있고, 컨트롤러의 코드가 있으면 안 된다.)
3. 뷰가 모델로부터 데이터를 받을 때는, 사용자마다 다르게 보여주어야 하는 사용자마다
변화가 생기는 부분의 데이터에 대해서만 받아야 한다.(모델과 뷰가 합쳐져서 보여주는 부분)
4. 컨트롤러는 모델과 뷰에 의존해도 된다.(컨트롤러 내부에는 모델과 뷰의 코드가 있을 수 있다.)
5. 뷰가 모델로부터 데이터를 받을 때는 반드시 컨트롤러에서 받아야 한다.
MVC패턴의 장점으로는 각 컴포넌트의 코드 결합도를 낮출 수 있고,
코드의 재사용성을 높일 수 있으며 구현자들 간의 커뮤니케이션 효율성을 높일 수 있다.
참조)
https://www.youtube.com/watch?v=ogaXW6KPc8I
https://www.youtube.com/watch?v=uoVNJkyXX0I
'Study' 카테고리의 다른 글
| 애자일 소프트웨어 개발(Agile Software Development) (0) | 2022.07.09 |
|---|---|
| 시스템 설계와 프로그램 구현 (0) | 2022.07.08 |
| JVM의 Garbage Collector (0) | 2022.06.12 |
| 알고리즘과 시간복잡도(Time Complexity) (0) | 2022.06.12 |
| 빌드(Build)란 무엇인가 (0) | 2022.06.12 |