웹 프로젝트
web - 컨트롤러
service - 실제 서비스
repository - 저장소-> 프로젝트 설계를 할때, service와 repository는 항상 동일하고 어떤 프로젝트이냐에 따라서 컨트롤러는 바뀔 수 있다. 앱 프로젝트의 경우 app - 컨트롤러가 적용된다.
사용자가 요청하면 컨트롤러에서 관련 메서드를 찾는다.
컨트롤러에서 필요한 "서비스"를 서비스에 요청한다.
서비스에서 필요한 데이터를 리파지토리에 요청한다.
리파지토리에서는 사용자의 요청에 따라 DAO 또는 네트워크에서 필요한 데이터를 가져온다.
예1 )
A 프로젝트 -요청--> B 프로젝트
예2 )
롤전적 검색 과정
요청 -> 컨트롤러 -> 서비스 -> 리파지토리 -> 롤DB
사용자가 무엇을 요청했는지에 따라 응답이 달라진다.
즉, 요청에 따라 응답이 여러형태일 수 있다.
사용자에 따른 다른 응답 형태
사용자 <-----응답------ 컨트롤러
브라우저 HTML
핸드폰화면 JSON
web - 컨트롤러 (HTML 리턴) {app인 경우, app - 컨트롤러(JSON 리턴)}
service - 서비스
domain - 모델
domain - DAO (원래는 repository이다. 통신인 경우에는 DAO대신 네트워크이다.)