확실히 프로들은 다른 것 같아요
어제는 커스텀하게 문서 목록을 추출하고 있는데,
문서 보기 모드가 되면 문서의 하단 목록에서 페이지가 실종되는 상황이 나타나더라구요.
정확하게 말하면, 커스터마이징한 목록을 기준으로 하는 게 아니라 일반적인 목록을 기준으로 페이지가 잡혔습니다.
그래서 '아싸 버그 수정해야지'하면서 관련 내용을 뒤져봤는데
getDocumentPage라는 게 있더라구요.
이거 보면서 경탄했습니다 ㄷㄷㄷ
페이지가 명시되어 있지 않아도 문서번호 및 관련 정보를 통해 게시글 하단 목록에서 페이지를 자동으로 찾아주는 기능인데,
이게 로직이 저같은 중하급 코딩 덕후로서는 상상하기 힘든 것이더라구요.
목록의 정렬 대상(sort_index)과 정렬 기준(order_type)을 가지고 페이지를 가져오는 방식.
그리고 깔끔 그 자체인 코드.
예전에 댓글 페이지 자동 감지 함수를 보고도 비슷한 느낌을 가졌던 적이 있었습니다.
getCommentPage라는 함수였던 것 같아요.
와, 이렇게 쿼리를 통해 페이지를 감지할 생각을 하다니...
숙련성이나 구경성(究竟性)이 중요한 영역에는 확실히 어떤 경지라는 게 존재하는 것 같습니다.
감히 도달할 수 없는 곳이 존재한다는 것을 알게 되니까, 감동과 경외 그리고 시기와 좌절 같은 미묘한 감정들이 교차하더라구요. 흐흐흐흐

윤삼
Lv. 19
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.
댓글 10
그누보드 코드와는 천지차이네요 라이믹스는 잘된
저는 다양한 경험을 못해봐서;;;
그냥 여기 있다보니까 라이믹스빠가 됐네요ㅎㅎ
코알못은 뭐가 뭔지도 모릅니다 ㅋ
페이지수가 많은 곳에서 남용하면 서버 과부하의 주범이 됩니다.
현재 글보다 앞에 정렬할 글들을 일일이 세어야 하니... ㅎㅎ
참 어려운 문제긴 하네요;;;;
1.getDocumentPage 실행
2. getDocumentList에서 트리거로 목록 가로채기
3. 새 목록에 맞춰 getDocumentPage 함수를 응용해서 페이지를 새로 감지
하는 방식으로 코드를 짰는데 이렇게 되면 '과'부하가 이중으로 발생하는 거겠군요. 헐..
오, 그러네요. 그렇게 하면 되는 거겠네요.
....
모듈 실행 전에
if ( Context::get('document_srl') && !Context::get('page') )
{
Context::set('page', 1);
}
라고 해둬서 getDocumentPage 함수의 실행을 회피하고, 목록 추출 후에 다시 페이지 감지를 했습니다.
감사합니다!!
코드 쳐다봐도 뭔지 파악을 못하는 경우도 있는데 .
하나씩 코드 보면서 알아가는 재미가 .. 쏠쏠 하더라고요 .