JSP - VO, DAO, DTO란?

2023. 3. 29. 15:21·JSP/JSP 기본 개념
목차
  1. VO (Value Object)
  2. DTO (Data Transfer Object)
  3. DAO (Data Access Object)
728x90
반응형
SMALL

JSP를 배우는 중이시다니, 좋은 선택입니다! VO(Value Object), DTO(Data Transfer Object), DAO(Data Access Object)는 JSP에서 자주 사용되는 디자인 패턴 중 하나입니다.

VO, DTO, DAO는 모두 데이터를 처리하는 데에 사용됩니다. 각각의 역할과 예시 코드를 살펴보겠습니다.

VO (Value Object)

VO는 값을 가지는 객체를 의미합니다. 데이터베이스 테이블의 한 행(row)에 해당하는 값들을 VO 객체에 담아서 전달하는 역할을 합니다.

예시 코드:


public class MemberVO {
  private String id;
  private String password;
  private String name;
  private String email;
  
  // getter, setter 생략
}

위 코드는 MemberVO라는 이름의 클래스를 정의하고, id, password, name, email을 변수로 선언한 것입니다. 이렇게 VO 객체를 정의하면, DAO에서 데이터를 조회해 올 때, MemberVO 객체를 생성해서 값을 담아서 반환할 수 있습니다.

DTO (Data Transfer Object)

DTO는 데이터 전송 객체를 의미합니다. 여러 개의 값을 담아서 한 번에 전달하기 위한 목적으로 사용됩니다. VO와 비슷한 역할을 하지만, VO가 데이터베이스의 한 행(row)에 해당하는 값들을 담는 것에 비해, DTO는 여러 개의 VO 객체에서 필요한 값을 추출해서 담는 것이 특징입니다.

예시 코드:


public class MemberDTO {
  private String id;
  private String name;
  private String email;
  
  // getter, setter 생략
  
  public MemberDTO(MemberVO memberVO) {
    this.id = memberVO.getId();
    this.name = memberVO.getName();
    this.email = memberVO.getEmail();
  }
}

위 코드는 MemberDTO라는 이름의 클래스를 정의하고, id, name, email을 변수로 선언한 것입니다. MemberDTO 생성자에서는 MemberVO 객체를 받아서, id, name, email 값만 추출해서 MemberDTO 객체에 담습니다. 이렇게 DTO 객체를 정의하면, DAO에서 데이터를 조회해 올 때, MemberVO 객체를 생성한 후, MemberDTO 객체에 값을 담아서 반환할 수 있습니다.

DAO (Data Access Object)

DAO는 데이터베이스에 접근해서 데이터를 조회하거나 수정하는 역할을 합니다. DAO는 데이터베이스와의 직접적인 연결을 담당하는 JDBC(Java Database Connectivity)를 사용해서 데이터를 처리합니다.

예시 코드:


public class MemberDAO {
  private Connection conn = null;
  private PreparedStatement pstmt = null;
  private ResultSet rs = null;
  
  // DB 연결을 위한 메소드
  public void connect() {
    try {
      Class.forName("com.mysql.jdbc.Driver");
      String url = "jdbc:mysql://localhost:3306/mydb";
      String user = "root";
      String password = "password";
      conn = DriverManager.getConnection(url, user, password);
    } catch (Exception e) {
      e.printStackTrace();
 
728x90
반응형
SMALL

'JSP > JSP 기본 개념' 카테고리의 다른 글

JSP - request, response, page context, session이란? 각 클래스와의 관계  (0) 2023.04.04
지시자(Directive), 선언자(Declaration), 스크립트릿(Scriptlet), 표현식(Expression)  (0) 2023.04.03
JSP - 리다이렉트  (0) 2023.02.22
JSP 문자열, 정수 파라미터 받기(GET, POST방식)  (0) 2023.02.22
JSP 지시자,선언부,실행부,표현식  (0) 2023.02.22
  1. VO (Value Object)
  2. DTO (Data Transfer Object)
  3. DAO (Data Access Object)
'JSP/JSP 기본 개념' 카테고리의 다른 글
  • JSP - request, response, page context, session이란? 각 클래스와의 관계
  • 지시자(Directive), 선언자(Declaration), 스크립트릿(Scriptlet), 표현식(Expression)
  • JSP - 리다이렉트
  • JSP 문자열, 정수 파라미터 받기(GET, POST방식)
공부하고 기억하는 공간
공부하고 기억하는 공간
IT 비전공자로 시작하여 훌륭한 개발자가 되기 위해 공부하고 있는 공간입니다. 틀린 내용이나 부족한 부분이 있으면 댓글로 알려주세요 바로 수정하겠습니다.
IT - railroadIT 비전공자로 시작하여 훌륭한 개발자가 되기 위해 공부하고 있는 공간입니다. 틀린 내용이나 부족한 부분이 있으면 댓글로 알려주세요 바로 수정하겠습니다.
    250x250
  • 공부하고 기억하는 공간
    IT - railroad
    공부하고 기억하는 공간
  • 전체
    오늘
    어제
    • 분류 전체보기 (325)
      • 면접 준비 (22)
        • OS (6)
        • Spring Security (0)
        • Java (3)
        • DB (11)
        • Network (3)
      • ElasticSearch (2)
      • Kafka (4)
      • Spring (22)
        • Spring Cloud (7)
        • Security6 (5)
        • JPA (12)
        • 프로젝트 리팩토링 회고록 (4)
        • Logging (8)
        • Batch (2)
      • Redis (17)
        • Redis 개념 (8)
        • Redis 채팅 (5)
        • Redis 읽기쓰기 전략 (1)
      • AWS (11)
      • 리눅스 (29)
        • 리눅스 마스터 2급 (5)
        • 네트워크(기초) (7)
        • 리눅스의 이해 (6)
        • 리눅스의 설치 (2)
        • 리눅스 운영 및 관리 (6)
      • JAVA-기초 (16)
        • JAVA기본 (11)
        • Design Pattern (5)
      • JSP (27)
        • JSP 기본 개념 (10)
        • JSP (1)
      • SQL (1)
      • TIL (36)
      • 문제 풀이 (2)
        • Programmers (9)
        • 백준 문제풀이 (28)
      • JavaScript (10)
      • HTML (17)
      • Ngrinder (1)
        • Ngrinder 문서 정리 (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      HTML
      java
      자바
      자바 반복문
      jsp기초
      JavaScript
      springsecurity
      Spring
      리눅스마스터2급정리
      레디스
      CSS
      프로그래머스
      redis
      스프링프레임워크
      Spring Data Redis
      Springframework
      자바스크립트
      자바 면접
      JSP
      Til
      jsp request
      spring redis
      자바 알고리즘
      리눅스마스터2급
      redis 채팅
      백준
      리눅스
      자바 면접질문
      JS
      자바기초
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    공부하고 기억하는 공간
    JSP - VO, DAO, DTO란?

    개인정보

    • 티스토리 홈
    • 포럼
    • 로그인
    상단으로

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.