이렇게 간단한 스프링은 크게 3가지 계층으로 분리된다.
controller는 쉽게 말하자면 접수처이다. 병원을 생각해보면 처음에 병원을 방문하면 접수처에서 등록을 한다. 그리고 병원에서의 서비스가 끝난뒤 다시 접수처에서 계산을 한다.
controller는 딱 그런 역할을 한다. 클라이언트에서 요청된 요구사항을 서버측에서 받아주는게 controller이다(javascript로 요청된 요구사항을 Java가 읽을 수 있는 언어로 번역).
번역된 요구사항을 Service에 전달 => Service에서 전달된 값을 다시 클라이언트에 반환해주는 일을 한다.
@GetMapping("/api/memo")
function getMemo()
{ service.내용(전달값)
return service에서 전달받은 값 }
service는 실제로 작업이 일어나는 단계이다. 병원으로 예를들면 물리치료를 해주거나 도수치료, 시력검사 등등의 실질적인 치료가 이루어지는 단계이다.
(비지니스 로직이 처리되는 곳) : 서버에서 사용자의 요구사항을 처리
만약 필요하다면 Repository에서 정보를 요청 혹은 전달
repository는 Service에서 나온 결과값을 저장하거나 기존의 저장된 정보를 반환해주는 등의 일을 하는 정보를 관리해주는 역할을 한다.
DB의 관리를 처리하는 계층이다.
다시 병원을 예로들면 Service가 발생하는 상황 ex) 시력검사
시력을 검사하고 측정된 시력을 해당하는 환자의 정보란에 시력 정보를 추가 하는 일을 처리한다.