Controller, Service, Repository, DB 가 존재한다.
Controller는 클라이언트로부터 들어오는 HTTP 요청을 처리하고, 적절한 서비스를 호출하여 응답을 생성한다.
Controller는 사용자가 웹사이트에 들어와서 주문을 하는 것과 같다. 사용자가 웹사이트에서 “물건 구매” 버튼을 누르면, 그 요청이 Controller로 간다. Controller는 요청을 받아서, 가게 직원(Service)에게 “이 사람이 이 물건을 사고 싶어해”라고 전달한다.
Controller는 사용자가 웹사이트에 입력하는 것(예: 주문)을 받아서 처리하는 역할을 한다.
Service 계층은 비즈니스 로직을 처리하는 곳이다. 데이터 처리, 계산, 기타 비즈니스 규칙을 실행하며, Repository 계층을 호출하여 데이터베이스와 상호작용한다.
Service는 가게 직원이다. 이 직원은 고객의 요청을 받고, 그 요청을 처리한다. 예를 들어, 고객이 “이 물건을 사고 싶어요”라고 하면, 직원은 그 물건이 있는지 확인하고, 주문을 처리한다. 직원이 할 일은 “물건이 창고에 있는지 확인하고(DB 확인), 있다면 주문을 처리하고, 없다면 ‘재고 없음’이라고 알려주는 것”이다.
Service는 모든 비즈니스 로직을 처리하는 곳이다. “물건을 사고 싶다”는 요청을 받아서, 처리하기 위해 필요한 일을 한다.
Repository 계층은 데이터베이스와 상호작용하며, 데이터의 CRUD(Create, Read, Update, Delete) 작업을 수행한다.
Repository는 가게의 창고이다. 모든 물건(데이터)이 여기 저장되어 있다. 가게 직원(Service)은 필요한 물건이 있는지 이 창고에 물어본다. 창고에서는 “이 물건이 있습니다/없습니다”라고 대답한다. 이 창고는 물건을 꺼내주기도 하고(데이터를 읽기), 물건을 새로 넣어주기도 하고(데이터 저장), 오래된 물건을 폐기하기도 한다(데이터 삭제).
Repository는 데이터베이스와 상호작용하는 곳이다. 데이터를 저장하고, 읽고, 업데이트하고, 삭제하는 역할을 한다.
HTTP 요청이 클라이언트로부터 들어오면, Spring Boot의 Controller가 이 요청을 받아들인다.
Controller는 요청을 처리하기 위해 Service 계층의 메서드를 호출한다.
Service 계층은 비즈니스 로직을 수행하며, 필요 시 DAO(Repository)를 호출하여 DB와 상호작용한다.
Repository 계층은 DB에 접근하여 필요한 데이터를 읽어오거나 저장 작업을 수행한다.
Service 계층은 이 데이터를 이용해 비즈니스 로직을 마무리한 후, 결과를 Controller로 반환한다.
Controller는 처리 결과를 HTTP 응답으로 변환하여 클라이언트에 반환한다.