Paging, Transaction

Stormi·2022년 6월 24일
0

클론코딩

목록 보기
3/3

페이징

  • 쉽게 데이터 양을 잘라서 표현해준다고 생각하면 된다.

  • 페이징 예시에는 번호도 있지만, 무한 스크롤도 페이징이라고 생각하면된다. 무한 스크롤은 유튜브가 예시인데, 계속내리면 동영상들이 나오는데, 어느순간 계속 내리다보면 reload되는 점을 잘 생각해야한다.

  • limit를 사용하면 정해진 데이터 개수로 출력할 수 있다

select *
from User
limit 5;

이런식이면 5개를 출력할 수 있다는 것이다.

selct *
from User
limit 0, 5;

이런식으로 하면 1, 2, 3, 4, 5 인 데이터들을 출력해준다.
데이터베이스에서는 0번째부터 4번째까지인 데이터들을 가져온다는 것이다.

이러한 방식으로 데이터를 페이징해서 처리할 수 있는데
페이지번호가 1 -> 데이터는 0, 1, 2, 3, 4
페이지번호가 2 -> 데이터는 5, 6, 7, 8, 9
페이지번호가 3 -> 데이터는 10, 11, 12, 13, 14

순서대로
limit 0, 5
limit 5, 5
limit 10, 5
시작 페이지의 데이터 번호, 즉, offset이라고 하는데 이것만 달라진다.

그러면 페이지 번호를 x라고 하고 offset을 y라고하면
if x == 1, y = 0
if x == 2, y = 5
if x == 3, y = 10
이니까 y = 5x - 5
즉, y = 5(x - 1)이 되니까
여기서 5는 보낼 데이터의 수가 되니까
페이지 사이즈가 된다.

y = pageSize(page - 1)

offset = pageSize(page - 1)

이런식으로 페이징할 수 있다.

트랜잭션

  • 트랜잭션은 송금을 예시로 들 수 있다.

    철수가 영희한테 10000을 보내는 상황이다.
    철수한테는 10000원이 출금되고,
    영희한테는 10000원이 입금되는 상황이다.
    그런데, 영희한테 입금되는 상황에서 은행 서비스에 문제가 생긴다고 생각해보자. 그럼 철수의 만원이 지금 공중으로 사라진 상태라고 볼 수 있다.
    은행은 이런 경우, 어떻게 할까?
    은행은 출금과 입금을 따로 나누지 않고 송금 자체
    즉, 입출금을 하나의 거래로 판단하고 있다.
    철수의 돈이 영희에게 간것이 확인이 되어야만 거래를 종료하는 것이다.
    만약 위의 예시처럼 될 경우는 거래를 취소하게 된다.
    이렇게 하면 철수의 돈이 사라지지 않고 다시 할 수 있게 된다.

0개의 댓글