서비스가 필요한 이유
스프링부트에서 서비스는 왜 필요할까? Controller에서 repository를 호출하고 로직도 직접 구현하면 되지 않나?
1. 모듈화
컨트롤러가 리포지터리에서 직접 데이터를 조회, 삽입, 삭제, 수정 같은 가공을 거칠때, 서비스로 따로 기능을 빼둔다면 컨트롤러에서는 단순히 호출만 하면된다. 하지만 서비스로 기능을 따로 만들지 않았을 경우엔 해당컨트롤러에서 같은 기능을 사용하는 로직을 모든 controller에서 중복으로 구현해야 한다.
2.보안
서비스를 통해서 DB에 접근하도록 구현하면 서비스가 따로 빠져있어 만일 해킹시도가 들어와 컨트롤러를 제어해도 리포지토리에 직접적인 엑세스가 불가능하다.
'개인공부' 카테고리의 다른 글
[XSS와 CSRF] (1) | 2025.04.08 |
---|---|
다중 서버에서의 세션 (Sticky Session, Session Clustering, Session Storage) (0) | 2025.03.26 |
CORS(Cross Origin Resource Sharing) (2) | 2024.10.09 |