서비스 클래스를 기능별로 분리해야 한다고?

lilseongwon·2022년 8월 25일
2
post-thumbnail

서비스 클래스?💾

간단하게 설명하자면 MVC에서 MODEL(정확히는 비즈니스 로직)을 담당하는 클래스로, 데이터를 처리하는 역할을 한다.

왜 귀찮게 분리를...🔧

예를 들어 자동차 클래스에 시동걸기, 운전하기, 세차하기, 주유하기 등의
여러 기능들이 포함되면 그 기능과 관련된 데이터들도 한 객체에 모두 포함되므로, 객체가 가지는 책임이 커져서 절차 지향적으로 구조가 변질된다.
즉, 기능 하나를 변경하려고 하면 다른 부분도 같이 수정해야 하는 문제가 발생한다.

이런 객체의 책임을 줄이기 위해 있는 원칙이 바로 SRP(단일 책임 원칙)이다.
말 그대로 객체는 한 개의 책임만을 가져야 한다는 원칙이다.

위와같이 car, Driver, CarWash, Mechanic 등의 객체가 하나씩의 책임을 지게 되면 변경의 유연함을 얻을 수 있다.

서비스에서도?🔍

회원가입/로그인 등의 기능들이 있을 때, 하나의 서비스 클래스에 기능을 넣는 것보다 회원가입 클래스, 로그인 클래스들로 나누면 기능수정과 유지보수하기 훨씬 편리하다는 장점이 있다. 앞으로 프로젝트를 할 때 서비스를 기능별로 분리해보자.


참고

https://yoongrammer.tistory.com/96

profile
스프린트가 아닌 사이클링

0개의 댓글