국비 수업을 들을 때 너무 헷갈렸던 개념이 바로 MVC 모델이었다. 눈에 보이지 않는 데이터 처리 과정이라 잘 와닿지 않았고 개념이 잘 잡히지 않은 상태에서 코딩을 하려 하니 코드가 뒤죽막죽 섞여 곤란했던 경험이 있다. 따라서 해당 개념을 다시 한번 정리하고 넘어가고자 한다.
여러 블로그를 찾아보고 이해한 내용을 바탕으로 정리해보았다.
추후에 잘못된 내용이 발견되면 수정해나가도록 하겠다.
Q) getter setter 사용하는 이유?
DTO는 가변의 성격을 가진 클래스이며 데이터 전송을 위해 존재한다. 따라서 getter와 setter 기능을 모두 가지고 있다.
그에 반해, VO는 값 그 자체의 의미를 가진 불변 클래스(Read-Only)를 의미한다. 따라서 getter 기능만 존재한다.
→ DTO는 인스턴스 개념이라면, VO는 리터럴 개념으로 이해하면 편하다.
→ DTO는 단지 데이터를 담아 전달하는 역할만 하지만, VO는 값들에 대해 읽기만 가능한 Read-Only 속성을 가져 객체로서 데이터 그 자체에 의미를 갖는다.
(1) 클라이언트(브라우저)는 Servlet으로 요청을 보낸다.
Servlet은 Java Web Application 개발환경에서 클라이언트의 요청을 받아 처리하고 dynamic web page를 응답해주는 역할을 한다.
(2-1) Servlet은 DB와 연결된 Java Bean 객체를 생성한다.
Q. 왜 DB랑 다이렉트로 연결하지 않고 Java Bean을 만들어 중간 다리 역할을 하게 하지?
(2-2) Java Bean은 DB에서 적절한 정보를 가져와 저장한다.
(2-3) Servlet에서 추가적인 비지니스 로직 과정을 수행한다.
(3) Servlet은 JSP 페이지와 통신한다.
(4) JSP 페이지는 Java Bean과 통신한다.
(5) JSP 페이지가 클라이언트(브라우저)에 응답한다.
MyBatis