1. ํ์ด์ง๋ค์ด์ (Pasination)์ด๋
- ์ฝํ ์ธ ๋ฅผ ์ฌ๋ฌ ํ์ด์ง๋ก ๋๋์ด ๋ค์ ๋๋ ์ด์ ํ์ด์ง๋ก ์ด๋ํ๊ฑฐ๋ ํน์ ํ์ด์ง๋ก ์ด๋ํ ์ ์๋ ์์
- ๋ฆฌ์คํธ๊ฐ ๋ง์ ํ ํ๋ฉด์ ๊ณผ๋ํ ์คํฌ๋กค์ด ๋ฐ์ํ๊ฒ ๋๋ ๊ฒฝ์ฐ ์ ์ฉ
1.1 ํ์ด์ง๋ค์ด์ ์ ์ฌ์ฉํ๋ ์ด์
๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ด๊ณ ์๋ ์๋ฒ์ ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ์ ์ํ ๋๋ง๋ค ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๊ฐ์ ธ์ค๋ ค๋ฉด ์ค๋ ์๊ฐ์ด ํ์ํ๊ณ , ์ด๋ ์ฌ์ฉ์์ ํธ๋ฆฌ์ฑ ์ธก๋ฉด์์ ์ข์ง ๋ชปํ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํ๋ค. ์ด๋ฅผ ์ํด ํ์ด์ง๋ค์ด์ ์ ์ด์ฉํด ๋ฐ์ดํฐ๋ฅผ ์กฐ๊ธ์ฉ ๋๋์ด ๊ฐ์ ธ์ค๊ณ ๋ ์ฝ๊ณ ๋น ๋ฅธ ์ ๊ทผ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
1.2 ํ์ด์ง ๋ค์ด์ ์ ์ข ๋ฅ
- ์คํ์ ํ์ด์ง : DB์ offset ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ 'ํ์ด์ง' ๋จ์๋ก ๊ตฌ๋ถํ์ฌ ์์ฒญ/์๋ตํ๊ฒ ๊ตฌํ
- ์ปค์ ํ์ด์ง : ํด๋ผ์ด์ธํธ๊ฐ ๊ฐ์ ธ๊ฐ ๋ง์ง๋ง row์ ์์์ ๋ค์ row๋ค์ n๊ฐ ์์ฒญ/์๋ตํ๊ฒ ๊ตฌํ
2. ์คํ์ ํ์ด์ง
ํํ ๋ณผ ์ ์๋ ๋ค์๊ณผ ๊ฐ์ ํ์ด์ง ๊ตฌํ์ ์คํ์ ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์ ์ด๋ผ๊ณ ํ๋ค. ํ๋ก ํธ์๋์์ ๋ช ์์ ์ธ ํ์ด์ง ๋ฒํผ๊ณผ ํจ๊ป ์ฐ์ด๋ฉฐ, ๋ฒํผ์ ํด๋ฆญํจ์ผ๋ก์จ ํ์ด์ง๋ฅผ ํํ ๋๊ธธ ์ ์๋ค.
์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํต์ ํด ํด๋ฆฌ์ LIMIT๊ณผ OFFSET์ ํตํด ์๋ฃ๋ฅผ ์์ฒญํ๋ค.
SELECT * FROM table
ORDER BY timestamp
OFFSET {์คํ์ }
LIMIT {ํ์ด์ง ๋น ์๋ฃ์ ๊ฐฏ}
2.1 ์คํ์ ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์ ์ ๋ฌธ์ ์
๋ฐ์ดํฐ ํฌ๊ธฐ์ ๋ฐ๋ฅธ ๋ฌธ์
๋ง์ง๋ง ํ์ด์ง๋ฅผ ๊ตฌํ๊ธฐ ์ํด ์ ์ฒด ๊ฐฏ์๋ฅผ ์์์ผํ๋ฉฐ, ๋ฐ์ดํฐ ์ฌ์ด์ฆ๊ฐ ์ปค์ง ์๋ก ์ ์ฒด ๋ฐ์ดํฐ ๊ฐฏ์๋ฅผ ๊ตฌํ๋ ๊ฒ์ด ๋ถํ๊ฐ ๋ ์ ์๋ค. ๋ํ, OFFSET์ด ์ปค์ง๋ค๋ฉด ๋ถํ์ํ ๋ฐ์ดํฐ ์กฐํ๊ฐ ๋ง์์ง๊ณ ์ด๋ ์๋์ ์ํฅ์ ๋ฏธ์น๊ฒ ๋๋ค.
๋ฐ์ดํฐ ์ค๋ณต ๋ฐ ๋๋ฝ
OFFSET ๋ฐฉ์์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ์ ์ฆ์ ์ถ๊ฐ์ ์ญ์ ๊ฐ ์๋ ๊ฒฝ์ฐ์ ๋ฐ์ดํฐ๊ฐ ์ค๋ณต๋๊ฑฐ๋ ๋๋ฝ๋๋ ๋ฑ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์ด์ ๊ฐ์ ๋ฌธ์ ์ ๋ค๋ก ์ธํด ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ํฌ๊ณ , ์์ ์ด ๋น๋ฒํ๊ฒ ๋ฐ์ํ๋ค๋ฉด OFFSET ๋ฐฉ์๋ณด๋ค๋ CURSOR ๋ฐฉ์์ด ๋ ์ ํฉํ๋ค๊ณ ๋ณผ ์ ์๋ค.
3. ์ปค์ ํ์ด์ง
์ด ๋ฐฉ๋ฒ์ ์ค์๊ฐ ๋ฐ์ดํฐ์ ๋๋์ ๋ฐ์ดํฐ(ํ์ด์ค๋ถ, ์ฌ๋ , ํธ์ํฐ ๋ฑ)์ ๋ค๋ฃจ๋ ์น์ฌ์ดํธ์์ ์ฐ์ด๋ ํ์ด์ง ๋ฐฉ๋ฒ์ด๋ค.
ํ๋ก ํธ์์ ๋ฌดํ ์คํฌ๋กค(์ธ์คํ ๊ทธ๋จ, ํ์ด์ค๋ถ์ฒ๋ผ ํ๋จ์ผ๋ก ๊ณ์ ์คํฌ๋กค ๋๋ ํ์ด์ง ๋ฐฉ์)์ ์ง์ํ ๋ ์ฐ์ธ๋ค.
์ปค์ ๊ธฐ๋ฐ ํ์ด์ง์ ํ์ด์ง ๋ฒํธ๊ฐ ์๋ ํค ๋ฒํธ๋ฅผ ํตํด ํ์ด์ง๋ค์ด์ ์ ๊ตฌํํ๋ค.
SELECT * FROM product LIMIT 40 // 1~40๊น์ง์ ๊ฐ ๋ฐํ
SELECT * FROM product WHERE id > {๊ธฐ์ค๊ฐ} LIMIT 40;
3.1 ์ปค์ ๊ธฐ๋ฐ ํ์ด์ง์ ๋จ์
ํ์ง๋ง ์ปค์ ๊ธฐ๋ฐ ํ์ด์ง๋ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ์กฐํํ์ง ์๊ธฐ ๋๋ฌธ์ ์คํ์ ๊ธฐ๋ฐ ํ์ด์ง๊ณผ ๊ฐ์ด ํ์ด์ง ๋ฒํผ์ UI ๊ตฌํ์ด ์ด๋ ต๋ค๋ ๋จ์ ์ด ์๊ธฐ๋ ํ๋ค.
๐ ์ฐธ๊ณ ์๋ฃ
1. http://61.107.76.13/Li/04_25.html
2. https://betterdev.tistory.com/17
'๐ช kakaotech campus' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์นดํ ์ผ | ๐ ์นด์นด์คํ ํฌ ์บ ํผ์ค 1๋จ๊ณ ์๋ฃ ํ๊ธฐ (0) | 2023.06.17 |
---|---|
DB | ํธ๋์ ์ (Transaction) (0) | 2023.06.10 |
์นดํ ์ผ | 1์ฃผ์ฐจ WIL (0) | 2023.06.07 |
์นดํ ์ผ | SNS ๋ชจ๋ธ๋ง (Swagger UI) (2) | 2023.06.04 |
๐ ์นด์นด์คํ ํฌ ์บ ํผ์ค 1๊ธฐ ํฉ๊ฒฉ ํ๊ธฐ (8) | 2023.05.23 |