[260625]인터페이스

이상민·2026년 6월 25일

Spring

목록 보기
32/59

인터페이스

인터페이스란

인터페이스(Interface)는 클래스가 구현해야하는 기능의 명세(규약)을 정의하는 역할을 한다.

쉽게 말하면, 인터페이스는 '무엇을 할수 있냐'에 대해서는 정의하지만, '어떻게 할수 있냐'에 대해서는 정의하지 않는다.

// 마우스 인터페이스 정의
public interface Mouse {

    void leftClick();    // 좌클릭
    void rightClick();   // 우클릭
    void scrollWheel();  // 스크롤휠
}

예를들어, 이런 마우스 인터페이스가 있다고 하면 마우스를 만드는 제조사 ex)로지텍, 삼성는 반드시 leftClick(), rightClick(), scrollWhell()에 대한 기능을 구현해야 하지만, 실제 어떻게 이런 기능들이 동작하는지는 제조사 마다 다르다.


인터페이스를 사용하는 이유

위의 예시로 예를 들자면,

Logitech mouse = new Logitech();

같은 로지텍 마우스를 사용중이었는데 마우스를 삼성으로 변경해야 한다면

Samsung mouse = new Mouse();

로 코드를 수정해줘야 해서 번거롭다.

하지만 인터페이스를 사용한다면

Mouse mouse = new Logitech();

Mouse mouse = new Samsung();

과 같이 코드 수정을 최소화 하며 구현체를 교체할 수 있다.


또한 클래스 간의 결합도를 낮추는 장점도 있다.

public class OrderService{
	private kakaoPay payment = new KakaoPay();
}

위와 같은 클래스에 결제 수단이 추가된다면 코드를 수정해야 한다.

하지만, 인터페이스를 사용한다면

public class OrderService{
	private Payment payment;
}
profile
백앤드 개발 브이로그

0개의 댓글