DAO(Data Access Object)

YunGyu Choi·2023년 9월 7일

What is DAO?

데이터베이스에 대한 CRUD작업을 캡슐화 해준다.
이는 애플리케이션 로직과 데이터베이스 접근 로직을 분리시킨다.
각각의 관심사가 분리되면 코드의 유지보수가 쉬워진다.

인터페이스 기반 DAO

MyBatis에서 DAO를 인터페이스로 정의하고 구현할 수 있다.
인터페이스 기반으로 DAO를 구현하면 테스트시 mock 객체를 쉽게 사용할 수 있다.
이는 단위 테스트를 작성하고 실행하는데 큰 이점을 제공한다.

XML 매퍼 기반 DAO

MyBatis는 쿼리와 결과 매핑을 XML 파일에 작성하여 관리할 수 있는 XML 매퍼를 지원한다.
XML 매퍼는 SQL 쿼리와 그 결과인 객체와 매핑 정보를 별도의 XML 파일로 관리한다.
따라서 코드와 SQL을 분리하여 관리할 수 있다.

어노테이션 기반 DAO

MyBatis는 DAO의 메소드에 SQL쿼리를 작성하는 어노테이션 방식을 지원한다.
@Select, @Insert, @Update, @Delete 등의 어노테이션을 사용하여 메서드에 직접 SQL 쿼리를 작성할 수 있다.
이 방식은 SQL 쿼리와 자바 코드를 가까이 두어 코드의 가독성을 높일 수 있다.



[ref](https://gdngy.tistory.com/161)
profile
velog에는 이론을 주로 정리하고, 코드와 관련된 것은 Git-hub로 관리하고 있어요. 포트폴리오는 링크된 Yun Lab 홈페이지를 참고해주시면 감사하겠습니다!

0개의 댓글