산업공학도의 IT

스프링 DB 2편 - 데이터 접근 활용 기술 - 김영한님 본문

책, 강의 보는 공간

스프링 DB 2편 - 데이터 접근 활용 기술 - 김영한님

IE_망치 2023. 12. 13. 17:50

 

@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 공부가 필요하고 생각한다.