실제 DB의 테이블과 매핑되는 객체이며, 핵심 데이터와 그 데이터를 처리하는 담당입니다.
JPA가 관리하며 CRUD, 중요 규칙을 정리합니다.
사용자에게 보여지는 UI를 담당합니다.
모델이 처리한 데이터를 받아서 사용자에게 보여줍니다.
Model과 View 사이의 연결하는 역할을 합니다. 사용자의 요청을 받아 해당 Model을 호출하고, 모델이 처리한 결과를 View에게 전달하여 화면을 업데이트 합니다.
실제 DB에 저장되지 않고, 계층 간 데이터 전송을 위해 사용하는 객체입니다.
Entity 객체를 그대로 View에 전달하면 보안, 불필요한 데이터 등 문제가 발생합니다.
그럴 때 필요한 데이터만 골라서 담기 위해 사용됩니다.
모든 실제 업무를 담당하고, 비즈니스 로직을 담당하는 핵심 계층입니다.
JPA를 이용해 쿼리 없이 DB 작업이 가능하고, DB와 통신하는 역할을 담당하는 계층입니다.
1.사용자가 JSON 요청을 보냄
2.Controller가 이 JSON 요청을 받고, DTO로 변환
3.변환된 DTO를 Controller가 Service로 전달
4.Service는 DTO를 Entity로 변환
5.Entity를 DB에 저장하기 위해 Repository에 데이터 조회 요청
6.Repository는 DB에 접근하여 SQL 쿼리를 실행
7.Service는 Repository로부터 Model(Entity) 객체를 받음
8.Service는 받은 Entity 객체를 DTO 객체로 만들어 Controller로 반환
9.Controller는 받은 DTO를 View에 전달
10.View는 DTO에 담긴 데이어를 사용하여 UI에 보여줌
View → Controller → DTO 변환 → Service → Entity 변환 → Repository → 쿼리 실행(JPA) → DB
DB → Entity → Repository → Service → DTO 변환 → Controller → View