일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 스프링 DB 2편
- 스프링MVC 1편
- spring boot
- map
- 김영한 #DB1편
- properties ??
- 백준
- 자바
- jsp
- python
- MVC 2편
- 인프런 #김영한
- 인프런 김영한
- 404
- properties 한글깨짐
- api 문서
- Hashtable
- linkedlist
- REST Docs
- whitelabel error page
- 단방향연결리스트
- Spring
- 김영한
- java
- IntelliJ
- Today
- Total
산업공학도의 IT
스프링 DB 1편 - 데이터 접근 핵심 원리 - 김영한님 본문
@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
'책, 강의 보는 공간' 카테고리의 다른 글
스프링 DB 2편 - 데이터 접근 활용 기술 - 김영한님 (0) | 2023.12.13 |
---|---|
김영한의 실전 자바 - 입문, 기본편 (1) | 2023.12.07 |
스프링 MVC 2편 - 백엔드 웹 개발 핵심 기술 - 김영한님 (2) | 2023.11.30 |
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 김영한님 (0) | 2023.09.29 |
혼자 공부하는 JS, Vue.js (0) | 2023.09.15 |