상똥이의 Back-End 공부방

Spring boot 서비스 구조 본문

Spring/Spring 기초

Spring boot 서비스 구조

상똥백 2023. 10. 29. 10:19

[1. 전체적인 서비스 구조]

 

1. Client가 Controller에게 요청한다.

(1) 이때 DTO라는 형식의 객체를 사용한다.

(2) 예시로, 회원가입이라는 요청을 할 때 이름, 아이디, 비밀번호, 전화번호, 이메일 등의 객체 정보가 DTO에 담겨 Controller로 이동한다.

(3) Controller는 받은 객체에 따라 어떤 요청인지 확인한다.

 

2. Controller가 Client의 요청에 맞게 Service인터페이스로 DTO를 보내준다.

 

3. Service는 비즈니스 로직의 전반적인 내용을 처리하는 영역이다.

(1) DTO로 받아온 내용 외에 필요한 것들을 더 채우는 역할을 한다.

(2) 예시로, 회원가입할 때 받은 정보 외에 가입일, 등급 등의 정보를 Servuce에서 처리한다.

(3) 이렇게 Service영역에서 DTO를 적절히 사용해 만들어지는 것이 Entity이다.

(4) Interface형식으로 만들어진다.

 

4. DAO는 Entity를 매개로 DB와 직접 통신하는 영역이다.

(1) DB에서 Entity를 가져오거나 Entity를 저장하는 역할이다.

(2) Interface형식으로 만들어진다.

 

5. ServiceImpl, DAOImpl

(1) 실체화된 로직이 들어가있는 곳

 

[2. 각 요소의 구체적 정의]

1. Entity (Domain)

- 데이터베이스에 쓰일 컬럼과 여러 엔터티 간의 연관관계를 의미

- 데이터베이스의 테이블을 하나의 엔터티로 생각해도 무방

- 실제 데이터베이스의 테이블과 1:1로 매핑됨

- 도메인 클래스 = 테이블

- 클래스 내 필드 = 컬럼(속성)

 

2. Repository

- 엔터티에 의해 생성된 데이터베이스에 접근하는 메소드를 사용하기 위한 인터페이스

- Service와 DB 사이의 연결고리

- DB에 적용하고자 하는 CRUD를 정의하는 영역

- DAO를 조합해 도메인 객체에 대한 데이터 엑세스를 처리할 수 있음

 

3. DAO (Data Access Object)

- DB에 접근하는 객체를 의미 (Persistence Layer)

- 즉, Repository에 비해 DB와 좀 더 직접적인 상호작용

- Service가 DB에 연결할 수 있게 해주는 역할

 

4. DTO (Data Transfer Object)

- 계층간 데이터 교환을 위한 객체를 의미

- VO(Value Object)라고 부르기도 함, VO는 read only의 성격을 가짐

 

 

 

참고 영상 : 어라운드 허브 스튜디오

https://youtu.be/4Pvd0KrTfvE?si=R55eiwvpLm9t67kw

'Spring > Spring 기초' 카테고리의 다른 글

HTTP API의 개념  (0) 2023.12.20
RequestMapping  (0) 2023.12.20
Controller  (0) 2023.12.20
[spring] IoC 컨테이너  (1) 2023.11.26
[Spring] DI (1) 기본 개념과 이해  (0) 2023.10.12