산업공학도의 IT

스프링 DB 1편 - 데이터 접근 핵심 원리 - 김영한님 본문

책, 강의 보는 공간

스프링 DB 1편 - 데이터 접근 핵심 원리 - 김영한님

IE_망치 2023. 12. 3. 01:55

@Lecture Content

- 이번 강의는 대부분 알고 있던 내용이어서 빠르게 들었던 것 같다.

- JDBC의 역사로 시작해 Low레벨로 코드를 짜보고, 트랜잭션의 성질 ACID(안전성을 보장)을 학습 후 반복되는 코드를 추상화해보며 비즈니스 로직에서 불필요한 connection 코드를 제거하기위해 JdbcTemplate을 사용하는 것으로 이 강의는 마무리가 된다.

- 나는 Low레벨만으로 코드를 짜봐서 이번 강의는 매우 흥미로웠다. 원래 비즈니스 로직에서 트랜잭션을 유지하기위해 AutoCommit(false)를 설정해주고 마지막에 AutoCommit(true)를 해주기까지 과정이 많았었는데, 스프링에서는 트랜잭션 매니저라는 것을 제공하기때문에 매우 깔끔하게 AOP적용을 할 수 있다. 또한 DB에 접근하는 클래스를 보게되면 연결을 하고 관련 리소스를 해제해주고~ 하는 반복되는 코드들이 save, delete, find 등의 메소드에 계속 나타나게 된다. 스프링에서는 이와 같이 반복되는 것을 해결하기위해서 JdbcTemplate(콜백 템플릿)를 제공한다. 이 콜백 템플릿을 적용하게 되면 jdbcTemplate.executeQuery(sql); 와 같은 기능으로 반복되는 코드를 싹 제거할 수 있게 된다. 이 템플릿은 DB 2편에서 자세하게 다룬다고 하여 기능만 사용하는 것으로 마무리가 되었지만, 로그로 클래스를 찍어보면 @CGBLIB~~ 뜬다. 이는 스프링이 실행할때 우리 코드를 올리는게 아닌 (템플릿코드) (내코드) (템플릿코드) 이런식으로 다시 만드는 것을 알 수 있었다.

- 마지막으로 체크예외와 언체크예외에 대해서 학습하였고, DB에서 던지는 예외를 비즈니스 로직과 분리하는 과정으로 이 강의는 마무리가 된다.(스프링에서 DataAccessException??으로 제공된다. xml을 까보면 어우 내가 만들긴 싫다..)

@Tip

- 본 강의는 SQL을 안다는 가정하에 진행되므로 선 학습 후 공부하는 것을 추천드립니다.

- 저는 Jsp/Servlet에서 Low레벨로 코드를 짜봐서 복습느낌으로 들었지만, 처음 Low레벨 코드를 짠다면 익숙치 않을 것 같습니다. 제가 공부했던 강의 링크첨부를 마무리로 포스트 마치겠습니다.

http://www.youtube.com/watch?v=Aw-lOlR0I28&list=PLOJ3X9PwqLzvyIx3mwuf-muEd5TUI-yph