본문 바로가기
Spring/ETC

Service 인터페이스는 거의 사용하지 않는다.

by YoonJong 2023. 2. 19.
728x90

프로젝트를 하다보면 다양한 인터페이스를 만들고 인터페이스를 구현하는 형식으로 진행하는 경우가 많습니다.

 

이전 프로젝트에서는 Service 를 모두 인터페이스로 먼저 생성하고 구현을 진행을 했습니다.

전략패턴이라는 것을 배우면서 갈아끼우는 것이 미래에도 굉장히 좋은 선택이다 라고 생각해 무지성으로 작성했던 것 같습니다.

 

아래처럼 서비스 인터페이스를 만들고 구현 클래스를 따로 만들어서 로직을 구현했습니다.

막상 작성해보니, 일단 DI 를 사용할 일이 없었고, 작성할 코드량이 많아졌으며 메서드 네이밍이나 매개변수의 타입 등을 변경할 때 인터페이스에서도 고쳐야하는 번거로움이 생겼습니다.

그 중에 장점을 하나 뽑자면, 개인적으로는 메서드(어떤 기능을 하는지) 를 한눈에 볼 수 있다는 점이 있었습니다.

public interface MemberService {

    // 내정보찾기
    MemberResponse findByDetailMyInfo();

    // 회원생성
    void memberSignup(MemberSignupRequest memberSignupRequest);

    // 회원 중복체크
    void loginIdDuplicateCheck(String loginId);

 

Service에 인터페이스를 도입하는 경우는 드뭅니다.

만약 인터페이스로 구현해야 하는 상황이라면, 미래에 서비스 로직을 DI 로 갈아 끼워야 하는 상황일텐데,

보통은 서비스 구현 코드를 바꾸지 DI 를 변경하는 경우는 거의 없기 때문에, 인터페이스를 거의 사용하지 않는다고 생각할 수 있었습니다.

728x90

'Spring > ETC' 카테고리의 다른 글

자바 메모리 누수 원인  (0) 2023.03.08
리눅스 기본 명령어 정리 - 최신화(23.02.21)  (0) 2023.02.21
JAVA JDK17 을 사용하는 이유  (0) 2023.01.21
swagger 에 jwt token 추가하기  (1) 2022.12.21
docker 기초명령어  (0) 2022.10.29

댓글