ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JDBC - DAO와 DTO
    비전공자 공부일기/:: DB - SQL 2019. 6. 3. 16:53

    2019. 06. 03 필기

     

    < DAO >

    DBMS를 변동하거나 수정사항이 있을 때, 소스를 통째로 고쳐야 한다면 무척 번거로울 것이다.
    따라서 유지보수를 편하게 하기 위해 사용하는 게 'DAO'이다. DAO는 DB의 데이터를 다루기 위해 만들어진 객체이다.

    DAO란?
    - Data Acess Object, 즉 DB의 데이터에 접근하는 객체.
    - DB를 사용해 데이터를 조회, 조작하기 위해 만든 오브젝트
    - 영속적 데이터 접근, 조작에 대한 로직을 캡슐화하는 것
    --- 테이블의 개수만큼 만듦
    --- 비즈니스 로직과 영속적 데이터 로직이 섞여있으면 서로 종속관계가 생기게 된다.(즉, 프로그램 결합도가 높아져서 유지보수가 힘들어진다.) 이것을 DAO를 이용해서 방지

    *비즈니스 객체 : DAO 메소드를 호출하는 클라이언트. 즉 입출력을 실제적으로 수행하는 부분이다.

    DAO 인터페이스
    : DAO에서 사용하기 위한 메소드를 추상메스드로 선언해 두는 인터페이스.

    DAO 클래스
    - DataSoure에 정보의 저장, 변경, 삭제, 검색 기능을 제공하기 위한 메소드가 선언된 클래스
    --- DAO 인터페이스를 상속받아 작성하는 것을 권장 
    --- 싱글톤 클래스(프로그램에 인스턴스를 하나만 제공하는 클래스)로 작성하는 것을 권장
    --- 일반적으로 클래스 이름 뒤에 DAO라고 붙이는 경우가 많다.

    ※ 싱글톤 클래스 만들기 ※
    1. 생성자 은닉화하여 선언(private으로 선언) -- 클래스 외부에서의 생성자 접근 방지(즉, 인스턴스 생성 불가능)
    2. 자신의 참조형 변수를 static 변수로 선언 -- static은 프로그램 실행 중에 1개만 생성
    3. 2번에서 생성한 변수가 null이면 객체 생성 / return이 있으면 return하는 static 메소드를 선언
        => 관습적으로 shareInstance 이 이름을 메소드 이름으로 사용

    DataSource
    : 데이터를 저장하기 위한 저장장치 또는 소프트웨어(RDBMS)

     

    <DTO>

     

    DTO 클래스(Data Transfer Object DAO)
    - 클래스의 메소드에서 행정보를 전달받거나 행정보를 반환하기 위한 클래스
    --- 기본적으로 테이블의 컬럼과 1:1로 매칭되는 필드 선언
    --- 필드명은 테이블의 컬럼명과 동일하게 작성하는 것을 권장(언더바케이스를 캐멀케이스로)
    --- 최소 테이블의 개수만큼, 또는 그 이상으로 만들어야 함

    --- 로직을 가지지 않는 순수한 데이터 객체이고 getter, setter 메소드만 존재하는 클래스

    '비전공자 공부일기 > :: DB - SQL' 카테고리의 다른 글

    JDBC - 과제 제출 방법 (jdbc 프로그램 저장법)  (1) 2019.06.05
    JDBC - 정규표현식  (3) 2019.06.04
    JDBC - Statement, Connection  (2) 2019.05.31
    JDBC - ResultSet  (0) 2019.05.31
    오라클 DB 정리09-JDBC  (2) 2019.05.29

    댓글

coding wanee