상세 컨텐츠

본문 제목

DTO DAO 궁금해?

Jsp

by 헬로제이콥 2024. 9. 9. 18:34

본문

 

 

DTO (Data Transfer Object)

DTO는 "데이터 전송 객체"라는 뜻이에요. 쉽게 말해서, 데이터를 한 곳에서 다른 곳으로 옮길 때 사용하는 그릇 같은 거예요. 예를 들어, 학교에서 학생의 정보를 담는 그릇을 생각해볼 수 있어요.

 

예제

학생의 정보를 담는 DTO를 만들어 볼게요.

public class StudentDTO {
    private String name;  // 학생 이름
    private int age;      // 학생 나이

    // 생성자
    public StudentDTO(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // getter와 setter
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

위의 StudentDTO 클래스는 학생의 이름과 나이를 담는 그릇이에요.

 

DAO (Data Access Object)

DAO는 "데이터 접근 객체"라는 뜻이에요. 데이터베이스와 소통하는 역할을 해요. 쉽게 말해, 학생의 정보를 저장하고 불러오는 일을 하는 사람이라고 생각하면 돼요.

예제

학생 정보를 데이터베이스에 저장하고 불러오는 DAO를 만들어 볼게요.

import java.util.ArrayList;
import java.util.List;

public class StudentDAO {
    private List<StudentDTO> students = new ArrayList<>(); // 학생 목록

    // 학생 추가
    public void addStudent(StudentDTO student) {
        students.add(student);
    }

    // 모든 학생 정보 가져오기
    public List<StudentDTO> getAllStudents() {
        return students;
    }
}

 

위의 StudentDAO 클래스는 학생 정보를 추가하고, 모든 학생 정보를 가져오는 기능을 가지고 있어요.

 

DAO는 SQL 쿼리를 사용하여 데이터베이스에 접근하고, 그 결과를 DTO(Data Transfer Object)와 연결하여 애플리케이션에 필요한 데이터를 제공합니다.

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class StudentDAO {
    private Connection connection; // 데이터베이스 연결

    public StudentDAO(Connection connection) {
        this.connection = connection;
    }

    // 학생 추가
    public void addStudent(StudentDTO student) throws SQLException {
        String sql = "INSERT INTO students (name, age) VALUES (?, ?)";
        try (PreparedStatement pstmt = connection.prepareStatement(sql)) {
            pstmt.setString(1, student.getName());
            pstmt.setInt(2, student.getAge());
            pstmt.executeUpdate();
        }
    }

    // 모든 학생 정보 가져오기
    public List<StudentDTO> getAllStudents() throws SQLException {
        List<StudentDTO> students = new ArrayList<>();
        String sql = "SELECT name, age FROM students";
        try (PreparedStatement pstmt = connection.prepareStatement(sql);
             ResultSet rs = pstmt.executeQuery()) {
            while (rs.next()) {
                String name = rs.getString("name");
                int age = rs.getInt("age");
                students.add(new StudentDTO(name, age));
            }
        }
        return students;
    }
}

이 예시에서 StudentDAO는 데이터베이스에 접속하여 학생 정보를 추가하고 조회하는 기능을 가지고 있어요. DAO를 사용하면 데이터베이스와의 상호작용을 코드에서 분리할 수 있어, 코드가 더 깔끔하고 유지보수하기 쉬워집니다.

결론적으로, DAO는 데이터베이스와의 연결 및 데이터 처리를 담당하며, DTO는 그 데이터를 담는 역할을 해요. 이 두 개념은 함께 사용되어 데이터 관리를 효율적으로 할 수 있도록 도와줍니다.

 

 

정리

DTO (Data Transfer Object)

  • 정의: 데이터를 담는 그릇
  • 역할: 여러 속성을 가진 데이터를 한 객체로 묶어 전달
  • 예시: 학생의 정보를 담는 StudentDTO 클래스
    • 속성: 이름, 나이 등

DAO (Data Access Object)

  • 정의: 데이터베이스와 소통하는 객체
  • 역할: 데이터베이스에 접근하여 데이터를 추가, 수정, 삭제, 조회하는 기능 제공
  • 예시: 학생 정보를 처리하는 StudentDAO 클래스
    • 기능: 학생 정보 저장, 학생 정보 조회 등

이렇게 DTO와 DAO는 데이터 관리와 처리에서 각각의 역할을 가지고, 함께 사용되어 애플리케이션의 구조를 깔끔하게 유지할 수 있도록 도와줍니다!

'Jsp' 카테고리의 다른 글

DAO DTO 궁급해? 중급버전  (0) 2024.09.09
JSP와 AJAX의 결합  (0) 2024.08.31
API와 REST API: 비슷하지만 다른 점  (0) 2024.08.30
REST API란 무엇일까요?  (1) 2024.08.30
request.setAttribute 사용하는 이유  (0) 2024.08.24

관련글 더보기