스프링 부트 서비스 구조
Client = 일반적으로 프론트엔드 모듈(웹 브라우저의 화면)
Controller , Service, DAO = 스프링 부트에서 코드를 작성하는 영역
출처
어라운드허브 스튜디오 - AroundHub Studio
데이터베이스 적용하기 | Maria DB, Entity, Repository, DAO, DTO [ 스프링 부트 (Spring Boot) ]
https://www.youtube.com/watch?v=4Pvd0KrTfvE
Client -> Controller
- 웹 브라우저에서 입력한 내용을 계층 간 데이터 값을 전달하기 위한 용도로 사용되는 객체인 DTO(Data Transfer Object) 객체에 담아 Controller로 요청한다.
Controller -> Service
- Controller는 요청을 확인한 뒤 일치하는 Service로 DTO 객체를 보내준다.
Service -> DAO(Data Access Object)
- 비즈니스 로직에 전반적인 내용을 처리하는 Service는 요쳥에 필요한 내용을 처리한다.
- DTO에 있는 데이터 말고도 DB에 추가하거나 뺄 내용들을 처리하여 Entity 객체를 만든 후 DAO로 보낸다.
(ex 회원가입 요청시 아이디 값, 비밀번호 등의 데이터가 들어온다. DB에 저장될 때는 아이디와 비밀번호 뿐만 아니라 가입 날짜 등 그 외에 내용들을 서비스 객체 처리)
Entity
- Entity(Domain)는 DB의 테이블에 1:1로 매칭이 되는 DB와 가장 가까운 객체이다.
- DB에 쓰일 컬럼이나 여려 엔티티 간의 연관관계를 정의한다.
DAO, Repository
- DAO(Data Access Object)는 데이터에 접근하도록 DB접근 관련 로직을 모아둔 객체로 DB를 사용하여 데이터를 조회하거나 조작하는 기능을 전담한다.
- Repository는 DAO와 거의 유사하지만 엔티티 객체를 보관하고 관리하는 저장소로 DB에 적용하고자 하는 CRUD를 정의하는 영역이다.
<참고>
어라운드허브 스튜디오 - AroundHub Studio, 데이터베이스 적용하기 | Maria DB, Entity, Repository, DAO, DTO [ 스프링 부트 (Spring Boot) ], https://www.youtube.com/watch?v=4Pvd0KrTfvE