[ 1. Model ]
■ 자료형 역할. 자료형 정의.
□ 자료형 역할을 하기 때문에 VO, DTO 등으로 불린다.
□ DB와 관련된 모든 행동은 Model이 함
[모델의 역할]
1) 자료형(DTO, VO)을 정의
2) CRUD, 비즈니스 메서드, 핵심 관심, 핵심 기능
3) DB, DBMS, DATA 등을 관리
■ Model에서는 DTO와 DAO를 사용한다.
■ DAO : Data Access Object의 줄임말로, DB에 접근할 수 있도록 해준다.
□ output은 boolean으로 고정
□ 다른 곳에서 사용해야 하므로 접근 제어자 public으로 선언
□ 5개의 메서드만 가질 수 있다. (DTO에 접근할 수 있게 하는 메서드들)
- selectOne, selectAll, insert, delete, update
=> DTO는 자료형을 정의한 것, DAO는 DB에 접근하기 위한 것.(CRUD)
(차이점 구분!)
[ 2. View ]
■ 사용자와의 의사소통 관리
[뷰의 역할]
□ 화면(console, 웹 브라우저, 사용자, 클라이언트)에 출력을 담당
□ 사용자(클라이언트, 화면, console, 웹 브라우저)로부터 입력을 받아오는 역할
□ 사용자와의 소통을 관리
□ 유효성 검사, 예외처리
=> 기능과 무관하며, 사용자와의 소통에만 집중한다.
* 뷰에는 접근제어자로 거의 public을 붙인다.
[ 3. Controller ]
■ 모델 + 뷰 결합 (실질적인 어플을 만드는 곳) -> 모델에서 데이터를 받아와서 뷰로 넘기고.. 이런 작업을
□ 모델과 뷰를 멤버변수로 가져야 한다. -> import로 가져옴
- 모델과 뷰를 초기화해서 가져오면 모델과 뷰에있는 멤버변수를 사용할 수 있다.
[controller의 역할]
1. 모델과 뷰를 연결하는 역할
2. 모델과 뷰를 멤버변수로 가져야 함!! ★
□ 로그 제외 sout 작성 금지. 유효성 검사는 뷰에서 할 것.
□ try-catch 쓸 때도 e.printStackTrace();를 사용하고 sout는 쓰지말기 (로그 찍는 거 제외)
private StudentDAO model;
private View view;
private int NUM;
public Controller(){
this.model=new StudentDAO();
this.view=new View();
this.NUM=1004;
}
□ DAO는 데이터베이스와 연결되므로 컨트롤러에서 멤버 변수로 선언해야 한다.
□ DTO는 단순한 데이터 객체이므로, 필요할 때만 DAO를 통해 받아서 사용하면 된다.
□ 그래서 컨트롤러에서 DTO를 멤버 변수로 선언하지 않는다
+) toString() 오버라이딩
- getter로 일일이 가져오는 것보다 toString() 오버라이딩해서 출력하는 것이 객체의 필드 값을 훨씬 간편하게 확인할 수 있다.
- 오버라이딩 하기 전에는 원래 객체의 주소값을 출력하기 때문에 객체의 데이터 값이 보이지 않고 해시값이 출력되게 된다. 하지만 오버라이딩 하면 객체의 내용을 간편하게 모두 출력할 수 있다.
* R C R U D 순으로 개발을 하자!
'IT > JAVA' 카테고리의 다른 글
MVC 패턴 - Model 분석 (0) | 2025.02.08 |
---|---|
MVC 패턴 - Controller 분석 (0) | 2025.02.07 |
파일 입출력 (0) | 2025.02.04 |
유효성 검사, 예외처리 전 코드 (2) | 2025.02.03 |
MVC 패턴 - 유효성 검사/예외처리 (0) | 2025.01.31 |