컴퓨터 프로그래밍/Spring
[Spring] 인터페이스의 default 메서드
한33
2024. 9. 1. 18:23
인터페이스의 default 메서드
// 해당 댓글이 있는지 확인
Optional<Comment> findByTodo_IdAndId(Long todoId, Long commentId);
default Comment findByIdAndTodoIdOrElseThrow(Long todoId, Long commentId) {
return findByTodo_IdAndId(todoId, commentId)
.orElseThrow(() -> new NoSuchElementException("댓글을 찾을 수 없습니다."));
}
default 메서드의 특징:
- 기본 구현 제공:
- 인터페이스에서 default 메서드를 정의하면 해당 메서드의 기본 구현을 제공한다. 이를 통해 인터페이스를 구현하는 클래스들이 이 메서드를 재정의하지 않아도 기본적으로 사용할 수 있다.
- 기존 코드와의 호환성 유지:
- 기존에 사용하던 인터페이스에 새로운 메서드를 추가할 때, 기존의 모든 구현체에 영향을 주지 않도록 하기 위해 default 메서드를 사용한다. 이를 통해 기존 코드와의 호환성을 유지할 수 있다.
- 재정의 가능:
- 인터페이스를 구현하는 클래스는 default 메서드를 재정의(Override)할 수 있다. 이를 통해 기본 동작을 커스터마이징할 수 있다.
사용 시 장점:
- 간편한 코드 재사용: 반복되는 로직을 인터페이스 내에서 default 메서드로 정의하면, 이를 구현하는 클래스들이 해당 로직을 재사용할 수 있다.
- 메서드 추가 시 유연성: 인터페이스에 새로운 메서드를 추가하면서, 기존 구현체에 영향을 미치지 않고도 기본 동작을 정의할 수 있다.