JPA는 Entity를 사용하여 클라이언트의 데이터를 인스턴스 객체를 만들어 Controller에 매개변수로 전달할 때 생성자가 없으면 디스페처서블릿이 생성자를 만들지 못한다.
Connetion 생성 > PS 만들고 직접 SQL 코드 작성 > Connetion 닫아주기
위와 같은 복잡한 과정을 생략하고 DB로직을 객체 하나에 메소드로
구현하여 Controller나 Service에서 필요할 때 메소드 호출하여
사용할 수 있도록 한다. 이렇게 만든 것을 모은 모음집을 DAO라고한다.
(다수의 사용자들이 이용하면 반응속도 느려짐 > 이때 DAO 사용하면 해결)
계층 간 데이터 교환을 하기 위해 사용하는 객체로, DTO는 로직을 가지지 않는 순수한 데이터 객체(getter & setter 만 가진 클래스)이다 > 데이터를 변형하여 전달
Selete * From 테이블명;
위 코드에서는 조건이 없다. 만약 WHERE USER ID = 길동 이라는 조건이 붙는다면 위 코드처럼 동적인 조건이나 INSERT, UPDATE 작업이 일어나는 경우, 새로 생성하고 싶은 데이터는 각 컬럼에 들어가야 할 내용, 수정하고 싶다면 기존의 내용 혹은 수정하고자 하는 내용이 있어야 한다. 이 외에도 이들을 수정하기 위해 애플리케이션에서 필요로하는 요구사항이 있는데 그것을 DTO라고 한다.
DB 테이블에 존재하는 컬럼들을 필드로 가지는 객체.
DB 테이블과 1대1로 대응되며 때문에 테이블이 가지지 않은 컬럼을 필드로 가져서는 안된다. (Entity는 다른 클래스를 상속 or 인터페이스 X )
값 오브젝트로써 값을 위해 쓰인다. 사용하는 도중에 변경 불가능하며 오직 읽기만 가능하다. (DTO와 유사하지만 DTO는 setter를 가지고 있어 값이 변할 수 있다)