인터페이스
인터페이스
이전 수업에서 인터페이스를 구현하는 예를 본 적이 있을 거예요. 이 장에서는 인터페이스를 더 깊게 다뤄요. 인터페이스가 무엇을 위한 것이고, 왜 작성해야 하는지, 그리고 어떻게 작성하는지 살펴봐요.
출처: dev.java
본문
이전 수업에서 인터페이스를 구현하는 예를 하나 봤어요. 인터페이스에 대해 더 알아볼 내용이 남아 있어요. 인터페이스가 무엇을 위한 것이고, 왜 작성하고 싶어지는지, 그리고 어떻게 작성하는지에 대한 내용이에요. 인터페이스의 세계는 크게 세 갈래로 나뉘어요.
- 인터페이스 사용하기(Using interfaces) — 소프트웨어가 어떻게 상호작용하는지를 명확히 규정하는 **계약(contract)**을 설계할 때 인터페이스를 사용해요.
- 인터페이스 구현하기(Implementing an Interface) — 인터페이스를 구현하는 클래스를 만들어서, 클라이언트 코드(사용하는 쪽 코드)로부터 구현 세부 사항을 숨겨요.
- 타입으로서의 인터페이스(Using an Interface as a Type) — 인터페이스는 하나의 타입을 정의해요.
핵심은 인터페이스가 "어떻게 동작하는지"가 아니라 "무엇을 할 수 있는지"를 규정한다는 점이에요. 즉 인터페이스를 통해 무엇을 해야 하는지를 정하고, 실제로 어떻게 할지는 구현하는 클래스가 책임지게 돼요. 그 결과 클라이언트 코드는 구체적인 구현에 얽매이지 않고, 인터페이스라는 계약만 바라보고 작성할 수 있어요.
더 알아보기 (Learn more)
인터페이스를 정의하고 구현하는 실제 문법, 디폴트 메서드나 정적 메서드 같은 인터페이스의 다양한 기능은 Using interfaces와 Implementing an Interface 튜토리얼에서 자세히 다뤄져요. 인터페이스가 타입으로 어떻게 쓰이는지는 Using an Interface as a Type에서 확인할 수 있어요.