..
Interface: 협업과 설계를 위한 객체 지향의 '틀'
1. 인터페이스(Interface)의 정의
인터페이스는 객체의 설계도이자, 클래스가 반드시 구현해야 하는 행동의 틀입니다. 객체가 무엇을 할 수 있는지 정의하지만, 구체적인 방법(구현)은 다루지 않습니다.
2. 왜 사용하는가? (협업의 관점)
인터페이스의 가장 큰 목적 중 하나는 “동시 작업과 혼선 방지”입니다.
- 병렬 개발: 서비스의 명세(Method Signature)가 인터페이스로 정의되어 있다면, 구현체가 완성되지 않아도 이를 사용하는 쪽에서는 인터페이스를 기반으로 비즈니스 로직을 미리 짤 수 있습니다.
- 의사소통 비용 절감: 인터페이스는 개발자 간의 약속입니다. 서로 어떤 메서드를 어떤 인자로 호출할지 명확히 규정하므로, 나중에 코드를 합칠 때 발생할 수 있는 수많은 런타임 오류와 리팩토링 수고를 줄여줍니다.
3. 요약
인터페이스 없이 개발하는 것은 설계도 없이 건물을 짓는 것과 같습니다. 인터페이스를 통해 시스템의 뼈대를 튼튼히 하고, 개발자 간의 신뢰할 수 있는 소통 채널을 구축하는 것이 좋은 소프트웨어 설계의 시작입니다.