Entity, DTO, VO,

쉬운 목차

!
!
저에게는 생소한 개념들이 많아서 간략하게만 정의를 해보았고 자세한 개념은 따로 찾아보도록 하겠습니다.

Java에서 객체 구현의 대표적인 방법은 Entity, DTO 및 VO의 세 가지입니다.


Entity와 DTO를 따로 사용하는 이유는 DB와 View의 역할을 분리하기 위함입니다.


DB 레이어 = 퍼시스턴스, 뷰 레이어 = 프리젠테이션
엔터티는 현재 DB의 테이블과 매핑되어 있습니다.

/ 따라서 엔터티가 변경되면 엔터티와 연관됩니다.


이것은 또한 가르침에 영향을 미칩니다.


DTO는 View와 통신하고 자주 변경되기 때문에 분리되어 있습니다.


DTO는 변경되지 않은 항목을 복사합니다.

법인 : 현재 DB 테이블과 매핑
엔터티에서 세터를 자주 사용하면 개체의 값을 쉽게 변경할 수 있으므로 개체 일관성이 보장됩니다.


X 개런티
개체 일관성 유지 → 유지 보수성 ↑, 세터 메서드 사용 안 함
개체 생성자에 값을 넣어 설정자의 사용을 줄일 수 있습니다.


간단히 말해서 엔터티는 값이 변경될 수 없는 데이터베이스의 지속적인 지속성이므로
세터를 사용하지 않는 것이 좋습니다.

VO(가치 객체) : 귀중한 물건
VO는 여러 가지 이유로 사용되지만 일반적으로 값을 저장/비교하는 데 사용됩니다.


VO의 주요 작업은 equals() 및 hashcode()를 재정의하는 것입니다(부모의 메서드를 재정의).
VO에 선언된 모든 속성 값은 각 VO 객체에 대해 동일한 값을 가져야 동일한 객체임을 확인할 수 있습니다.


흠.. 무슨 소리야?

DTO
DTO는 계층간 데이터 교환을 위한 객체로 DB 데이터를 서비스나 컨트롤러로 전달합니다.


보낼 때 사용
논리가 없는 순수 데이터 개체
ㅡ DTO 요청: @NotBlank, @Length 등의 주석으로 입력값 검증
ㅡ Response DTO : setter를 사용하지 않고 생성자를 통해 값을 할당

*MVC
모델 : 애플리케이션 작업을 정의하고 DB와 연계하여 사용자가 입력한 데이터와 사용자에게 출력할 데이터를 처리
보다 : 사용자에게 보이는 부분
제어 장치 : 모델에 대한 데이터 처리 방법을 제안, 모델을 호출하기 전에 적절한 처리 후 모델을 호출
모델이 작업을 완료하면 결과가 보기로 전달됩니다.


일종의 디딤돌?
사용자 화면, 전산 처리, 역할을 제어하는 ​​중간 역할로 업무 분담
애플리케이션을 빌드할 때 훨씬 더 효과적이므로 MVC 패턴을 사용하십시오.

~ 안에
제어 장치
MVC에서 C와 같은 역할을 하며 컨트롤러는 사용자의 요청을 처리한 후 모델 객체를 지정된 뷰로 전달합니다.


→ 사용자의 요청이 발생하는 시점과 요청에 따른 처리는 서비스에 맡김
서비스에서 처리한 콘텐츠를 뷰에 전달합니다.


@Controller → 주로 View 반환
@RestController → @Controller + @ResponseBody, 주로 JSON/XML 형식의 객체 데이터 반환

서비스
1. 클라이언트가 요청을 보냅니다(Ajax, 가져오기 등).
2. 요청 URL(@RestController)과 일치하는 컨트롤러로부터 수신
3. 컨트롤러는 수신된 요청을 처리하기 위해 서비스를 호출합니다.


4. 서비스는 정보를 적절하게 처리하고 컨트롤러에 데이터를 반환합니다.


5. 컨트롤러는 서비스 결과를 고객에게 전달합니다.


서비스의 정보 처리 과정을 비즈니스 로직 실행이라고 합니다.

저장소
엔티티가 생성한 DB에 접근하기 위한 메소드를 사용하기 위한 인터페이스
@Entity로 DB 구조 생성 시 CRUD 생성
저장소 인터페이스는 JpaRepository에서 상속됩니다.


→ 공용 인터페이스 저장소는 JpaRepositroy를 확장합니다.


이 경우 JPA에서 제공하는 표준 메소드를 사용할 수 있습니다.

다오
mysql 서버에 접속 후 SQL 문을 실행할 수 있는 객체

JPA
Spring Data JPA를 사용하면 아주 적은 코드로 DAO를 구현할 수 있습니다.


삽입, 업데이트,
삭제 및 선택을 수행할 수 있습니다.


인터페이스 메서드를 선언하기만 하면 간단한 쿼리를 만들 수 있습니다.


!
그러나 매우 간단한 쿼리를 대체하기 때문에 복잡도가 높을수록 사용하기가 더 어렵습니다.


복잡성이 증가하면 DAO를 함께 사용한다고 합니다.

HTTP 방식
받다
서버에서 데이터를 가져와서 표시할 때 사용 / 값, 내용, 상태 등이 변경되지 않을 때 사용

우편
상태 변경에 사용되는 서버의 데이터 값

예) 게시판에 게시글 내용을 표시할 때 가져오기, 게시글 내용을 저장하거나 편집할 때 게시글

(참고 자료)

https://thenicesj.301

엔티티, DTO, VO 차이

Java에서 객체를 구현하는 방법에는 여러 가지가 있으며 대표 유형은 Entity, DTO 및 VO의 세 가지입니다.

나는 그들을 처리하려고 노력할 것입니다.

앞의 세 가지가 명확하게 구분되는 이유는 다음과 같다.

법인

thenicesj.tistory.com

https://velog.io/@nomonday/Spring-API-%EA%B0%9C%EB%B0%9C-%EC%8B%9C-request%EB%8A%94-DTO%EC%97%90 -%EB%B0%9B%EC%95%84%EC%98%A4%EC%9E%90

(Spring) API 개발 시 DTO에서 요청을 받음

Entity 엔티티에서 3개의 필드를 가진 엔티티 요청을 받았을 때 => (BAD) 요청 본문을 멤버 엔티티에 그대로 할당하고 로직을 그대로 실행 => 엔티티는 @NotEmpty와 같은 검증 로직이 필요함

velog.io

https://velog.io/@jybin96/Controller-Service-Repository-%EA%B0%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C

컨트롤러, 서비스 및 리포지토리란 무엇입니까?

제가 연구한 결과, 컨트롤러가 무엇인지 알기 전에 MVC 패턴을 아는 것이 중요합니다!
MVC 패턴은 Model View Controller의 약자로 개발 과정에서 동특성을 세 가지 유형으로 구분하는 방법론입니다.

velog.io

https://velog.io/@songyouhyun/Get%EA%B3%BC-Post%EC%9D%98-%EC%B0%A8%EC%9D%B4%EB%A5%BC-%EC%95 %84%EC%8B%9C%EB%82%98%EC%9A%94

Get과 Post의 차이점을 아십니까?

내 질문에 대답할 수 없다면 이 기사를 읽는 것이 좋습니다.

velog.io