JSP 사용해보기 - MVC 패턴

KimJH_94·2022년 10월 23일
0

JSP

목록 보기
6/7
post-thumbnail

💻 MVC 패턴


MVC패턴은 Model View Controller의 줄임말로, 웹 개발을 할 때 개발자들이 애플리케이션을 정리하는 방식이라고 생각하면 편하다. 페이지들이 하는 기능을 토대로 종류를 나눈다. 아래의 그림처럼 Controller를 조작하면 Model을 통해 데이터를 가져오고, 이를 이용하여 View를 통해 시각화하여 사용자에게 제공한다. 이러한 비즈니스 로직을 통해 서로 영향 없이 차후 유지보수가 편리한 앱을 제작할 수 있게 된다.

📌 MVC 간단 정리

M : Model
-> 사용자가 원하는 데이터나 정보를 제공
-> 애플리케이션의 정보, 데이터를 나타낸다
-> 이러한 data, 정보들의 가공을 책임지는 역할을 한다.

V : View
-> 보여지는 화면
-> input 텍스트, 체크박스 항목 등과 같은 사용자의 인터페이스 요소를
나타낸다. 데이터 및 객체의 입력, 그리고 보여주는 출력을 담당한다.
-> 데이터를 기반으로 사용자들이 볼 수 있는 화면이다.

C : Controller
-> 사용자의 요청을 처리하고, 그 요청에 따른 전체적인 흐름 제어
-> 데이터와 사용자 인터페이스 요소들을 잇는 다리역할을 한다.

⭐️ MVC 패턴 방식


MVC 패턴 방식은 모델 1 방식과 모델 2 방식이 있다. 모델 1 방식은 JSP에서 출력과 로직을 전부 처리하고, 모델 2 방식은 이를 찢어주는 방식인데, 작은 프로젝트에선 간혹 모델 1방식을 사용하지만, 대부분의 실무에선 모델 2방식으로 작업을 한다고 한다.

모델 2 방식의 경우 대부분 MVC 각각의 역할을 가지는 코드 마다 페이지가 나눠져 있지만, 1:1대응이 반드시 되는 것은 아니고, 하나의 페이지에 여러 개의 기능이 모여 있을수도 있고, 한 개의 기능이 두 개의 페이지로 나뉘어져 있을수도 있다.

🔥 MVC model 1

모델 1 패턴의 경우, VIEW단과 Controller단을 모두 JSP가 담당하는 형태를 가진다. 즉, JSP하나로 유저의 요청을 받고 응답을 처리하므로 구현의 난이도는 쉽다. 그러나 단순한 프로젝트에서는 상관없지만, 내용이 복잡하고 거대해질 수록 이 패턴은 유지보수에 있어서 문제가 발생하게 된다.

✓ 모델 1 예시

아래와 같은 코드가 있다. 아래 코드엔 VIEW 단의 역할을 하는 부분에 로직이 섞여있어 직관성이 떨어진다.

이를 MVC Model1 모양으로 바꿔주면 아래와 같은 모양이 된다. 로직을 controller단에 모두 모아놓고, view 단은 깔끔하게 정리된 모습이다. Model단의 역할을 하는 부분에서 DB로 갈 일이 있으면 저 부분을 통해 DB와 연결하면 된다.

🔥 MVC model 2

위에서처럼 순수 JAVA로만 이루어진 Controller가 JSP에 다른기능들과 함께 있을 필요가 없다. 그렇기 때문에 Controller를 서블릿으로 따로 분리시켜주는 형태가 모델 2이다. 모델 2는 요청을 하나의 컨트롤러 (서블릿)가 먼저 받는다. 만약 요청이 DB를 다녀올 필요가 없다면 Controller에서 View 단으로 요청 해주면 되고, 혹은 DB를 다녀와야 한다면 Model단으로 요청을 보내게 된다. 그러므로 개발자는 M, V, C중 수정해야 할 부분이 있다면 그것만 꺼내어 수정하면 된다.

Spring Framework는 MVC 모델 2 패턴으로 채택했다. 그렇기 때문에 해당 패턴을 잘 숙지해야 한다.

✓ 모델 2 예시

서블렛을 제작하여 서블렛 내부에 Controller역할을 하는 자바코드를 만들어준다. 이후 해당 코드를 request에 담아서 View 단 페이지로 넘겨주면 된다.


간결해진 VIEW 단의 모습.

profile
안녕하세요.

0개의 댓글

관련 채용 정보