DTO(Data Transfer Object): 데이터를 전송하는 객체
DAO(Data Access Object): 데이터에대한 접근을 추상화하고 캡슐화하는 객체
클라이언트가 서버에 어떻게 요청하고 서버는 어떻게 처리하여 내보내는지 회원가입을 예로 이해해 보겠음.
1. 회원가입 화면에서 클라이언트는 아이디나 비밀번호를 유저에게 입력받고 입력받은 값을 서버로 보낸다(Json형식)
2. 데이터를 requestDto로 받는다
3. 회원가입 컨트롤러에서 위의 requestDto를 매개변수로 받아 서비스 로직으로 보낸다
4. 서비스 로직에서는 requestDto 내부의 값들이 실제 db에 있는지 확인 후 가입 진행
- 실제 db에 requestDto 값들이 있는지 확인하기 위해 dao가 필요.(jpa를 사용한다면 repository가 dao의 역할)
- jpa를 사용하면 find, exist 등 간단히 사용 가능하고 아래의 이미지에서 실제 비밀번호를 저장할 때는 passwordEncoder 등을 사용해 암호화 해야함.
다시 요약하자면
- json 형태로 클라이언트로부터 값을 받고 요청된 대로 데이터 형식을 requestDto에 지정.
- 가져온 데이터가 실제 DB에 있는지 확인하거나 실제 DB를 저장, 수정, 삭제할 때 별도의 dao 클래스를 생성하여 요청.
- 2단계에서 dao는 실제 db 작업을 완료하고 클라이언트에 값을 보내기 위해 responseDto에 다시 내보낼 형식을 지정
'Java' 카테고리의 다른 글
[Java - Hash] HashTable / HashCollision(해시 충돌) (0) | 2023.09.04 |
---|---|
[Java] 직접 구현해보는 Stack (1) | 2023.09.03 |
[Java] REST API 간단 이해 (0) | 2023.08.04 |
[Java] 문자열 String, Buffer, Builder (0) | 2023.07.23 |
객체지향적 설계를 위한 5가지 SOLID 원칙 (1) | 2023.02.24 |