TIL 2023-12-21 Service& ServiceImpl

장규빈·2023년 12월 21일

TIL

목록 보기
50/59
post-thumbnail

오늘 과제를 하던중 구현사항에 Service를 interface로 바꾼후 ServiceImpl에 정의하라는 내용이 있었다. 처음 봤을때는 왜 굳이 이런식으로 구조를 짜야하지 라는 의문이 들었다. 그래서 그 이유를 한번 찾아보았다.

다형성과 OCP(Open Closed Principle)

이론상으로 인터페이스와 구현체가 나눠져있으면 구현체는 외부로부터 독립된다. 이로 인해 구현체의 수정이나 확장이 자유로워지고, 이를 사용하는 클라이언트의 코드에는 영향을 주지 않는다. 예를 들어, 사용자의 동작을 정의하는 서비스가 존재할 때 관리자와 일반 사용자의 경우와 같이 사용자의 권한에 따라 동작이 다른 경우가 있다. 이 경우에는 구현체만 추가하면 추가적인 코드 수정 없이 손쉽게 동작을 추가할 수 있다.

그래서 꼭 해야하나..?

개인적인 생각으로는 서비스가 기능이 너무 많아서 확장이 되는경우가 아닌 이상 굳이 분리를 해야될 필요가 있을까 싶다. 물론 기능이 많아지는 프로젝트에서는 확장성을 위해 만드는게 필요할 것 같다.

profile
나다운사람

0개의 댓글