MVC Pattern
MVC Pattern ( Model-View-Controller)
- Model : 데이터 처리
- View : jsp
- Controller : 요청 과 응답 referencing
- 구성
- Service: 일처리
- Dao : Database 로직 처리
- Dto : 바구니
- JSP : 화면단
Models
Model 1 구조
model 1은 view 와 logic을 JSP 페이지 하나에서 처리하는 구조
- 장점 : 개발 시간 단축, 비용 감소
- 단점
- 유지보수에 불리 : 만약 SQLException이 발생했을 경우 혹은 계산이 잘못된 경우 여러가지 데이터와 로직 중 잘못된 로직을 찾기 힘듦
- 확장성 x (신기술, framework등 )
- Backend와 Frontend의 혼재로 인해 분업이 힘듦
- java코드와 섞이기 때문에 jsp 코드가 복잡해짐
Model 2 구조 (MVC 구조)
JSP와
✨Servlet -> Service -> Dao
Controller
Servlet: getParameters로 데이터를 받고 서비스 호출.
직접 일을 안하고 다리를 놓아준다
Model
Service : paging, Buisness Logic 처리. DB가 필요하면 Dao를 호출하고 일처리가 끝나면 서블릿에게 리턴
Dao : Database Logic 처리. 서비스에서 데이터를 얻어오면 결과를 리턴
직접 일하는 애들
View
JSP : View 처리
화면단
REST API :
- MyBatis를 사용하면, Dao를 대체
- Controller의 request.getParameters("이름")과 setAttribute등을 Spring을 통해 쉽게 처리
** 하지만 프로젝트의 규모가 작은 경우는 스프링을 사용하지 않는게 더 편해진다.
- Vue프레임워크로 Jsp를 대체 (cvs, xml, json을 리턴)
위와 같은 구조의 대표적인 사이트 : data.go.kr
요즘 인스타그램같은건 Single Page에서 부분부분만 다르게 나온다고 함
- 장점
- JSP 코드 단순화
- 화면과 Logic단의 분리 -> 분업 용이
- 기능에 따른 코드 분리 -> 유지 보수 :)
- 확장성이 뛰어남
- 단점
- 구조가 복잡하여 초기 진입이 어려움
- 개발 시간의 증가 -> 개발 비용 증가