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

Servlet (RegisterServlet.java)

DAO (UserDAO.java)

DTO (UserDTO.java)

결과 JSP (result.jsp)

전체 흐름 요약
- 사용자가 index.jsp 페이지에서 폼을 제출합니다.
- RegisterServlet이 요청을 받아, 폼 데이터를 읽고 UserDTO 객체를 생성합니다.
- UserDAO를 사용하여 데이터베이스에 사용자 정보를 저장합니다.
- UserDTO 객체를 result.jsp에 전달하여, 최종 결과 페이지를 생성합니다.
- result.jsp는 사용자에게 등록 성공 메시지와 함께 입력된 정보를 표시합니다.
이와 같이 JSP, Servlet, DAO, DTO는 각각의 역할을 수행하며, 협력하여 동적인 웹 애플리케이션을 구현합니다.
'#Back-End > JAVA(JSP Spring Spring-boot)' 카테고리의 다른 글
| Java MVC패턴에 대해 알아보자 (0) | 2024.06.19 |
|---|---|
| Java spring-boot 의 기능과 구현하는 방법 (2) | 2024.06.19 |
| Java Spring의 기능과 구현하는 방법 (2) | 2024.06.19 |