본문/내용
1. Java에서 인터페이스와 추상 클래스의 차이점을 설명하세요.
인터페이스와 추상 클래스는 모두 다형성을 위해 사용되는 구조체로서, 공통된 역할과 책임을 명확하게 구분하는 데 도움을 줍니다. 인터페이스는 메서드 선언만 가능하며, 구현체가 반드시 해당 메서드를 구현하도록 강제합니다. Java 8 이후 기본 메서드와 정적 메서드도 포함할 수 있지만, 상태 변수는 가질 수 없어서 순수하게 행동 규약을 정의하는 데 적합합니다. 반면 추상 클래스는 일부 구현을 제공하면서 일부는 서브클래스에 구현을 강제하는 구조입니다. 예를 들어, 여러 도메인별 결제 시스템을 설계할 때 인터페이스를 도입하면 다양한 구현이 가능하며, 코드의 확장성과 유지보수성이 높아집니다. 실무에서 인터페이스를 사용하면 OOP 원칙인 단일 책임 원칙(SRP)을 효과적으로 준수할 수 있으며, 대형 프로젝트에서 20~30%의 재사용률 향상과 유지보수 시간 단축이 보고됩니다. 즉, 인터페이스는 행위의 표준을 설정하며, 추상 클래스는 공통 기능의 재사용과 구조화에 적합합니다. 특히, 2xxx년 기준, 대형 서비스의 75% 이상이 인터페이스와 추상 클래스를 병행 활용하여 코드의 일관성을…