47a3790c57a64f670460b4bece12e3a4004d32f1
게시판 목록 페이지에서 발생하던 N+1 쿼리 패턴 2건을 제거: 1. 공지 처리 루프 (line 94~120): 기존에는 bo_notice의 각 wr_id마다 sql_fetch를 따로 호출하여 공지가 N개면 N개의 쿼리가 발생. 유효한 wr_id를 정수화하여 수집한 뒤 단일 IN 쿼리로 일괄 조회하고, id 기반 해시맵으로 원래 순서대로 처리. 2. 검색 결과 2차 조회 (line 199~200): DISTINCT wr_parent 쿼리로 ID만 받은 뒤, 각 행마다 sql_fetch를 호출하여 검색 결과가 N건이면 추가로 N개의 쿼리가 발생. 단일 IN 쿼리로 모든 부모 글을 일괄 조회 후 $rows_to_process 배열에 원래 순서대로 정렬하여 공통 처리 루프에서 소비. 검색/비검색 분기에서 중복되던 row→list 변환 로직도 공통화. 효과 (공지 5개 + 검색 결과 20건 기준): 기존: 1 DISTINCT + 20 fetch + 5 notice fetch = 26 쿼리 개선: 1 DISTINCT + 1 IN(search) + 1 IN(notice) = 3 쿼리 부수 효과: - 삭제된 공지/부모글에 대한 에러 처리 개선 (기존은 empty row를 get_list에 넘겨 잠재적 오류, 개선판은 자동 스킵) - wr_id 정수화로 SQL injection 방지 계층 추가
The file is empty.
Languages
PHP
70.9%
JavaScript
16.7%
CSS
7.6%
HTML
4.6%
Python
0.2%