인프런 커뮤니티 질문&답변

너굴너굴너구리님의 프로필 이미지
너굴너굴너구리

작성한 질문수

남박사의 파이썬으로 실전 웹사이트 만들기

게시판만들기 - 글 리스트

'page'의 의미를 잘 모르겠습니다.

해결된 질문

작성

·

517

1

강의 18분쯤에 설명하시는 page 변수가 무엇을 의미하는지

잘 모르겠습니다..

답변 3

1

남박사님의 프로필 이미지
남박사
지식공유자

아닙니다. 총 몇 페이지에 걸쳐 게시된다는 말은 성립될 수 없습니다. 총 페이지 수는 게시물 수 / 페이지당 출력갯수에 의해 결정되는 사항이지 개발과정에서 설정하는 사항은 아닙니다. 사용자가 1페이지 링크를 클릭하면 page=1 이 되고 10페이지를 클릭하면 page=10 이 됩니다. 이렇듯 page 는 사용자가 몇 페이지 링크를 클릭했는지를 기억하기 위한 변수일 뿐입니다. page 값은 사용자에 의해 요청되는 값이지 개발과정에서 설정되는 값이 아닙니다.

1

남박사님의 프로필 이미지
남박사
지식공유자

게시물 데이터가 10,000 개가 있다고 가정했을때 10,000개를 한 화면에 모두 보여줄 수 없습니다. 그래서 이를 적당한 갯수로 나누어서 출력하는데 이렇게 나누어진 단위를 페이지라고 합니다. 예를 들어 한페이지에 50개씩 게시물을 출력한다고 했을때 10,000 / 50 = 페이지 수 가 나오게 됩니다.

꼭 게시판 뿐만 아니라 네이버 블로그, 쇼핑몰의 상품목록, 언론사 뉴스 게시판 등등 모든 웹페이지는 이렇게 데이터를 한화면에 모두 출력하는게 아니라 적절한 갯수만 출력하는데 이 적절한 갯수만큼 보이는 한 화면을 한 페이지라고 생각하시면 됩니다. 그리고 이를 구현하는것을 페이징 처리 한다고 합니다. 보통 영어로는 pagination 이라고 합니다. 적절한 갯수는 개발자가 정하는것이고 페이징 처리 기법 역시 개발자마다 약간씩 스타일이 다르기는 하나 목적은 모두 똑같습니다.

강좌 18:54초 코드에서 lists() 함수의 파라메터로 넘어오는 page 변수는 현재 사용자가 보는 게시판이 몇 번째 페이지를 요청하는지를 알아야 그에 해당하는 게시물 목록을 페이지로 넘겨줄 수 있기 때문에 그렇게 구현합니다. 예를 들어 게시물 데이터가 100개라고 하고 한페이지당 10개씩 출력한다고 가정했을때 사용자가 3페이지를 요청했다고 치면 데이터는 21번부터 30번까지의 데이터가 출력되어야 합니다. 그래서 이런 처리하기 위해 page 변수를 받아서 처리합니다. 

https://movie.naver.com/movie/point/af/list.nhn?&page=8

예를 들어 위의 링크는 네이버 영화 리뷰 게시판 링크 인데 위의 주소에서 처럼 파라메타로 page=8 을 넘기게 되면 8페이지에 해당하는 데이터가 출력되는걸 확인하실 수 있습니다.

http://www.nambaksa.kr/board/list?page=3

위 링크는 강좌에서 사용된 코드로 작성된 샘플 게시판입니다. 위의 게시판은 한페이지당 7개씩 출력을 하고 있는데 파라메타로 page=3 을 넘겨서 3페이지가 로드되는걸 확인하실 수 있습니다.

참고가 되셨길 바랍니다.

0

답변 감사합니다. 제가 한가지 의문이 드는 부분은

페이지라는 변수의 정의가 전체 게시물이 총 몇페이지에 걸쳐 게시되는가에 대한 값을 저장하는건가요?

강의에서는 page 값을 정의하기 전에 한 화면에 50개의 게시물이 다 출력이 됐는데 그러면 이때는 값이 1이고

limit를 10으로 해서 총 5페이지로 구성이 되면 page값이 5가 되는건가요?

만약 그런거라면 page는 limit의 값에 따라 결정이 되는 변수라는 생각이 드는데 그러면 뭔가 이상한거 같은데...

제가 이해하고 있는게 틀린거 같은데....뭔가 제가 잘못 이해를 하고 있는 것 같긴 합니다....

이해가 잘 안되네요...

너굴너굴너구리님의 프로필 이미지
너굴너굴너구리

작성한 질문수

질문하기