-
[STUDY12] DAO에 관하여FISA 2026. 1. 12. 15:20
1월 12일 수업을하다가
* 순수db와 소통하는 클래스구조 - Data Access Object(DAO)
*
* 권장사항 :
* table당 dao클래스는 1:1권장
* join작업이 빈번한 구조의 경우 추가 dao개발도 있음
*
에대해 배웠습니다.
DAO에대해 더 알고싶어서 글을 적어봅니다.
melog하면서 dto에대해 빠삭하게는아니더라두 조금알았어요!!!
이거랑 비슷한게 아닐까싶어서? 더 깊게 파고드려구요
우선 저번에 melog할땐 dto 했었어요.
Client > Server, Server > Client 혹은 Controller >Service같은 Layer에서 사용합니다.
순수 데이터 객체로, 이름값처럼 Data Transfer Object == 데이터를 옮기는 오브젝트라고 보시면돼요 .
엔티티 자체를 옮겨다니다보면, 보안위협이나 순환참조같은 에러가 발생한다는거죠
로직이없어요.
public class UserDTO { private String userId; private String name; private String email; // getter / setter }와같이 어느 클래스에 필요한 데이터 오브젝트를 이 값들로 채우겠다 ! 선언하기때문에
전부 선언하지않아도 되는거죠
근데?
DAO는 로직이 이써용.
DB접근 로직을 캡슐화 한 객체입니다.
SQL문이 들어가고 + Connection관리가 들어가고 ResultSet으로 객체를 매핑합니다.
Connection으로 연결한 db에 sql문으로 데이터 정의를하고, resultSet으로 매핑하는 과정인거예요.
이때 나오는 특징이 JDBC/ JPA/ MYBATIS를 사용합니다.
public class UserDAO { public UserDTO findById(String userId) { // DB 연결 // SQL 실행 // ResultSet → UserDTO 변환 return userDTO; } public void insert(UserDTO userDTO) { // INSERT SQL } }그래서 로그인을 예시로 들었을 때,
Client-> server > Controller > DTO(LoginRequestDTO) > Serice > DAO(DB접근) > DTO > Service > Controller > View
로 보시면될것같아요
728x90'FISA' 카테고리의 다른 글
[STUDY17] RESTful API 와 elasticSearch (0) 2026.01.16 [STUDY13] 01.12수업 내용 총정리 (1) 2026.01.12 [회고]2주차_우리FISA 클라우드 엔지니어링 (2) 2026.01.10 [STUDY11] SSH, 포트포워딩차이 (0) 2026.01.08 [STUDY10] lombok의 아규먼트어노테이션?? (0) 2026.01.06