이전 단계에서는 **Next.js 서버 컴포넌트(Server Components)**를 통해 데이터베이스에 직접 접근함으로써 API 호출 과정 없이 빠른 데이터 로딩을 구현했습니다.이번에는 데이터가 지연될 때 사용자 경험(UX)을 어떻게 개선할 수 있는지 살펴봅니다.비동기 환경 구성: async/await 도입 및 지연 시뮬레이션better-sqlite3는 원래 동기적(synchronous) DB 라이브러리입니다. 하지만 로딩 UI 설명을 위해, 아래처럼 인위적으로 2초의 지연 시간을 추가하여 비동기 상황을 시뮬레이션합니다.lib/news.jsimport sql from 'better-sqlite3';const db = sql('data.db');// 동기 DB 접근이지만, UX 설명을 위해 비동기처럼 ..
UI
MUI를 사용하는 유저의 경우, 반응형 웹을 구현하는 방식에는 미디어 쿼리(Media Query)를 JavaScript에서 활용하는 방법과 CSS만을 사용하는 방법이 있습니다. 특히 React 환경에서 useMediaQuery와 같은 훅을 사용하는 방식과 CSS-only 방식을 비교하여 그 차이점을 분석합니다. 1. 렌더링 시점과 사용자 경험분류미디어 쿼리 (예: useMediaQuery)CSS-only 방식 (예: MUI sx prop)코드 예시const isMobile = useMediaQuery(theme.breakpoints.down('sm')); return isMobile ? : ;모바일 데스크탑서버/클라이언트 렌더링서버: 기본값(주로 데스크탑) 렌더링 클라이언트: 실제 화면 크기 감지 후 ..