2020.02.14(금) - MyBatis를 활용한 다이나믹 쿼리 후기, 배치 vs 온라인에서의 롤백

Mr.SQL·2020년 2월 14일
0

실습일지

목록 보기
10/47

MyBatis 를 활용한 다이나믹 쿼리 후기

1. 기 : 다이나믹 쿼리를 처음 접한 나

그동안 일반적인 sql 문만 쓰다가, 태그형태의 쿼리는 처음봤을 때 매우 당황했다. #{column}의 형태는 직관적으로 바로 이해했는데, 태그라니...mybatis 공식홈페이지도 가봤지만, 하나도 이해가 안됐었다. 다른 사람이 쓴 예제를 봐도 상황이 다르니 잘 안들어왔다.

2. 승 : 예제 다이나믹 쿼리를 써본 나

하지만 언제까지나 안해볼 수는 없는 노릇. 오늘 날 잡아서 다이나믹 쿼리 예제들을 전부 해봤다.
예제자체에 오타 있던 거 푸느라 잠깐 머리 싸맨거 빼면, 생각보단 어렵지 않아서 놀랐다.

3. 전 : 예제 다이나믹 쿼리를 모두 해봤을 때

내가 검색 실력이 딸려서 그런건지 몰라도, 적어도 예제의 다이나믹 쿼리들을 이해하는 데에는 괜찮았다. 한 번더 해보면 왜 이렇게 해야 이런 결과가 나오는지 확실히 알 것 같다.다이나믹 쿼리 덕에 쿼리 문 자체에 함수를 적용가능하기도 하고, 뭔가 편했다.

4. 결 : 결국 연습이 답

사실 처음부터 다이나믹 쿼리 했으면 머리를 쥐어 뜯었을 것이다. 하지만 앞의 multi, single crud연습을 계속했었던 덕에 익숙해져서, 이해하는데에 도움된 것 같다.
다음주에도 한번은 더 해봐야겠다.

배치 vs 온라인에서의 롤백

먼저 배치에 대해 읽으면 좋은 글
배치의 개요 : https://limkydev.tistory.com/140
배치의 자세한 특성 : https://cheese10yun.github.io/spring-batch-basic/
궁금했던 것, 온라인은 실행중 예외처리 발생시, 이전것들에대해서 롤백이 발생한다. 그렇다면, 배치는 왜 온라인처럼 그러지 않을까. 답은 위의 첫 번째 링크에 이미 나와있긴하다.
배치는 대량의 데이터에 대한 일괄처리이므로, 한건이 잘못됐다고 이전의 건들을 롤백하기엔 효율이 좋지 않다. 배치중에서도 tasklet이 온라인처럼 롤백이 되는 것도 있긴하지만, 롤백이 된다는 것은 대용량의 IO가 발생하지 않는다는 것이다.

profile
Mr.SQL velog에 오신것을 환영합니다.

0개의 댓글