mvc 패턴
스프링 MVC 1 - 정리(서블릿, JSP, MVC 패턴)
스프링 MVC 1 - 정리(서블릿, JSP, MVC 패턴)
2022.07.05정리 회원 관리 웹 애플리케이션 요구사항 회원을 만들었었다. username, age 있고, 회원 저장, 회원 목록 조회 기능을 만들었다. 서블릿으로 회원 관리 웹 애플리케이션 만들기 서블릿으로 만들었더니, html도 자바로 출력해야 해서 불편했다. JSP로 회원 관리 웹 애플리케이션 만들기 JSP를 사용했더니, html부분은 그대로 html을 사용하듯 작성하면 되었지만, 자바 코드를 쓰는 부분과 html을 사용하는 부분이 섞여 있었다. 그래서 두가지 일을 하면서 로직이 많아졌다. MVC 패턴 - 개요 그래서 이러한 문제를 해결하기 위해서 MVC 패턴을 사용한다고 알아보았다. MVC 패턴은 Controller, Model, view로 되어있고, MVC 패턴을 사용하게 되면, 보통 컨트롤러가 요청이 오면,..
스프링 MVC 1 - MVC 패턴 - 한계
스프링 MVC 1 - MVC 패턴 - 한계
2022.07.05MVC 패턴 - 한계 MVC 패턴을 적용한 덕분에 컨트롤러의 역할과 뷰를 렌더링 하는 역할을 명확하게 구분할 수 있다. 특히 뷰는 화면을 그리는 역할에 충실한 덕분에, 코드가 깔끔하고 직관적이다. 단순하게 모델에서 필요한 데이터를 꺼내고, 화면을 만들면 된다. 그런데 컨트롤러는 딱 봐도 중복이 많고 필요하지 않는 코드들도 많이 보인다. MVC 컨트롤러의 단점 포워드 중복 View로 이동하는 코드가 항상 중복 호출되어야 한다. 물론 이 부분을 메서드로 공통화해도 되지만, 해당 메서드도 항상 직접 호출해야 한다. ViewPath에 중복 prefix: /WEB-INF/views/ suffix: .jsp 그리고 만약 jsp가 아닌 thymeleaf 같은 다른 뷰로 변경한다면 전체 코드를 다 변경해야 한다. 사용..
스프링 MVC 1 - MVC 패턴 - 개요
스프링 MVC 1 - MVC 패턴 - 개요
2022.07.04스프링 MVC 패턴 - 개요 너무 많은 역할 하나의 서블릿이나 JSP만으로 비즈니스 로직과 뷰 렌더링까지 모두 처리하게 되면, 너무 많은 역할을 하게 되고, 결과적으로 유지보수가 어려워진다. 비즈니스 로직을 호출하는 부분에 변경이 발생해도 해당 코드를 손대야 하고, UI를 변경할 일이 있어도 비즈니스 로직이 함께 있는 해당 파일을 수정해야 한다. HTML 코드 하나 수정해야 하는데, 수백줄의 자바 코드가 함께 있다고 상상해보라! 또는 비즈니스 로직을 하나 수정해야 하는데 수백 수천줄의 HTML 코드가 함께 있다고 생생해보라. 변경의 라이프 사이클 사실 이게 정말 중요한데, 진짜 문제는 둘 사이의 변경의 라이프 사이클이 다르다는 점이다. 예를 들어서 UI를 일부 수정하는 일과 비즈니스 로직을 수정하는 일은..