java
[JAVA] 예외처리 방법
💡 예외 처리 종류 ( 간단 요약 ) 예외에는 일반적으로 에러(Error)와 예외(Exception)이 있다. Error : 시스템에 비정상적인 상황이 발생했을 경우Exception : 에러와 달리 개발자들이 만든 코드의 작업 중에 예외상황이 발생했을 경우 따라서 애플리케이션에서는 Error에 대한 처리는 신경 쓰지 않아도 된다. Exception 클래스에도 크게 체크예외와 언체크예외로 구분된다. 체크 예외 : RuntimeException 클래스를 상속하지 않은 예외 서브클래스들언체크 예외 : RuntimeException을 상속한 서브클래스들 일반적으로 체크 예외가 발생할 경우 try/catch문으로 잡거나 throws를 정의해 던져야 한다.그렇지 않으면 컴파일 에러가 발생한다. 자바 개발자가 가장 ..
[Spring] JdbcTemplate 사용법 - update(), queryForInt(), queryForObject(), query()
💡 update() JdbcTemplate는 DAO객체에서 DB와 연동하기 위해 SQL 연산들을 수행 할 수 있도록 도와주는 기술인데, update()는 SQL 연산을 통해 데이터베이스를 갱신시켜줄 때(INSERT, DELETE, UPDATE) 사용하는 메소드이다. ✏️ INSERT 치환자(?)를 가진 SQL로 PreparedStatement를 만들고 함께 제공하는 파라미터를 순서대로 바인딩해주는 기능을 가진 update() 메소드를 사용할 수 있다. SQL과 함께 가변인자로 선언된 파라미터를 제공해주면 된다. this.jdbcTemplate.update("insert into users(id, name, password) values(?,?,?)", user.getId(), user.getName(),..
[Spring] JdbcTemplate이란?
💡 JdbcTemplate이란? All SQL operations performed by this class are logged at debug level, using "org.springframework.jdbc.core.JdbcTemplate" as log category. 위 spring 사전에 나온 설명을 보면 알 수 있듯이, 스프링에서 제공하는 SQL 연산들을 수행 할 수 있도록 해주는 JDBC 코드용 기본 템플릿을 말한다. 즉, 스프링은 JDBC를 이용하는 DAO에서 사용할 수 있도록 다양한 템플릿과 콜백을 제공하는데 JdbcTemplate은 그 중 하나이다. 참고: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/sp..
[Spring] 예외처리 기능 갖추기
🤨 지금까지 만들어왔던 DAO 객체에는 심각한 문제인 예외 상황에 대한 처리 문제가 있다. 정상적인 JDBC코드의 흐름을 따르지 않고 중간에 어떤 이유로든 예외가 발생했을 경우 리소스를 반환하지 않으면, 시스템에 심각한 문제를 일으킬 수 있다. 이를 위해 예외 상황에 대한 처리를 해줘야한다. ✏️ 예를 들어, DAO 객체의 deleteAll()을 보자. public void deleteAll() throws SQLException { Connection c = dataSource.getConnection(); PreparedStatement ps = c.prepareStatement("delete from users"); ps.executeUpdate(); ps.close(); c.close(); } d..
[Spring] 학습 테스트, 버그 테스트
💡 학습 테스트(learning test)란? 다른 개발팀에서 만들어서 제공한 라이브러리 등에 대해서도 테스트를 작성해야하는 것 자신이 사용할 API나 프레임워크의 기능을 테스트로 보면서 사용 방법을 익히기 위함. 테스트이지만 기능에 대한 검증이 목적이 아닌, 그 사용 방법을 바로 알고 있는지를 검증하는게 목적 ✏️ 학습 테스트의 장점 다양한 조건에 따른 기능을 손쉽게 확인해볼 수 있다. 학습 테스트 코드를 개발 중에 참고 할 수 있다. 프레임워크나 제품을 업그레이드할 때 호환성 검증을 도와준다. 테스트 작성에 대한 좋은 훈련이 된다. 새로운 기술을 공부하는 과정이 즐거워진다 💡 버그 테스트(bug test)란? 코드에 오류가 있을 때 그 오류를 가장 잘 드러내줄 수 있는 테스트 버그 테스트는 일단 실패..
[Spring] 테스트를 위한 애플리케이션 컨텍스트 관리
https://withseungryu.tistory.com/84?category=880574 Java Build Path -> classpath를 확인해준 후 아래와 같이 경로 수정 @ContextConfiguration(locations="classpath:test-applicationContext.xml") 🧐 @Autowired 란? 스프링의 DI에 사용되는 특별한 애노테이션 Autowired가 붙은 인스턴스 변수가 있으면, 테스트 컨텍스트 프레임워크는 변수 타입과 일치하는 빈을 찾는다. 타입이 일치하는 빈이 있으면 인스턴스 변수에 주입해준다. 이때 @Autowired는 applicationContext.xml에 붙은 것이 아닌, AppicationContext에 붙여있는데 애플리케이션 컨텍스트가 ..