서비스 : 데이터 처리를 위해 작성하는 클래스
서비스가 필요한 이유
- 모듈화
: 서비스를 만들어 두면 컨트롤러가 해당 서비스를 호출하여 사용하지만 서비스가 없으면 컨트롤러에 기능이 필요할 때마다 중복으로 구현해야 함
- 보안
: 컨트롤러가 리포지터리 없이 서비스를 통해서만 데이터베이스에 접근하도록 하는 것이 안전
- 엔티티 객체와 DTO 객체의 변환
: 엔티티 클래스는 데이터베이스와 직접 맞닿아 있는 클래스이기 때문에 직접적으로 사용하는 것은 좋지 않음
엔티티 클래스(Question, Answer)는 컨트롤러에서 사용할 수 없게 설계하는 것이 좋음
@Service : 서비스 애너테이션