반응형
form과 entity와 dto의 차이
··· 외형의 차이는 없습니다.
정말로, 진짜로. 사용법이 다른 것만으로 내용은 (거의) 변하지 않습니다.
3개 모두 단순한 Bean입니다.
memberBean이란?
대체로 이런 느낌의 클래스입니다.
여러가지 프로퍼티가 있어, 그 프로퍼티에 대한 setter/getter 메소드를 가지고 있습니다.
public class MemberBean {
private String name;
private int age;
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return this.age;
}
public void setAge(int age) {
this.age = age;
}
}
예에서는 클래스 이름을 "MemberBean"으로 지정하지만,
- form의 경우: MemberForm
- entity의 경우: Member
- dto의 경우: MemberDto
form특징
- HTTP의 POST 메소드로 전송된 값(=form 태그의 내용)이 들어 있다.
- 그래서 웹 서비스 이외에서는 별로 사용하지 않는 것 같다.
- form 태그의 내용이므로 Bean의 이름도 form・・・라고 기억해 두면 좋다고 생각한다.
- 클래스명은 「xxxForm」이 되는 경우가 많다.
entity의 특징
- DB에 등록·갱신하는 값을 넣어 둔다.
- DB로부터 취득한 값을 보관 유지한다.
- 클래스명과 테이블명은 대개 동일하게 되는 경우가 많다.
dto의 특징
- Data Transfer Object의 약어가 dto.
- 이름에서 알 수 있듯이 데이터 교환을위한 빈.
- Form 클래스나 Entity 클래스의 값을 직접 편집하거나 하면, 원래의 데이터로 되돌릴 수 없는 경우가 있기 때문에,
일단 Dto 클래스에 넣어 두고, 비즈니스 로직내에서 값의 편집등을 실시하거나 한다.
데이터 교환은 예를 들어 form에서 entity로 변환합니다.
예를 들어, form에서는 연/월/일과 입력을 분할하고 있습니다만, DB상에서는 생년월일을 Date형으로 가지고 있는 경우, 어딘가의 타이밍에 결합할 필요가 있습니다.
이 경우 form이나 entity를 직접 편집하면 뭔가가 있을 경우 원래 데이터로 되돌릴 수 없게 되는 경우가 있습니다.
그것을 피하기 위해서, 일단 dto에 넣어 두는・・・라고 하는 사용법을 합니다
요약
Form, Entity, Dto 클래스는 클래스의 구성으로서는 모두 같고,
그 용도에 따라 이름이나 역할이 다르다.
반응형
'개발 > JAVA' 카테고리의 다른 글
Java - Collection 핵심만 요약해보자 (List, ArrayList, Map) (0) | 2022.11.04 |
---|---|
java - UserDetails 과 UserDetailsService 로그인 기능 기초지식 (0) | 2022.11.02 |
java - @GeneratedValue 기초지식 (0) | 2022.11.01 |
Java - Spring Boot의Security를 알아보자 (0) | 2022.11.01 |
[java] 제네릭스 (generics) 사용법 (0) | 2022.10.31 |
댓글