웹 개발 종류들
정적 컨텐츠:
파일 그대로 웹 브라우저에 전달
Spring 에서는 static 폴더를 통해 정적 컨텐츠를 제공할 수 있다.
예시 )
Servlet
- Server + Applet
- 서버환경에서 웹 요청에 대한 동적 처리가 가능하도록 하는 Java 프로그램
- Java 안에 HTML코드가 결합되어 있다
- HttpServlet 클래스를 상속받아 구현
JSP
- Servlet에서 단점을 보완한 확장된 형태
- HTML에 java를 넣을 수 있다
Java로직과 HTML 코드가 결합되어 유지보수성이 떨어짐
MVC 패턴
Servlet과 JSP가 가지는 문제를 해결하고자 적용하게 된 패턴
- Model : 비즈니스 로직을 수행
- View : 사용자에게 보여지는 인터페이스, Model로부터 값을 받아 사용자에게 보여준다
- Controller : Model과 View 간 상호작용, 제어하는 역할
Model 1
모든 요청을 JSP에서 처리하는 단순한 구조
- 브라우저에서 JSP에 요청을 보내면 Java Bean에 접근해 로직을 수행함
- 응답은 다시 JSP를 통해 반환된다
- 개발 속도가 빠르나 JSP가 직접적인 연관을 갖기에 Side effect이 발생할 수 있고 비지니스 로직과 HTML이 섞여있어 유지보수성이 떨어짐
Model2 (MVC)
- Servlet이 결합되어 중간 역할을 수행하며 View와 JavaBean간 의존성을 느슨하게 한다
- 개발 속도가 느려질 수 있으나 유지보수성이 좋아짐
- Spring MVC
API
특정 포맷으로 (보통 JSON)으로 Data 를 내려주고 화면(Vue, React 등 )에서 알아서 데이터를 가공하여 사용할 수 있음
혹은 서버끼리의 통신이 필요할 때는 View 가 필요 없기 때문에 API 방식을 사용한다.
'Java > Spring' 카테고리의 다른 글
[Spring] Spring Bean 등록과 의존관계 설정 (0) | 2022.06.20 |
---|---|
[SpringBoot] Junit 으로 단위테스트 하기 (0) | 2022.06.17 |
[Spring Boot] 2. 스프링 웹 개발 기초 - Static, MVC패턴, API 방식 (0) | 2022.05.30 |
[SpringBoot] 1. Spring Boot 프로젝트 시작하기(생성, Controller, View, Build) (0) | 2022.05.27 |
[Spring Framework] 스프링의 이해/개념 (IoC, Bean, AOP, PSA) (0) | 2021.10.22 |