- JSP로 회원관리 웹 애플리케이션 만들기
- JSP 라이브러리 추가 : build.gradle에!
//JSP 추가 시작
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'javax.servlet:jstl'
//JSP 추가 끝
- JSP는 꼭 첫 줄 써야 함!
- JSP에 보통 로직 먼저 넣고 그 밑에 html 넣음
- '<% ~ %> 내에 자바코드 그대로 쓸 수 있음
- <%= ~~ %> 는 자바코드 출력
- 회원 목록은 이전보다 JSP를 쓰는게 효과가 좋은 걸 확인할 수 있음
- 하!지!만! JSP를 써도 두 가지 일을 한 페이지에 함께 처리하는 느낌.
- 서블릿과 JSP의 한계
- 서블릿으로 개발 시, 뷰 화면을 위한 HTML만드는 작업이 자바코드에 섞여 지저분하고 복잡
- JSP를 사용한 덕분에 뷰를 생성하는 HTML작업이 깔끔해졌음.
- 하지만 코드의 상위 절반은 회원을 저장하기 위한 비즈니스 로직, 나머지 절반만 HTML을 보여주기 위한 뷰 영역. 회원 목록도 마찬가지.
- JAVA 코드, 데이터 조회하는 레포지토리 등 다양한 코드가 JSP에 노출되어 있고 JSP가 너무 많은 역할을 함
- 그래서 MVC 패턴 등장.
- MVC패턴 - 개요
- 하나의 JSP나 서블릿만으로 비즈니스 로직과 뷰 렌더링까지 모두 처리하면 너무 많은 역할을 하게 되고 결과적으로 유지 보수가 어려워짐.
- 변경의 라이프 사이클
- 둘 사이에 라이프사이클이 다르다는 점. UI 일부를 수정하는 일과 비즈니스 로직ㅇ르 수정하는 일은 각각 다르게 발생할 가능성이 매우 높고 서로 영향을 주지 않으므로 이 둘을 하나의 코드로 관리하는 것은 유지보수에 좋지 않음.
- 기능 특화 : 각각의 업무만 담당하는 것이 효과적
- MVC 패턴은 지금까지 학습한 것처럼 하나의 서블릿이나 JSP로 처리하던 것을 컨트롤러와 뷰라는 영역으로 서로 역할을 나눔. 웹 애플리케이션은 주로 이 패턴 사용.
- 컨트롤러
- HTTP요청을 받아서 파라미터를 검증하고, 비즈니스 로직 실행. 뷰에 전달할 결과 데이터를 조회해서 모델에 담음.
- 모델
- 뷰에 출력할 데이터를 담아 둠. 뷰가 필요한 데이터를 모두 모델에 담아서 전달해주는 덕분에 뷰는 비즈니스 로직이나 데이터 접근을 몰라도 됨. 화면을 렌더링하는 일에 집중 가능
- 뷰
- 모델에 담겨 있는 데이터를 받아와 사용. 화면에 그리는 일에 집중. HTML 생성하는 부분
- 컨트롤러
'Learning-log > Spring & JPA' 카테고리의 다른 글
[Spring Boot] SpringSecurity 이해하기 (0) | 2023.09.02 |
---|---|
(DB2편) 섹션5-3. JPA 소개 (0) | 2023.07.10 |
(스프링MVC1편-백엔드 웹 개발 핵심 기술) 3-(1)회원관리 웹 애플리케이션 요구사항, (2) 서블릿으로 회원 관리 웹 애플리케이션 만들기 (0) | 2023.05.10 |
(스프링MVC1편-백엔드 웹 개발 핵심 기술) 2-(9) HttpServletResponse 기본 사용법, (10) HTTP응답 데이터 - 단순 텍스트, HTML (0) | 2023.05.08 |
(스프링MVC1편-백엔드 웹 개발 핵심 기술) 2-(6) HTTP요청 데이터 : GET 쿼리 파라미터, (7) HTTP요청 데이터 : POST HTML Form (0) | 2023.05.04 |