서비스 레이어는 컨트롤러와 퍼시스턴스 사이에서 비지니스 로직을 수행하는 역할을 한다. HTTp와 긴밀히 연관된 컨트롤러에서 분리돼 있고, 도 데이터베이스와 긴밀히 연관된 퍼시스턴스와도 분리돼 있다. 따라서 서비스 레이어에서는 우리가 개발하고자 하는 로직에 집중할 수 있다.
@Service는 내부에 @Component에노테이션을 가지고 있는데 특별한 기능 차인느 없다. 단지 이 클래스는 스프링 컴포넌트이며 기능적으로는 비지니스 로직을 수행하는 서비스 레이어임을 알려주는 어노테이션이다.
@RestController도 내부에 @Component어노테이션을 가지고 있어서 @Service, @RestController 모두 자바 빈이고, 스프링이 관리한다.
결론 :
서비스 레이어는 HTTP나 데이터베이스 같은 외부 컴포넌트로부터 추상화되어 온전히 비지니스 로직에만 집중할 수 있었다.