체크 예외 2

체크 예외와 인터페이스 / 런타임 예외 적용

서비스 계층은 가급적 특정 구현 기술에 의존하지 않고 순수하게 유지하는 것이 좋다. MemberRepository 인터페이스를 도입해서 구현 기술을 쉽게 변경할 수 있게 해본다. 인터페이스를 도입하면 MemberService는 MemberRepository 인터페이스에만 의존하면 된다. 구현 기술을 변경하고 싶으면 DI를 사용해서 MemberService 코드의 변경 없이 구현 기술을 변경할 수 있다. MemberRepository 인터페이스 package hello.jdbc.repository; import hello.jdbc.domain.Member; public interface MemberRepository { Member save(Member member); Member findById(Stri..

Spring/SpringDB 2022.06.28

체크 예외 활용

체크 예외 vs 언체크 예외 언제 사용하면 좋을까? 기본 원칙은 다음 2가지이다. 기본적으로 언체크(런타임) 예외를 사용 체크 예외는 비즈니스 로직상 의도적으로 던지는 예외에만 사용 체크 예외 예) => 계좌 이체 실패 예외 / 결제시 포인트 부족 예외 / 로그인 ID, PW 불일치 예외 100% 체크 예외로 만들어야 하는 것은 아니다. 다만 계좌 이체 실패처럼 매우 심각한 문제는 개발자가 실수로 예외를 놓치면 안된다고 판단할 수 있다. 이 경우 체크 예외로 만들어 두면 컴파일러를 통해 놓친 예외를 인지할 수 있다. 체크 예외 문제점 체크 예외는 컴파일러가 예외 누락을 체크해주기 때문에 개발자가 실수로 예외를 놓치는 것을 막아준다. 그래서 항상 명시적으로 예외를 잡아서 처리하거나, 처리할 수 없을 때는 ..

Spring/SpringDB 2022.06.22