Group Study (2023-2024)/Spring 심화 4

[Spring 심화] 4장 예외

1️⃣ 사라진 SQLException public void deleteAll() throws SQLException { this.jdbcContext.executeSql("delete from users"); } // SQLException이 사라짐 public void deleteAll() { this.jdbcTemplate.update("delete from users"); } 초난감 예외처리 예외 블랙홀 catch 블록을 써서 잡아낸 후 아무 처리도 하지 않음 try { } catch(SQLException e){ } 시스템의 오류나 이상한 결과의 원인을 찾을 수 없음 화면에 출력한 경우도 예외를 처리한 것이 아님 } catch(SQLException e){ System.out.println(e);..

[Spring 심화] 3장 템플릿

☘️ 3.1 다시 보는 초난감 DAO ☘️ 3.1.1 예외처리 기능을 갖춘 DAO [JDBC 수정 기능의 예외 처리 코드] JDBC 코드는 어떤 상황에서도 가져온 리소스를 반환할 수 있도록 try/catch/finally 구문 사용을 권장한다. ☘️ 3.2 변하는 것과 변하지 않는 것☘️ 3.2.1 JDBC try/catch/finally 코드의 문제점 테스트를 통해 DAO마다 예외상황에서 리소스를 반납하는지 체크하게 해야 하지만 .. 3.2.2 분리와 재사용을 위한 디자인 패턴 적용 [메소드 추출] 변하는 부분을 메소드로 빼서 독립시킨다. 이렇게 하면 분리시키고 남은 메소드가 재사용이 필요하고, 분리된 메소드는 DAO 로직마ㅏㄷ 새롭게 만들어서 확장되어야 한다. [템플릿 메소드 패턴의 적용] 템플릿 메..

[Spring 심화] 2장 테스트

2장 테스트 🌿 UserDaoTest 다시보기 🌱 테스트의 유용성 테스트란 결국 내가 예상하고 의도했던 대로 코드가 정확히 동작하는지를 확인해서, 만든 코드를 확신할 수 있게 해주는 작업. → 디버깅 과정을 거치며 코드와 설계의 결함을 고친다! 이를 통해 테스트가 성공하면 모든 결함이 제거됐다는 확신을 얻을 수 있음. 🌱 UserDaoTest의 특징 main() 메소드로 작성된 UserDaoTest() public class UserDaoTest { public static void main(String[] args) throws SQLException{ Application context = new GenericXmlApplicationContext("applicationContext.xml"); Us..

[Spring 심화] 1장 오브젝트와 의존관계

1장 오브젝트와 의존관계 ☘️스프링이란 '어떻게 오브젝트가 설계되고, 만들어지고, 어떻게 관계를 맺고 사용되는지 관심을 갖는 프레임워크'이다. 1.1 초난감 DAO 💡DAO (Data Access Object) DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트를 말한다. 사용자 정보를 DB에 저장하고 조회할 수 있는 간단한 DAO를 하나 만들어보자. public class UserDao { public void add(User user) throws ... { Class.forName("com.mysql.jdbc.Driver"); Connection c = DriverManager.getConnection("jdbc:mysql://localhost/springbook", "spr..