📜 Spring 입문 과제 관련
:: MVC 패턴 (Model-View-Controller)
Model
- 어플리케이션이 무엇을 할 것인지 정의
- DB와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터 다룸
View
Controller
- Model이 데이터를 어떻게 처리할지 알려주는 역할
:: Controller
- MVC패턴에서의 Controller 역할
- 사용자 요청 진입 지점
- 요청에 따라 어떤 처리를 할지 결정을 Service에 넘겨줌
:: Service
- 알맞은 정보 가공 과정(비즈니스 로직 수행)
- Controller에서 넘어온 요청을 알맞게 가공해 Controller에게 다시 넘겨줌
- DB가 필요할 때에는 repository에 요청
- 프로젝트 규모가 클수록 service 내용 비대해짐
:: Repository (dao)
- Entity에 의해 생성된 DB에 접근하는 메서드 들을 사용하기 위한 인터페이스
- DB 연결, 해제, 자원 관리
- CRUD 작업처리
- JpaRepository 상속
:: Controller, Service, Repository 전체구조
:: DAO & DTO & Entity
:: DAO (Data Access Object) - repository package
- 실제 DB에 접근하는 객체
- 쉽게 말해서 Mysql 서버에 접근하여 SQL문을 실행할 수 있는 객체
- Service와 DB 연결
- SQL을 사용해 (개발자가 직접 코딩) DB에 접근한 후 적절한 CRUD API 제공
:: DTO (Data Transfer Object) - dto package
- 계층간 데이터 교환을 위한 객체
- 즉, DB에서 데이터 얻어 service 나 controller 등으로 보낼 때 사용하는 객체
- 로직없는 순수한 객체, getter와setter 메소드만 소유
- DB에서 꺼낸 값 임의 변경 필요 없기 때문에 setter 없음
:: Entity Class - domain package
:: 패키지 전체구조