본문 바로가기

spring/토비의 스프링7

토비의 스프링 Vol. 1 정리 - 4장 예외 - 2 예외처리 방법 토비의 스프링 Vol. 1 정리 - 4 - 1 예외처리 방법 4장 예외 예외처리 방법 > 예외 복구 예외상황을 파악하고 문제를 해결해서 정상 상태로 돌려놓는 것이다. 예외처리 코드를 강제하는 체크 예외들은 이렇게 예외를 어떤 식으로든 복구할 가능성이 있는 경우에 사용한다. API를 사용하는 개발자로 하여금 예외상황이 발생할 수 있음을 인식하도록 도와주고 이에 대한 적절한 처리를 시도해보도록 요구하는 것이다. > 예외처리 회피 예외처리를 자신이 담당하지 않고 자신을 호출한 쪽으로 던져버리는 것이다. throws 문으로 선언해서 예외가 발생하면 알아서 던져지게 하거나 catch 문으로 예외를 잡은 후 다시 예외를 던지는 것이다. try { // ... } catch (SQLException e) { // 로.. 2020. 5. 6.
토비의 스프링 Vol. 1 정리 - 4장 예외 - 1 예외의 종류 토비의 스프링 Vol. 1 정리 - 4 - 1 예외의 종류 4장 예외 예외 JdbcTemplate을 대표로 하는 스프링의 데이터 액세스 기능에 있는 예외처리와 관련된 접근 방법에 대해 알아본다. 이를 통해 예외를 처리하는 베스트 프랙티스도 살펴본다. 부적절한 예외처리 > 예외 블랙홀 try { // ... } catch (SQLException e) { // 예외를 잡고는 아무것도 하지 않는다. } // 예외발생 시 콘솔에 출력 1 } catch (SQLException e) { System.out.println(e); } // 예외발생 시 콘솔에 출력 2 } catch (SQLException e) { e.printStackTrace(); } 예외가 발생하면 그것을 catch 블록을 써서 잡아내는 것까.. 2020. 4. 24.
토비의 스프링 Vol. 1 정리 - 3장 템플릿 - 3 토비의 스프링 Vol.1 정리 - 3 - 3 3장 템플릿 스프링의 JdbcTemplate 스프링은 JDBC를 이용하는 DAO에서 사용할 수 있도록 준비된 다양한 템플릿과 콜백을 제공한다. 지금까지 만들었던 UserDao는 DataSource를 DI 받아서 JdbcContext에 주입해 템플릿 오브젝트로 만들어 사용한다. JdbcContext를 JdbcTemplate로 변경해 적용해본다. 단순히 기존에 JdbcContext setter 메소드를 JdbcTemplate로 변경하면 된다. private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(DataSource dataSource) { this.jdbcTemplate = new JdbcTemplate(.. 2020. 4. 19.
토비의 스프링 Vol. 1 정리 - 3장 템플릿 - 2 토비의 스프링 Vol.1 정리 - 3 - 2 3장 템플릿 템플릿/콜백의 응용 스프링의 많은 API나 기능을 살펴보면 템플릿/콜백 패턴을 적용한 경우를 많이 발견할 수 있다. 템플릿/콜백 패턴도 DI와 객체지향 설계를 적극적으로 응용한 결과다. 스프링에는 다양한 자바 엔터프라이즈 기술에서 사용할수 있도록 미리 만들어져 제공되는 수십 가지 템플릿/콜백 클래스와 API가 있다. 템플릿/콜백 예제 A 파일을 열어서 모든 라인의 숫자를 더한 합을 돌려주는 코드를 작성 A-0. 라인별로 1,2,3,4 를 작성한 txt 파일을 resources 폴더에 생성 A-1. 테스트 코드 작성 package com.empering.springdemo.template; import org.junit.jupiter.api.Test.. 2020. 4. 19.
토비의 스프링 Vol. 1 정리 - 3장 템플릿 - 1 토비의 스프링 Vol.1 정리 - 3 - 1 3장 템플릿 개방 폐쇄 원칙 (OCP)은 코드에서 어떤 부분은 변경을 통해 그 기능을 확정하려고 하는 성질이 있고, 어떤 부분은 변하지 않으려는 성질이 있음을 말해준다. 변화의 특성이 다른 부분을 구분해주고 각각의 목적과 이유에 의해 독립적으로 변경될 수 있는 효율적이 구조를 만들어 주는 것이 개방 폐쇄 원칙이다. 템플릿이란 이렇게 바뀌는 성질이 다른 코드 중에서 변경이 일어나지 않으며 특정한 패턴으로 유지되는 특성을 가진 부분을 독립시켜 효과적으로 활용할 수 있도록 하는 방법이다. package com.empering.springdemo.user.dao; import com.empering.springdemo.user.domain.User; import ja.. 2020. 4. 7.
토비의 스프링 Vol. 1 정리 - 2장 테스트 토비의 스프링 Vol.1 정리 - 2 2장 테스트 테스트의 유용성 테스트란 예상하고 의도했던 대로 코드가 정확히 동작하는 지를 확인해서, 만튼 코드를 확신할 수 있게 해주는 작업 테스트의 결과가 원하는 대로 나오지 않는 경우 코드나 설계에 결함이 있음을 알 수 있다. 이를 통해 코드의 결함을 제거해가는 작업을 거치고, 테스트가 성공하면 모든 결함이 제거 됐다는 확신을 얻을 수 있다. 웹을 통한 DAO 테스트 방법의 문제점 흔히 DAO 를 테스트 하기위해, MVC 모든 계층을 포함한 기능을 만든 뒤 웹화면을 통해 테스트하게된다. 하지만 DAO 테스트로서 웹을 통한 테스트는 단점이 많이 존재한다. DAO 뿐만 아니라 서비스, 컨트롤러, 뷰 등 모든 계층의 기능을 구현해야한다. > 테스트 참여 클래스가 많음 .. 2020. 4. 5.