export const DISPLAY_COUNT_OPTIONS = [6, 10, 12, 20, 30, 50] export const POST_LIST_COUNT_OPTIONS = [10, 20, 30, 50] export const DEFAULT_HOME_LATEST_POST_LIMIT = 20 export const DEFAULT_POST_LIST_PAGE_SIZE = 20 export const DEFAULT_TAG_POST_LIST_PAGE_SIZE = 20 export const DEFAULT_FEATURED_POST_LIMIT = 6 export const DEFAULT_PAGE_SECTION_ITEM_LIMIT = 12 export const MIN_DISPLAY_COUNT = 1 export const MAX_DISPLAY_COUNT = 50 /** * 공개 목록 표시 개수를 정규화한다. * @param {unknown} value - 원본 값 * @param {number} fallback - 기본값 * @returns {number} 표시 개수 */ export const normalizeDisplayCount = (value, fallback) => { const parsed = Number(value) if (!Number.isFinite(parsed)) { return fallback } const rounded = Math.round(parsed) if (rounded < MIN_DISPLAY_COUNT) { return MIN_DISPLAY_COUNT } if (rounded > MAX_DISPLAY_COUNT) { return MAX_DISPLAY_COUNT } return rounded } /** * 페이지 번호를 정규화한다. * @param {unknown} value - 원본 값 * @returns {number} 페이지 번호 */ export const normalizeListPage = (value) => { const parsed = Number(value) if (!Number.isFinite(parsed) || parsed < 1) { return 1 } return Math.floor(parsed) }