MVC
- MVC 템플릿을 제공하는 Spring 프레임워크
📌 MVC의 장점
- 유지보수 용이
- 모듈화를 강제해서 개발의 편의성 도모
ex) 레고-블록이 작을수록 다양한 output - 프로젝트 코드가 '낮은 결합도'를 가짐
- 프로젝트 코드가 '높은 응집도'를 가짐
M | V | C |
Model | View | Controller |
데이터(DB)와 연결 | 사용자가 보는 화면 | V ↔ M 을 연결하는 파트 |
✅ M ---- Model (모델)
: 데이터(DB)와 관련된 로직을 담당하는 파트
- DB에서 데이터를 다루는 방법에 대한 코딩 == SQL
- DB의 데이터 <---> JAVA 환경 == JDBC, DAO
CRUD 기능을 구현하는 파트(사용자에 제공할 서비스를 코딩)
✅ V ---- View (뷰)
: 사용자가 보는 화면에 대한 모든것을 담당하는 파트
- 사용자 편의성 (UX/UI) 고려
- 유효성 검사
- 사용자와의 입출력을 담당하는 파트
✅ C ---- Controller (컨트롤러)
: V <---> M 을 연결하는 파트
✨MVC 패턴의 핵심
- M과 V가 절대 서로 딱! 붙어있지 않게 하는 것 ---> 무조건! 분리되어있어야함!!
- 사용자가 DB에 직접접근 하는 일 XXX
ex)
학생부 프로그램
- 사용자가 ON
- V가 "어떤 메뉴를 이용할래?"
사용자가 "학생목록출력" 입력
V가 C한테 "C야 사용자가 학생목록출력 이용한대~"
C는 M한테가서, M아, 학생목록 데이터 좀 줄래?
M은 DB에서 학생목록 데이터 받아옴
M이 C한테 받아온 학생목록 데이터를 다시 줌
C는 V한테가서, "V야, 여기 너가 찾던 학생목록 데이터~" - V는 사용자(console)에게 학생목록 데이터 출력해줌
📍 주의) 한글 코딩 시 V와 M은 같은 라인에 넣으면 안 됨!
👏 설계를 꼼꼼히 하는 것이 무엇보다 중요
1) 변수명
2) 메서드명
메서드 시그니처
input 개수와 타입
output 타입
3) 클래스 및 객체 이름들
4) 사용할 기능
5) 개발기간
📍 주의사항
- syso()는 오직 view에서만 사용가능
- CRUD ( DAO메서드) input은 생성자 클래스명 변수명으로 통일!
public boolean insert(DrinkVO vo) { // 목록을 출력하는 경우 output을 사용한 배열로 이용 } public ArrayList<DrinkVO> selectAll(DrinkVO vo) { // 배열에 저장된 데이터를 사용하기 때문에 }
- CRUD ( DAO메서드) output은 boolean로 고정!
- CRUD ( DAO메서드) 메서드명은
insert
selectAll ( getAll )
selectOne ( getOne )
update
delete
'Language > JAVA' 카테고리의 다른 글
[JAVA 기초 이론] 인터페이스 interface (0) | 2024.02.20 |
---|---|
객체지향 프로그램(OOP)의 특성 (0) | 2023.05.26 |
[JAVA 기초 이론] 집합 Set (0) | 2023.05.22 |
[JAVA 기초 이론] 스레드 Thread (0) | 2023.05.22 |
[JAVA 기초 이론] 오버로딩 / 오버라이딩 (0) | 2023.05.22 |