Загружаем каталог…
Загружаем каталог…
책 목록을 한 화면에 두 권씩 보여 준다고 하겠습니다. 다음 버튼을 눌렀을 때는 이어지는 두 권이 필요합니다. Pagination은 긴 목록을 여러 화면으로 나누어 읽는 방법입니다. 이번에는 앞에서 몇 행을 건너뛰는 방법과, 마지막으로 읽은 값을 기억하는 방법을 작은 표에서 확인하겠습니다. DB(Database)는 자료를 저장하고 찾는 시스템입니다. 표의 한 줄은 행, 가격이나 번호처럼 같은 종류의 값을 담는 항목은 열이라고 부릅니다. SQL은 DB에 작업을 요청하는 언어입니다. 아래 예제의 이름과 가격은 설명을 위해 만든 자료입니다. 먼저 결과 순서를 정하기 책 번호 가격(원) 1 100 2 200 3 200 4 300 5 400 6 500 가격이 같은 책 2와 3도 차례를 정해야 합니다. 여기서는 가격이 작은 순서로 읽고, 같은 가격 안에서는 책 번호가 작은 순서로 읽겠습니다. 서로 다른 행을 구분하는 번호까지 정렬 기준에 넣으면 이 예제의 차례가 하나로 정해집니다. ORDER BY 는 결과 순서를 지정합니다. LIMIT 는 반환할 행 수를 제한하고, OFFSET 은 결과 앞에서 건너뛸 행 수를 정합니다. 두 번째 화면을 읽으려면 두 행을 건너뛰고 두 행을 받습니다. 결과 순서를 정해 사용하는 이유는 PostgreSQL 18 LIMIT과 OFFSET 설명 에서도 확인할 수 있습니다. PostgreSQL은 DB 관리 프로그램입니다. 마지막 값으로 다음 화면 찾기 Keyset Pagination은 마지막으로 읽은 정렬 기준값을 기억하고, 그 뒤의 행을 찾는 방법입니다. 첫 화면에서 책 1과 2를 읽었다면 마지막 기준은 (가격 200, 번호 2) 입니다. 여기서부터 이어지는 두 행을 요청합니다. (price, id) > (200, 2) 라는 조건은 두 값을 왼쪽부터 비교합니다. 가격이 200을 넘는 행이 이어집니다. 가격이 200으로 같으면 번호가 2를 넘는 행이 이어집니다. 따라서 가격 200인 책 3도 다음 화면에 들어갑니다. SQLite 여러 값 비교와 목록 조회 그림의 세로 구분선은 첫 화면의 마지막 책을 표시합니다. 가격과 번호를 함께 기억하므로 같은 가격의 책도 이어서 읽을 수 있습니다. 그림은 결과의 차례를 보여 줍니다. 실제 저장 공간과 읽은 횟수는 별도 확인이 필요합니다. 같은 표에서 두 요청 실행하기 SQLite도 DB 관리 프로그램입니다. 이 실험에서는 실행 중 자료를 담는 Memory 공간에 새 SQLite DB를 만들었습니다. 다음 SQL을 같은 예제 DB에서 순서대로 실행합니다. CREATE TABLE book ( id INTEGER PRIMARY KEY, price INTEGER NOT NULL ); INSERT INTO book VALUES (1, 100), (2, 200), (3, 200), (4, 300), (5, 400), (6, 500); CREATE INDEX book_price_id_idx ON book(price, id); SELECT id, price FROM book ORDER BY price, id LIMIT 2; SELECT id, price FROM book ORDER BY price, id LIMIT 2 OFFSET 2; SELECT id, price FROM book WHERE (price, id) > (200, 2) ORDER BY price, id LIMIT 2; CREATE TABLE 은 표를 만들고, INSERT 는 행을 넣습니다. INTEGER 는 정수를 담는 열을 선언합니다. PRIMARY KEY 는 각 행을 구분하는 기본 열입니다. NOT NULL 은 값이 없음을 나타내는 NULL 의 입력을 제한합니다. CREATE INDEX 는 원하는 행을 찾는 보조 자료구조인 Index를 만듭니다. 여기서는 가격과 번호의 순서로 여러 열을 묶었습니다. SELECT 는 읽을 열을, FROM 은 읽을 표를 정합니다. WHERE 는 남길 행의 조건입니다. 첫 조회는 (1, 100) , (2, 200) 을 반환합니다. 뒤의 두 조회는 모두 (3, 200) , (4, 300) 을 반환합니다. 자료가 그대로인 이 시점에는 두 방법으로 같은 다음 화면을 얻습니다. 화면 사이에 책이 추가되면 첫 화면을 읽은 뒤, 가격 50원인 책 7이 추가됐다고 하겠습니다. 새 책은 가격순 목록의 맨 앞에 들어갑니다. 두 행을 건너뛰는 기준은 새 목록에 적용됩니다. INSERT INTO book VALUES (7, 50); SELECT id, price FROM book ORDER BY price, id LIMIT 2 OFFSET 2; SELECT id, price FROM book WHERE (price, id) > (200, 2) ORDER BY price, id LIMIT 2; 새 목록의 첫 세 행은 책 7, 1, 2입니다. OFFSET으로 두 행을 건너뛰면 책 2부터 시작합니다. 실제 결과는 (2, 200) , (3, 200) 입니다. 첫 화면에서 읽었던 책 2가 다시 나타납니다. 마지막 값 (200, 2) 를 조건으로 쓴 조회는 (3, 200) , (4, 300) 을 반환합니다. 앞에 추가된 책 7은 마지막 값의 앞쪽에 놓이므로 이 다음 화면에는 들어오지 않습니다. 이 예제는 행 추가 한 번을 다룹니다. 읽는 동안 기존 책의 가격이 바뀌거나 행이 삭제되면 필요한 화면 규칙을 다시 정해야 합니다. 모든 화면에서 같은 시점의 자료가 필요하다면 DB가 자료의 읽는 시점을 유지하는 방법까지 검토합니다. 마지막 값 하나를 기억하는 방법의 범위와, 전체 조회 시점을 유지하는 요구를 구분할 수 있습니다. 다음 화면의 기준 기록하기 Keyset 방식에서는 반환된 마지막 행의 가격과 번호를 함께 기록합니다. 정렬 기준에 쓴 값을 이어지는 요청의 조건에 그대로 사용합니다. 가격이 같은 자료가 있을 때 번호를 빼면 아직 읽지 않은 같은 가격의 행이 빠질 수 있습니다. 실제 요청에서는 정렬 방향, 빈 값의 처리, 사용자에게 보여 줄 범위도 함께 정합니다. 위 예제의 가격과 번호는 모두 값이 있고 작은 순서로 정렬합니다. 다른 조건을 넣을 때는 그 조건에 맞춘 반환 값을 다시 확인해야 합니다. 이번 실험은 결과 행을 확인했으며, 조회 시간은 측정하지 않았습니다. 확인 문제 첫 화면의 마지막 책이 (200, 2) 일 때 가격 200인 책 3은 다음 화면에 들어갈까요? 책 7이 앞에 추가된 뒤 OFFSET 2 조회가 다시 보여 준 책은 무엇일까요? 한 화면을 세 권씩 읽으려면 어떤 값과 기록을 바꿔야 할까요? 답과 해설 들어갑니다. 가격이 같고 번호 3이 마지막 번호 2의 뒤에 놓입니다. 책 2입니다. 새 목록에서 책 7과 1을 건너뛰면 책 2부터 읽습니다. LIMIT를 3으로 바꾸고, 그 결과의 마지막 행에 있는 가격과 번호를 함께 기록합니다. OFFSET 방식은 화면에 맞는 건너뛸 행 수도 정합니다. 오늘은 책 번호 여섯 개를 가격순으로 놓고 첫 화면의 마지막 값을 표시해보겠습니다. 하루 뒤에는 같은 가격의 책을 한 권 더 넣어 다음 화면을 예상해보겠습니다. 일주일 뒤에는 정렬 기준과 Index의 열 순서를 연결해 설명해보면 좋겠습니다. 자료 확인: 2026-10-07, SQLite 공식 문서와 PostgreSQL 18 공식 문서. 예제 검증 환경: Python 3.12.14, SQLite 3.53.1, 독립 :memory: DB. PostgreSQL에서는 문서의 정렬 규칙을 확인했습니다. 위 SQL의 실행 결과는 SQLite 실험의 범위입니다.
То, что RADAR обнаружил и классифицировал для этой возможности. Это опубликованный источником текст, а не подтверждение, что предложение ещё действует.
다음 페이지를 찾는 두 가지 방법: OFFSET과 Keyset Pagination. 책 목록을 한 화면에 두 권씩 보여 준다고 하겠습니다. 다음 버튼을 눌렀을 때는 이어지는 두 권이 필요합니다. Pagination은 긴 목록을 여러 화면으로 나누어 읽는 방법입니다. 이번에는 앞에서 몇 행을 건너뛰는 방법과, 마지막으로 읽은 값을 기억하는 방법을 작은 표에서 확인하겠습니다. DB(Database)는 자료를 저장하고 찾는 시스템입니다. 표의 한 줄은 행, 가격이나 번호처럼 같은 종류의 값을 담는 항목은 열이라고 부릅니다. SQL은 DB에 작업을 요청하는 언어입니다. 아래 예제의 이름과 가격은 설명을 위해 만든 자료입니다. 먼저 결과 순서를 정하기 책 번호 가격(원) 1 100 2 200 3 200 4 300…
Открыть источник