Spring Boot JDBC/이론정리

Controller, DTO, DAO의 역할 이론 정리

qoeka 2024. 12. 23. 18:20

 
 

 

Controller에서 Request DTO로의 변환이 중요한 이유

 
1. 데이터 검증

  • Controller는 사용자가 보낸 요청 데이터를 Request DTO로 변환하면서 입력된 데이터의 형식이나 필수 값을 검증할 수 있다.
  • 예를 들어, "city" 필드가 비어 있거나, "date" 형식이 잘못되었다면, 에러를 반환할 수 있다.

 
2. 데이터 구조화

  • Request DTO는 원시 데이터(JSON 형식 등)를 객체로 변환하여, Service 계층에서 사용할 수 있도록 구조화된 형태로 만든다.
  • 이 과정은 비즈니스 로직 코드가 깔끔해지고, 재사용 가능하게 만든다.

 
3. 유지보수성 증가

  • 새로운 필드가 추가되거나 데이터 요구 사항이 변경될 때, Request DTO 클래스만 수정하면 된다.
  • 이렇게 하면 시스템의 유지보수성도 효율적이고 간편하게 관리할 수 있다.

 

 
DAO(Data Access Object)는 데이터베이스와의 연결을 관리하고, 데이터를 효율적으로 가져오는 도구로 사용된다.

  1. 데이터베이스 접근
    • DAO는 데이터베이스에서 데이터를 가져오는 역할을 한다.
    • 직접 SQL을 작성하거나 ORM(Object Relational Mapping)을 통해 데이터를 조회, 삽입, 수정, 삭제하는 작업을 처리한다.
  2. 왜 사용하냐?
    • DAO를 사용하면 데이터베이스와의 연결중앙화할 수 있어, 코드가 더 깔끔하고 유지보수하기 쉬워진다.
    • 여러 곳에서 동일한 데이터베이스 접근 로직을 반복하지 않게 되어, 재사용성도 높아진다.
  3. 장점
    • 데이터베이스와의 연결을 분리하여, 서비스 로직과 데이터 처리 로직을 구분할 수 있다.
    • 이는 코드의 가독성유지보수성을 높이는 데 유리하다.

결론적으로, DAO는 데이터베이스와의 상호작용을 효율적으로 처리하고, 비즈니스 로직과 분리하여 시스템을 더 깔끔하고 관리하기 쉬운 구조로 만든다.

 

ResponseDTO는 서버가 클라이언트에 응답할 때 데이터를 보기 좋고 일관된 형식으로 포장하는 객체다.

  1. 응답 데이터 포장
    • 서버에서 처리한 데이터를 ResponseDTO로 포장해 클라이언트에 전달한다.
    • 이렇게 포장된 데이터는 클라이언트가 쉽게 사용할 수 있도록 구조화된다.
  2. 왜 사용하냐?
    • 응답 데이터를 일관성 있게 관리하고, 클라이언트에게 깔끔하게 전달할 수 있다.
    • 클라이언트에서 응답 데이터를 받을 때, 구조가 일정하게 유지되어 가독성유지보수성이 좋다.

결론적으로, ResponseDTO는 응답 데이터를 구조화하여 클라이언트가 쉽게 사용할 수 있도록 포장하는 역할을 한다.

 
 

 
ControllerResponseDTO를 사용자에게 전달하는 이유는 요청과 응답의 흐름을 관리하고, 데이터를 최종적으로 사용자에게 전달하는 역할을 하기 때문이다.

  1. 역할 분담
    • Controller는 사용자의 요청을 받아서 처리하고, 최종 결과를 사용자에게 반환하는 책임이 있다.
    • 데이터베이스나 비즈니스 로직 처리는 Service가 담당하고, Controller는 그 결과를 사용자에게 전달하는 역할을 한다.
  2. 응답 데이터 구조화
    • ResponseDTO는 데이터를 구조화하여 사용자에게 일관되고 보기 좋게 전달하는 역할을 한다.
    • Controller는 이 ResponseDTO를 받아 사용자에게 전달함으로써 응답의 일관성구조화를 보장한다.
  3. 유지보수성
    • Controller에서 ResponseDTO를 사용하면 응답 형식이 일정하게 유지되며, 응답 로직을 중앙에서 관리할 수 있어 유지보수하기 쉽다.

결론적으로, Controller는 응답 데이터를 일관되게 사용자에게 전달하는 중개자 역할을 하며, ResponseDTO는 데이터를 깔끔하고 일관되게 포장하는 역할을 한다.