Java 17 기준으로 인터페이스와 추상 클래스를 언제 선택해야 하는지, default 메서드 활용과 다중 구현 패턴을 실전 관점에서 정리합니다.도입 (문제 상황)기능 확장을 하다 보면 “이건 인터페이스로 빼야 할까, 추상 클래스로 묶어야 할까?” 같은 질문을 자주 하게 됩니다. 특히 기존 코드에 공통 로직이 생기거나, 여러 구현체가 섞이기 시작하면 선택이 더 어렵습니다. 오늘은 실무에서 바로 쓰는 구분 기준과 default 메서드, 다중 구현 패턴을 함께 정리해 봅니다.핵심 개념: Java 인터페이스와 추상 클래스, 무엇이 다를까요?인터페이스와 추상 클래스는 둘 다 “구현을 강제한다”는 공통점이 있지만, 설계 의도가 다릅니다.인터페이스는 “이 타입은 이런 능력(계약)을 가졌다”를 표현하기 좋습니다. 구..