데이터를 전문적으로 처리하는 객체 DAO는 주로 VO를 단위로 처리 DAO를 호출하는 객체는 DAO가 내부에서 어떤식으로 데이터를 처리하는지 알 수 없도록 구성합니다. 이 때문에 JDBC 프로그램을 작성한다는 의미는 실제로 DAO를 작성한다는 의미
객체 지향 프로그램에서는 데이터를 객체라는 단위로 처리, 테이블의 한 행(row)을 자바프로그램에서는 하나의 객체가 됨
데이터베이스는 하나의 데이터를 엔티티(entity)라고 함, 자바 프로그램에서 이를 처리하기 위해 테이블과 유사한 구조의 클래스를 만들어서 객체로 처리하는 방식을 사용하고, 이 때 만들어진 객체는 값을 보관하는 용도라는 의미에서 Value Object라고 함
데이터를 전송하는 객체
vo 가 dto로 변환 (modelMapper) 다시 dto를 vo로 변환
주요 기능과 특징
ModelMapper
는 객체의 필드명이나 메서드명이 일치하는 경우 자동으로 값을 매핑합니다. 필드 타입이나 이름이 다르더라도 설정을 통해 유연하게 대처할 수 있습니다.간단한 예제를 통해 설명하면, 예를 들어 BoardDTO
클래스와 Board
클래스가 있다고 가정했을 때:
javaCopy code
public class BoardDTO {
private String title;
private String content;
// getters, setters, 기타 메서드
}
public class Board {
private String title;
private String content;
// getters, setters, 기타 메서드
}
ModelMapper
를 사용하면 다음과 같이 두 객체 간의 매핑이 가능합니다
javaCopy code
ModelMapper modelMapper = new ModelMapper();
BoardDTO boardDTO = new BoardDTO();
boardDTO.setTitle("Sample Title");
boardDTO.setContent("Sample Content");
Board board = modelMapper.map(boardDTO, Board.class);
이렇게 함으로써 boardDTO
의 데이터가 Board
객체로 복사되어 매핑됩니다.
Matching Strategy
Standard(기본값)
source 속성을 destination 속성과 지능적으로 일치시킬 수 있으므로, 모든 destination 속성이 일치하고
모든 source 속성 이름에 토큰이 하나 이상 일치해야함
MatchingStrategies.STANDARD
토큰을 어떤 순서로도 일치시킬 수 있다.
모든 destination 속성들이 매치되어야 한다.
모든 source 속성은 최소 하나 이상의 이름이 매치가 되어야 한다.
MatchingStrategies.LOOSE
토큰을 어떤 순서로도 일치시킬 수 있다.
마지막 destination 속성 이름은 모든 토큰이 일치해야 한다.
마지막 source 속성 이름에는 일치하는 토큰이 하나 이상 있어야 한다.
=> 계층 구조의 마지막 destination 속성만 일치하도록하여 source 속성을 destination 속성에 일치시킬 수 있다
MatchingStrategies.STRICT
source 속성과 destination 속성의 이름이 정확히 일치 할때만 매핑해준다