Next.js
React 상태와 모바일 레이아웃 문제
혼자 개발할수록 확인한 값과 바꾼 값을 따로 남기는 습관이 중요하다. 렌더링 조건을 명확히 해야 문제를 빠르게 해결할 수 있다.
React 상태 관리를 할 때 모바일에서 레이아웃이 깨지는 경우가 있다. 특히 상태에 따라 조건부로 렌더링되는 엘리먼트들이 많을 때 더 복잡해진다.
목표 정하기
React 쪽 문제는 화면만 보고 판단하면 놓치는 값이 많다. 로그, 응답, 설정 중 하나를 증거로 잡아야 한다.
현재 상태 파악하기
React 문제를 마주칠 때는 화면만 보고 판단하면 놓치는 값이 많다. 로그, 응답, 설정 중 하나를 증거로 잡아야 한다.
npm run build
# 브라우저에서 모바일 폭과 키보드 입력 흐름을 확인한다
모바일 뷰포트에서 다양한 상태를 직접 테스트해보면 레이아웃 문제가 명확해진다.
이벤트 흐름과 비교 기준
상태 변화에 따라 렌더링이 제대로 이루어지는지 확인해야 한다. 모바일에서는 데스크톱과 달리 CSS 미디어 쿼리나 뷰포트 크기 변화가 더 자주 일어난다.
- 먼저 볼 것: 렌더링 조건과 이벤트 흐름
- 같이 비교할 것: 정상일 때의 레이아웃
- 기록해둘 것: 상태값, 뷰포트 너비, 렌더링 결과
수정 순서
상태에 따른 렌더링 문제는 하나씩 수정해야 한다. 여러 상태를 동시에 바꾸면 원인을 파악하기 어려워진다.
모바일 화면 확인하기
모바일에서 레이아웃이 제대로 나오는지 확인할 때는 실제 뷰포트와 키보드 입력까지 함께 봐야 한다.
- 원래 증상을 모바일에서 재현한다
- 로그나 응답에서 바뀐 부분을 정리한다
- 공개 페이지에서 다양한 상태를 번갈아가며 테스트해서 최종 확인한다
다음을 위해 기록하기
결과가 바뀐 이유를 로그와 응답으로 설명할 수 있으면 충분히 정리된 것이다. 어떤 상태에서 문제가 발생하는지, 어떤 뷰포트 너비에서 레이아웃이 깨지는지 기록해두면 다음 번에도 빠르게 대응할 수 있다.