테스트

    [토비 스프링] CH4-2. 예외 전환

    예외 전환의 목적 예외 전환의 목적은 두 가지이다. 런타임 예외로 바꿈으로써 필요하지 않은 catch문을 줄여주기 위함 로우레벨 예외를 좀 더 의미 있고 추상화된 예외로 바꾸기 위함 JDBC의 한계 JDBC는 자바를 이용해 DB에 접근하는 방법을 추상화된 API 형태로 정의해놓고, 각 DB 업체가 JDBC 표준을 따라 만들어진 드라이버를 제공하게 해준다. 하지만 DB를 자유롭게 변경해서 사용할 수 있는 유연한 코드를 보장해주지는 못한다. 이유는 다음과 같다. 비표준 SQL 많은 DB가 표준을 따르지 않는 비표준 문법과 기능을 제공한다. 비표준 SQL은 DAO 코드에 들어가고, 해당 DAO는 특정 DB에 종속적인 코드가 되어 버린다. 이를 해결하기 위한 방법은 두 가지이다. 호환 가능한 표준 SQL만 사용..

    [토비 스프링] CH2-1. 테스트

    테스트의 필요성 테스트란 결국 내가 예상하고 의도했던 대로 코드가 정확히 동작하는지를 확인해서, 만든 코드를 확신할 수 있게 해주는 작업이다. 보통 웹 프로그램에는 웹 화면을 통해 값을 입력하고 기능을 수행하고, 결과를 확인하는 식으로 테스트한다. 하지만 이는 DAO에 대한 테스트로서는 단점이 너무 많다. 테스트하고 싶었던 건 UserDao였는데 다른 계층의 코드와 컴포넌트, 서버 설정 상태까지 모두 테스트에 영향을 미치기 때문에 이런 방식으로 테스트를 하게 되면, 정확한 오류 지점을 파악하기 힘들다. 따라서 테스트하고자 하는 대상이 명확하다면 그 대상에만 집중해서 테스트하는 것이 바람직하다. 테스트를 할 때도 관심사의 분리 원리가 적용된다. 작은 단위의 코드에 대해 테스트를 수행하는 것을 단위 테스트라..