인터페이스
기술노트
📜 인터페이스 (Interface)
인터페이스는 객체 지향 프로그래밍에서 객체들이 따라야 할 약속이나 규격을 정의한 것입니다. 어떤 객체가 특정 인터페이스를 구현한다는 것은, 그 인터페이스에 정의된 모든 메서드를 반드시 구현하겠다는 의미입니다.
인터페이스는 실제 구현 코드를 포함하지 않고, 오직 메서드의 이름, 매개변수, 반환 타입 등 메서드 시그니처(signature)만을 가집니다. 마치 건물의 설계도와 같습니다.
🧐 인터페이스의 역할
- 구현 강제 : 특정 인터페이스를 구현하는 클래스는 인터페이스의 모든 추상 메서드를 반드시 구현해야 하므로, 일관된 개발 표준을 유지할 수 있습니다.
- 다중 상속 지원 : 대부분의 객체 지향 언어는 클래스의 다중 상속을 지원하지 않지만, 인터페이스는 여러 개를 동시에 구현할 수 있습니다. 이를 통해 클래스는 다양한 특징(역할)을 가질 수 있습니다.
- 느슨한 결합 (Loose Coupling) : 코드가 실제 구현 클래스가 아닌 인터페이스에 의존하게 만들면, 나중에 구현 클래스가 변경되거나 다른 것으로 교체되더라도 코드 수정의 영향을 최소화할 수 있습니다.
💡 정보처리기사 핵심 Point
- 인터페이스는 무엇을(What) 할 수 있는가를 정의하고, 실제 구현은 클래스가 어떻게(How) 할 것인가를 담당하도록 역할을 분리합니다.
- 정보처리기사 시험에서는 인터페이스의 개념, 역할, 그리고 추상 클래스와의 차이점을 묻는 문제가 자주 출제됩니다.
- 인터페이스는 다형성을 구현하는 핵심적인 방법이며, 객체 지향 설계에서 유연하고 확장 가능한 시스템을 만드는 데 필수적입니다.