
체크 예외와 인터페이스 서비스 계층에서 처리할 수 없는 예외의 의존을 제거해서 서비스 계층을 순수하게 유지할 수 있다. 먼저, 인터페이스를 도입해서 구현체를 쉽게 변경할 수 있도록 만들어보자. 인터페이스 도입 그림 이렇게 인터페이스를 도입하면 서비스는 인터페이스에만 의존하면 된다. 이 때 체크 예외를 사용하는 경우 인터페이스에서도 예외처리를 해결해야한다. 체크 예외 코드에 인터페이스 도입 시 문제점 public interface MemberRepositoryEx { Member save(Member member) throws SQLException; Member findById(String memberId) throws SQLException; void update(String memberId, int ..

자바 예외 이해 예외 계층 스프링이 제공하는 예외 추상화를 이해하기 위해선 자바 기본 예외에 대한 이해가 필요하다. 실무에 필요한 체크 예외와 언체크 예외에 대해 알아보자. Throwable 은 최상위 예외로 하위에 Exception 과 Error 가 있다. Error 는 메모리 부족이나 심각한 시스템 오류와 같이 애플리케이션에서 복구 불가능한 시스템 예외이다. 애플리케이션 개발자는 이 예외를 잡으려고 해서는 안된다. 상위 예외를 catch로 잡으면 그 하위 예외까지 잡기 때문에 애플리케이션 로직은 최상위인 Exception 까지만 잡는 것이 올바르다. 참고로 Error 도 언체크 예외이다. Exception : 체크 예외 애플리케이션 로직에서 사용할 수 있는 실질적인 최상위 예외이다. Exception..