관리 메뉴

CASSIE'S BLOG

SPRING BOOT 구조 정리 본문

PROGRAMMING/JAVA SPRING

SPRING BOOT 구조 정리

ITSCASSIE1107 2023. 5. 24. 10:36

(자료 출처: 어라운드 스튜디오) 

 

전체흐름: 

Controller - Service - Dao는 스프링부트에 코드를 작성하는 영역임.


클라이언트에서 컨트롤러 REQUEST가 들어오게 되는데 (즉 요청) 이 때 DTO 형식의 객체를 사용하게 됨


회원가입하게 되면 (EX. 아이디 이름 패스워드 이메일) 이 내용 DTO객체에 담아서 CONTROLLER로 회원가입 요청


CONTROLLER는 회원요청이구나 판단한뒤에 맞게되는 서비스로 DTO객체를 같이 보내주게 됨 


서비스 객체의 역할을 비즈니스 로직의 전반적인 처리하는 내용임 (회원가입에 필요한 내용을 여기서 처리)

 

가입일자 멤버등급 같은 거는 서비스객체에서 그런것들을 처리함 

 

DTO에 들어가있는 데이터 값 활용해서 내용을 붙이거나 더해서 ENTITY라는 객체를 만들게됨

 

데이터 베이스의 테이블에 1:1로 매핑되는 데이터베이스와 가장 가까운 객체라고 생각하면 된다고 함 

 

ENTITY라는 객체를 만든 후에 DAO라는 곳으로 보내게됨 

 

 

DAO : 

DB와 직접적으로 통신하는 영역 

ENTITY에 있는 값을 그대로 저장을 하거나 가져오거나 이런 과정을 수행하게됨 

 

ENTITY : 

ENTITY: SERVICE - DAO -DB 에서 사용되는 객체는 ENTITY라는 객체를 사용함 

 

DTO  (Data Transfer Object) : 

or VO(Value Object)로 불리기도 함 

CLIENT - CONTROLLER - SERVICE 에서 사용되는 객체는 DTO 라는 객체를 사용함 

계층간 데이터 교환 위한 객체 
VO의 경우 Read Only 개념 가지고 있음 

 

 

ServiceImpl and DAOimpl:

 

일반적으로 코드 설계할 때 Service와 Dao같은 경우에 클래스로 만들지않고 Interface로 만들게됨 

그래서 실제 로직 부분은 이 인터페이스를 상속받은 이 implementation 클래스 객체가 비즈니스 로직을 갖게된다. (이름은 보통 impl 뒤에 저렇게 붙임)


Repository: 
Entity에 의해 생성된 DB에 접근하는 메소드를 사용하기 위한 인터페이스
Service와 DB를 연결하는 고리 역할 수행
DB에 적용하고자 하는 CRUD를 정의하는 영역
ex.) JPA Repository

 

DAO (Data "Access" Object): 

DB에 접근하는 객체 의미 

Service가 DB에 연결할 수 있게 도와주는 역할

DB를 사용하여 데이터 조회하거나 조작하는 기능을 전달

 

반응형

'PROGRAMMING > JAVA SPRING' 카테고리의 다른 글

mySQL 부터  (0) 2023.06.03
[비공개] 파트3  (0) 2023.05.28
PUT API & Delete API & ResponseEntity  (0) 2023.05.23
get API  (0) 2023.05.19
[get API] entrySet() 메소드 & 람다 표현식  (1) 2023.05.19