IT/JAVA

MVC 패턴 복습

_KH_ 2025. 2. 7. 02:35

[ 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