Interface

최대 1 분 소요

인터페이스란?

인터페이스는 “틀”이다.
인터페이스는 설계도 이다.

왜쓸까?

“여러개발자들이 협업을 할 때 “동시”에(혼선없이) 작업을 하기 위함이다.”

예를들어보자,
세금을 계산하는 어떤 서비스가 있다고 가정해보자.
A개발자는 세금을 계산하기위한 비즈니스로직을 구현하고,
B개발자는 그 비즈니스로직에 필요한 계산기능을 가진 클래스를 구현한다고 가정했을 때,
A개발자는 B개발자가 구현한 계산기능을 가진 클래스를 필요로한다.
그리고 계산기능을 가진 클래스가 완성되어야만, 그 클래스를 이용하여
비즈니스로직을 구현할 수 있을것이다.
이런경우, 우리는 A개발자 입장에서 인터페이스를 이용해CalculatorDummy(dummy)
라는 가짜 혹은 임시 계산클래스를 만들어서
계산기능이 필요한 자리에 임시클래스를 채워서 비즈니스로직을 구현할 수 있으며,
B개발자가 계산기능을 가진 클래스의 구현을 완성했을 때 이것을 Swap함으로서
개발 일정에 차질없게 진행하는것.
이것의 인터페이스의 사용목적 중 하나이다.

인터페이스가 없다면?

설계도없이 개발하는것과 마찬가지이다.
A개발자는 비즈니스로직 구현시, 계산기 클래스의 sum이라는 메소드를 사용할때
당연히 인자가 2개겠거니, 라고 생각하며 비즈니스로직을 구현했으나,
B개발자가 sum이라는 메소드개발시, 인자를 3개로개발을 했을 수 도 있는것이다.
이렇게되면, A개발자는 자신이 구현한 비즈니스로직을 리팩토링해야한다.


인터페이스는 메소드에대한 틀을 분명히하여
개발자간 의사소통 혼선을 줄이기위한 도구라고 생각한다.

카테고리:

업데이트: