[SpringBoot] JPA란 : 흐름알기, DTO와 DAO와 VO

임유빈·2022년 8월 12일
1

SpringBoot

목록 보기
10/10
post-thumbnail

Client ~ Server ~ DB 흐름


주입식 생성자와 매개변수가 없는 생성자

생성자의 매개변수가 없어도 디스페처서블릿은 생성자를 만들어야 하는 이유 :

JPA는 Entity를 사용하여 클라이언트의 데이터를 인스턴스 객체를 만들어 Controller에 매개변수로 전달할 때 생성자가 없으면 디스페처서블릿이 생성자를 만들지 못한다.

Java에서 DB 사용 :

Connetion 생성 > PS 만들고 직접 SQL 코드 작성 > Connetion 닫아주기

DAO :

위와 같은 복잡한 과정을 생략하고 DB로직을 객체 하나에 메소드로
구현하여 Controller나 Service에서 필요할 때 메소드 호출하여
사용할 수 있도록 한다. 이렇게 만든 것을 모은 모음집을 DAO라고한다.
(다수의 사용자들이 이용하면 반응속도 느려짐 > 이때 DAO 사용하면 해결)

DTO :

계층 간 데이터 교환을 하기 위해 사용하는 객체로, DTO는 로직을 가지지 않는 순수한 데이터 객체(getter & setter 만 가진 클래스)이다 > 데이터를 변형하여 전달

Selete * From 테이블명;
위 코드에서는 조건이 없다. 만약 WHERE USER ID = 길동 이라는 조건이 붙는다면 위 코드처럼 동적인 조건이나 INSERT, UPDATE 작업이 일어나는 경우, 새로 생성하고 싶은 데이터는 각 컬럼에 들어가야 할 내용, 수정하고 싶다면 기존의 내용 혹은 수정하고자 하는 내용이 있어야 한다. 이 외에도 이들을 수정하기 위해 애플리케이션에서 필요로하는 요구사항이 있는데 그것을 DTO라고 한다.

Entity :

DB 테이블에 존재하는 컬럼들을 필드로 가지는 객체.
DB 테이블과 1대1로 대응되며 때문에 테이블이 가지지 않은 컬럼을 필드로 가져서는 안된다. (Entity는 다른 클래스를 상속 or 인터페이스 X )

VO :

값 오브젝트로써 값을 위해 쓰인다. 사용하는 도중에 변경 불가능하며 오직 읽기만 가능하다. (DTO와 유사하지만 DTO는 setter를 가지고 있어 값이 변할 수 있다)

0개의 댓글