본문 바로가기

Back-End/Spring boot

[날다프로젝트] Service, Controller 와 Repository / DAO와 DTO

~ 목차 ~

Service, Controller 와 Repository  🐸

 

 

계층형 아키텍처

  • @Controller(프레젠테이션 레이어) : 웹 요청과 응답을 처리함
  • @Service (서비스 레이어) : 내부에서 비즈니스 로직 처리
  • @Repository(퍼시스턴스 레이어) : DB나 파일같은 외부 I/O 작업을 처리

 

⭐ Layered Architecture를 지킴으로써 각 계층 역할을 분리하여 유지보수가 쉽도록!

 

 

Service  🐸

 

내용

1. UserService는 사용자와 관련된 비즈니스 로직을 처리하는 서비스 계층의 클래스

2. UserRepository는 데이터베이스와 직접적으로 소통하며 CRUD(Create, Read, Update, Delete) 작업을 수행하는 레포지토리 계층의 인터페이스

 

 

DAO와 DTO 🐸

 

내용

1. DAO(Data Access Object) 
    - DAO는 데이터베이스의 데이터에 접근하는 객체 (=@service) 
    - DAO는 데이터베이스에 직접 접근하는 로직과 비즈니스 로직을 분리하기 위해 사용
    - DAO는 데이터베이스의 CRUD(Create, Read, Update, Delete) 연산을 수행하는 메소드들을 포함

2. DTO(Data Transfer Object)
    - DTO는 계층간 데이터 교환을 위한 객체
    - 예를 들어, 프레젠테이션 계층(웹 페이지나 앱의 UI)에서 비즈니스 계층(서버의 백엔드 로직)으로 데이터를 전달할 때, 이 데이터를 DTO로 묶어서 전달 => "REST API"
    - DTO는 보통 여러 개의 데이터 필드를 포함하고 있으며, getter와 setter 메소드를 통해 접근

 


이 두 용어는 객체 지향 프로그래밍과 MVC(Model-View-Controller) 아키텍처, 그리고 계층형 아키텍처 등에서 주로 사용됩니다.

 

728x90