Section 1. Service / Dao
1. Spring MVC
- 사용자의 요청 및 입력을 Controller 에 매핑
- 사용자의 요청에 대한 응답을 View 또는 JSON 으로 반환
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F9d7d5b84-859f-4a58-a338-2c6777f407bb%2Fimage.png)
2. Spring Service / Dao
- Controller / Service / Dao 객체를 Dependency Injection
- Service / Dao 계층에서 Transaction 처리
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F0670249e-bc60-40a5-abb5-1969d1f3d075%2Fimage.png)
3. Spring Service / Dao 구조 1
- Interface 를 기반으로 구현하여 순차적인 개발이 아닌 독립적인 개발
- Service - Controller 에게 모든 Data 처리 관련 기능을 제공하는 담당자
- Dao - Service 객체로 인해 실제로 SQL 문을 수행하는 계층
- Service 계층은 SQL 이 아닌 java 메소드 문법 등에만 집중 / Dao 계층은 SQL 에만 집중
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F7ec2c5b2-5575-4cb1-9333-63ccfe9a6039%2Fimage.png)
4. Spring Service / Dao 구조 2
- Controller 와 Service 는 N:1 관계
- Service 와 Dao 는 N:M 관계
- Dao 와 DB Table 은 1:1 관계
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F2e6bf50f-93ce-44f7-90c6-4634edba95d2%2Fimage.png)
5. Spring Service / Dao 관련 라이브러리
- 위와 같은 복잡한 관계들을 관리하기 쉽게 지원하는 라이브러리 존재
① JDBC
② MyBatis
③ JPA