자바를 공부해본 경험이 있는 사람이라면 객체지향 프로그래밍에서 인터페이스가 얼마나 큰 비중을 차지하는지 알고 계실 거라 생각합니다. 이번 포스팅에서는 객체지향의 핵심 개념인 인터페이스의 문제점과 이를 해결하기 위해 자바에서 제공하는 기능에 대해 이야기해보고자 합니다. 인터페이스의 문제점 인터페이스는 동일한 목적의 동작을 수행하도록 구격을 정의하는 명세서의 역할을 하며, 이를 구현한 클래스에서는 구격에 맞춰 세부적인 동작을 작성합니다. 좀더 구체적으로 표현하면, 자바는 다형성을 사용하여 코드의 유연성을 확보하기 위해 인터페이스에서는 추상 메서드를 선언하고 implements 하는 구현체에서는 override 하여 구격에 맞춰 코드를 작성합니다. 객체지향 개발을 가능하게 해주는 인터페이스는 장점도 많았지만 ..