Pasted image 20240919023847.png

Note

Spring MVC는 애플리케이션을 효율적으로 관리하고 유지보수하기 위해 "Controller-Service-Repository"라는 세 가지 주요 계층으로 나눕니다. 이 아키텍처는 각 계층이 특정 역할을 수행하도록 설계되어 있으며, 각 계층 간의 관계는 명확하게 정의되어 있습니다.

1. Controller (컨트롤러)

2. Service (서비스)

3. Repository (리포지토리)

- 데이터베이스와의 상호작용을 담당합니다. 주로 데이터베이스에서 데이터를 조회, 저장, 수정, 삭제하는 작업을 처리합니다.
   - CommentRepository는 댓글 데이터를 데이터베이스에서 읽고 쓰는 작업을 담당합니다.
   - 리포지토리는 실제 SQL 쿼리를 실행하지 않고, JPA와 같은 ORM 도구를 사용하여 데이터베이스와 상호작용합니다.
   - 레스토랑 서비스에 비유하지면,,
   - 리포지토리는 레스토랑의 창고 관리인과 비슷합니다.
   - 창고 관리인은 주방에서 필요한 재료를 제공하고, 사용된 재료를 기록합니다.

4. Model (모델)

예시를 통한 이해

1. 사용자 요청
2. 컨트롤러 처리
3. 서비스 처리
4. 리포지토리 처리
5. 결과 반환

비유를 확장해서 설명

Model

Repository

Service

Controller

결론

이러한 각 계층이 조화를 이루어 애플리케이션이 원활하게 작동하게 됩니다. 모델은 데이터를 표현하고, 그 데이터를 조작하고 저장하는 역할을 수행하는 계층들과 협력하여 시스템의 전반적인 기능을 구성합니다.