수업 내용/[Spring] Spring
MVC 패턴 controller와 service 차이
프롯
2023. 8. 4. 16:42
+) 내용 추가 예정
MVC 패턴으로 프로젝트를 진행하던 중, 문득 controller와 service는 무슨 용도로 분라해 놓는지가 궁금했다.
(배웠을텐데 기억이 안났다.)
간단히 찾아보았을 때 둘을 굳이 구분짓는 이유는 기능의 모듈화를 위함이다.
기능을 서비스에 구현해 놓으면 큰트롤러를 변경할 일이 생겨도 서비스를 건드릴 필요가 없어진다.
그렇다면, 어떤 기능을 서비스에 구현해야 하는가?
구글링을 해보니 서비스 layer에 대한 글이 나왔다.
컨트롤러에서 하나의 Operation을 하기 위해 서비스의 기능을 모아두는 상위 layer를 만든다.
컨트롤러는 jsp와 백엔드 단에서 수행되는 기능을 연결해주고,
그 기능들은 서비스 단에서 구현하는게 맞는 이해같은데 조금 더 찾아봐야 할 것 같다.
서비스에서 트랜잭션 기능을 사용할 수 있다.
트랜잭션이란, 내가 메소드에서 수행해야 하는 명령어가 여러개일 때, 그 메소드 전체를 수행에 성공해야 commit이 되는 것이다.
중간에 버그가 나거나 등의 이유로 완전히 실행되지 않는다면 초기 상태로 돌아간다.
연속적으로 수행되어야 하는 메소드를 처리할 때 굉장히 유용하고 안전하다.