Beans와 DTO, DAO, MGR 이해하기

 | 

# 1. Beans(강남콩)의 이해
      - JSP Page 상에 나열되는 자바 처리 로직은 디자인 코드와 함께 매우 복잡한 코드를 구성합니다.
        이로 인해 디자인 변경시 자바코드가 영향을 받아 오류가 자주 발생되며, 코드 수정시 코드를 알아볼 수
        없어 유지보수가 매우 힘이 듭니다.
        이러한 반복되는 자바 코드들을 JAVA 파일안에 저장하여 사용하는 형태를 빈즈라고 합니다.
      - 확장자는 *.java입니다. 컴파일하여 .class 형태로 배포합니다.
      - 메모리에 생성된 Beans(DTO)는 다른 자바 클래스(DAO, Business Logic)에 의하여 사용됩니다.
      - Beans는 dll과 같은 원리를 가지고 있습니다.
      - Beans는 sun에서 제시한 작성 규칙이 존재합니다.

# 2. DTO(Data Transfer Object : 데이터 전송 객체, value Object) Beans
      - 폼에서 입력된 데이터들은 하나의 DTO 객체로 변환 될 수 있습니다.
      - 하나의 데이터베이스 레코드를 저장하며 레코드와 같은 구조를 가지고 있습니다.
      - 하나의 레코드는 Beans 클래스 객체 하나로 매핑됩니다.

   1) 필드 선언 (멤버 변수, 인스턴트 변수)
       - 하나의 컬럼 값을 저장
       - 보안성 및 캡슐화, 데이터 은닉의 목적으로 private를 선언합니다.
       ex) private String name;

   2) setter
       - 필드에 값을 저장하는 기능을 합니다.
       - HTML 폼의 INPUT 태그의 값을 빈에 저장하는 역할을 합니다.
       - 메소드 명은 set + input 태그의 이름 중 첫자를 반드시 대문자로 사용하는 규칙을 적용해 태그명을 지정
          합니다. 따랏 HTML에서 input 태그의 이름은 영문 소문자로 사용하여 태그의 이름에 신중을 기해야
          합니다,

          예1) 
          <input type="text" name="id" size="15" value='user1'>
          <input type="text" name="addr" size="15" value='user1'>

           public void setId(String id) {
               this.id = id;
           }

           public void setAddr(String addr) {
               this.addr = addr;
           }

   3) getter
       - 인스턴스 변수의 값을 가져오는 기능을 합니다.

          예1) public String getName() {
                    return name;
                 }

# 3. DAO(Data Access Object : 데이터 접근 객체t) Beans
      - DTO 객체를 만들어 편집 및 조작을 합니다.
      - DTO를 데이터베이스 서버에 저장하기도 하고, 데이터 베이스 서버로부터 레코드를 Select해 DTO 객체로
         변경해 가져오기도 합니다.
      - Insert, delete, upadate, select 등 데이터 처리를 주 목적으로 ㅎ바니다.

# 4. Manager Class(관리 클래스, MGR)
      - DTO와 DAO 사이에서 연결 및 처리 역할을 합니다.
      DreamWeaver                      Eclipse            DbEdit
      (*.html, *.jsp)                       (*.java)          (*.sql)               
      ----------- ------------------------  -------------      
      JSP <-----> Manager Class <-----> DAO <-----> Oracle
       ↑                                ↑
       │                                │
       └--------------------------------┘    
                       DTO  
             계층간 데이터 전송 객체 

# 5. Beans의 사용 Scope(범위)
      - page : 기본값, page를 벗어나면 자동으로 소멸합니다.(중요)
      
      - request : forward, include에서 사용 가능, 약간 사용됩니다..

      - Session : 사용자가 로그인해 있는 동안 계속적으로 살아 있습니다.
                       메모리 소모가 심함으로 필요한 곳에 적절히 사용해야 됩니다.
                       쇼핑카드 구현등 객체를 지속적으로 유지해야하는 경우에 사용됩니다.
                       사용자가 브라우저를 닫으면 고나련 JSP session Bean은 소멸됩니다.(중요)

      - Application : 웹 사이트 전체, 모든 사용자에게 영향을 미치는 빈
                           메모리 소모가 심함으로 많이 사용하지 않고, 서버가 운영되는 동안 객체가 살아있습니다.
                           모든 사용자가 변수와 객체를 공유하게 됩니다.
                           서버를 재 시작해야 변수들이 재 설정됩니다.

Posted by 커널제로

본 블로그는 페이스북 댓글을 지원합니다.

,