일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- api 문서
- 자바
- 김영한
- java
- jsp
- 단방향연결리스트
- 백준
- REST Docs
- linkedlist
- map
- 김영한 #DB1편
- python
- 스프링MVC 1편
- IntelliJ
- 404
- properties ??
- whitelabel error page
- spring boot
- Spring
- 인프런 #김영한
- 스프링 DB 2편
- 인프런 김영한
- properties 한글깨짐
- MVC 2편
- Hashtable
- Today
- Total
산업공학도의 IT
스프링 DB 2편 - 데이터 접근 활용 기술 - 김영한님 본문
@Lecture Content
- Row 레벨로 jdbc 드라이버만 가지고 코드를 짜보아서 흥미로운 강의였다.
- 기술의 발전은 jdbc만을 이용하다가 커넥션을 열고 파라미터 넣고 받고 커넥션을 닫고~~ 하는 등의 작업을 jdbcTemplate이 해결해주었고, 이 jdbcTemplate에서 문제가 동적쿼리를 작성하기 힘들어서 Mybatis가 등장해왔다.
- 초기에 동적 쿼리를 작성할 때 귀찮았던 점이 앞에 조건이 있으면 and (조건) 으로 써야하고, 없다면 where (조건)을 처리해줘야한다는 것이다. 강의에는 안나왔지만 Row 레벨에서 효과적으로 동적 쿼리를 짜고 싶다면 where 1=1을 사용하면 좋을 것 같다. 그러면 앞의 모든 경우를 생각안하고 and (조건)만 붙이면 되기때문이다.
- 또한 관점을 객체로 바꿔 이를 DBMS와 매핑하여 사용할 수 있게하는 JPA가 등장하였다. 하지만 이것 또한 동적쿼리 작성에 대한 문제점 등 불편한 점이 많아 스프링데이터JPA, Querydsl이 등장하였다.
- 나는 쿼리 작성하는 것에 익숙해서 그런지 모르겠지만, 한방 쿼리를 작성한다는 점에서 MyBatis가 내 입맛에는 맞는 것같다. 목표가 Si, 공기업 쪽이라 그런지 모르겠지만 현제 전자정부프레임도 JPA가 있기때문에 결국 미래에는 JPA를 더 깊게 파보아야 할 것같다.
- 마지막으로 트랜잭션의 전파에 대한 이야기였는데, 쉽게 말해 한 트랜잭션이 중첩될 때 어떻게 동작하는지에 대한 이야기이다. 데이터의 일관성을 유지하기 위해 여러 스프링에서는 @Tranctional의 옵션에 propagation 값을 주어 설정해줄수 있다. REQUIRED, REQUIRES_NEW를 주로 사용한다고 한다.
@Tip
- MyBatis나 JPA가 등장하였다고해도, 결국에는 sql에 대한 이해가 선행되어야 사용할 수 있는 기술이라 선 sql 공부가 필요하고 생각한다.
'책, 강의 보는 공간' 카테고리의 다른 글
김영한의 실전 자바 - 입문, 기본편 (1) | 2023.12.07 |
---|---|
스프링 DB 1편 - 데이터 접근 핵심 원리 - 김영한님 (4) | 2023.12.03 |
스프링 MVC 2편 - 백엔드 웹 개발 핵심 기술 - 김영한님 (2) | 2023.11.30 |
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 김영한님 (0) | 2023.09.29 |
혼자 공부하는 JS, Vue.js (0) | 2023.09.15 |