#Back-End/JAVA(JSP Spring Spring-boot)

Dao, Dto, JSP, Servlet 의 설명과 기능

호기심 많은 코린이 2024. 6. 19. 13:22

Java 웹 애플리케이션에서 DAO (Data Access Object), DTO (Data Transfer Object), JSP (JavaServer Pages), Servlet은 각기 다른 역할을 수행하면서 협력하여 동작합니다. 각각의 기능과 이들이 서로 어떻게 연관되어 구동되는지 자세히 살펴보겠습니다.

각 기술의 기능

DAO (Data Access Object)

  • 기능:
    • 데이터베이스와의 연결을 관리.
    • CRUD (Create, Read, Update, Delete) 작업을 수행.
    • SQL 쿼리를 실행하고 결과를 처리.
    • 데이터베이스로부터 데이터를 가져오거나 저장하는 로직을 캡슐화.
  • 역할: 데이터베이스와의 상호작용을 추상화하여 데이터 접근 로직을 분리함으로써 코드의 재사용성과 유지보수성을 높임.

DTO (Data Transfer Object)

  • 기능:
    • 데이터를 하나의 객체로 캡슐화하여 전송.
    • 계층 간의 데이터 전송을 단순화.
    • 불필요한 데이터를 제외하고 필요한 데이터만 전송.
  • 역할: 서비스 계층과 프레젠테이션 계층 간에 데이터를 전송하여 데이터의 무결성을 유지하고, 데이터 전송을 간편하게 만듦.

JSP (JavaServer Pages)

  • 기능:
    • HTML 내에 Java 코드를 포함하여 동적인 웹 페이지를 생성.
    • 주로 사용자 인터페이스를 정의하고 표시.
    • 서버에서 실행되어 클라이언트에게 결과 HTML을 반환.
  • 역할: View 역할을 하여 사용자에게 데이터를 표시하고, 사용자의 입력을 받아들임.

Servlet

  • 기능:
    • 클라이언트의 HTTP 요청을 처리하고 응답을 생성.
    • 비즈니스 로직을 처리하고, 필요한 경우 JSP에 데이터를 전달.
    • 요청 파라미터를 처리하고, 적절한 서비스 메서드를 호출.
  • 역할: Controller 역할을 하여 클라이언트 요청을 처리하고, 비즈니스 로직을 실행하며, 결과를 JSP로 전달.

연관성과 구동 방식

이제 이들이 어떻게 연관되어 구동되는지 MVC (Model-View-Controller) 패턴을 통해 설명하겠습니다.

  1. 클라이언트 요청 (View):
    • 사용자가 웹 브라우저를 통해 특정 URL에 접근하거나 폼을 제출하면, HTTP 요청이 서버로 전송됩니다.
    • 이 요청은 Servlet이 받습니다.
  2. 요청 처리 (Controller):
    • Servlet은 클라이언트의 요청을 받으면, 요청 파라미터를 분석하고 적절한 서비스 메서드를 호출합니다.
    • 비즈니스 로직을 처리해야 할 경우, Servlet은 DAO를 사용하여 데이터베이스와 상호작용합니다.
  3. 데이터베이스 상호작용 (Model):
    • Servlet은 DAO를 사용하여 데이터베이스에서 데이터를 읽거나 쓰는 작업을 수행합니다.
    • DAO는 데이터베이스와 연결하고, SQL 쿼리를 실행하며, 결과를 DTO로 변환하여 반환합니다.
  4. 데이터 전송 (Model -> Controller):
    • DAO는 데이터베이스 작업 결과를 DTO에 담아 Servlet에 반환합니다.
    • Servlet은 이 DTO를 받아 필요한 비즈니스 로직을 처리한 후, JSP에 전달할 데이터를 준비합니다.
  5. 결과 표시 (View):
    • Servlet은 준비된 데이터를 JSP에 전달하여, JSP가 동적인 HTML 페이지를 생성할 수 있게 합니다.
    • JSP는 Servlet으로부터 전달받은 데이터를 사용하여 최종 HTML 페이지를 생성하고, 이 페이지를 클라이언트에게 반환합니다.

예제: 회원 정보 처리

JSP (index.jsp)

 

 

Servlet (RegisterServlet.java)

 

DAO (UserDAO.java)

 

DTO (UserDTO.java)

 

결과 JSP (result.jsp)

 

전체 흐름 요약

  1. 사용자가 index.jsp 페이지에서 폼을 제출합니다.
  2. RegisterServlet이 요청을 받아, 폼 데이터를 읽고 UserDTO 객체를 생성합니다.
  3. UserDAO를 사용하여 데이터베이스에 사용자 정보를 저장합니다.
  4. UserDTO 객체를 result.jsp에 전달하여, 최종 결과 페이지를 생성합니다.
  5. result.jsp는 사용자에게 등록 성공 메시지와 함께 입력된 정보를 표시합니다.

이와 같이 JSP, Servlet, DAO, DTO는 각각의 역할을 수행하며, 협력하여 동적인 웹 애플리케이션을 구현합니다.