프로그래머스 스진초 과제를 진행하면서 작성한 내용입니다.
Controller, Service, Repository의 개념과 역할, 기능에 대해서 알아보자.
Controller
- 개념: Controller는 사용자(클라이언트)와 상호작용하며 클라이언트의 요청을 처리하는 역할을 한다. 클라이언트에서 들어오는 HTTP 요청을 받고, 해당 요청을 처리하기 위해 적절한 서비스를 호출하거나 데이터베이스에 액세스할 수 있다.
- 역할 및 기능
- 클라이언트의 요청을 받아서 요청의 유효성을 확인하고, 필요한 데이터를 수집한다.
- 비즈니스 로직이 포함되지 않으며, 주로 요청의 처리를 담당한다.
- 서비스 계층에 요청을 전달하고 서비스로부터 반환된 결과를 클라이언트에 반환한다.
Service
- 개념: Service는 비즈니스 로직을 다루는 곳으로, 클라이언트 요청에 대한 실제 처리 및 계산이 이루어지는 곳이다. 여러 개의 컨트롤러가 공유할 수 있는 공통 로직을 제공하고, 데이터베이스와의 상호작용을 추상화한다.
- 역할 및 기능
- 비즈니스 로직을 실행하고 필요한 데이터 처리 및 계산을 수행한다.
- Repository 계층과 협력하여 데이터베이스에 데이터를 읽고 쓰는 작업을 수행한다.
- Controller로부터 받은 요청을 처리하고 처리 결과를 반환한다.
Repository
- 개념: Repository 계층은 데이터베이스와의 상호작용을 처리하는 곳이다.
- 역할 및 기능
- 데이터베이스와의 통신을 처리하고 SQL 쿼리를 실행하여 데이터를 검색하거나 업데이트한다.
- 데이터베이스 연결 및 트랜잭션 관리를 담당하여 데이터의 일관성과 안전성을 보장한다.
- 서비스로부터 받은 데이터베이스 작업 요청을 수행하고 그 결과를 반환한다.