모바일 홈 피드가 중간부터 보이던 문제, 왜 생겼고 어떻게 고쳤나?
2026.01.29 05:48조회 6
·2026.01.29 05:48·조회 6
최근 모바일에서 https://www.fullstackfamily.com/에 접속하면 피드 상단이 아니라 중간부터 보이는 현상이 간헐적으로 발생했습니다.
심지어 헤더를 눌러 홈으로 이동해도 같은 문제가 재현되어, 모바일 UX에 큰 불편을 주고 있었습니다.
증상 요약
- 모바일 홈 진입 시 “나누고 싶은 생각이 있으세요?” 영역이 안 보임
- 스크롤이 이미 내려간 상태처럼 중간부터 표시됨
- 헤더 클릭으로 홈 이동해도 동일
원인
홈 피드에는 스크롤 위치 복원 기능이 있었습니다.
sessionStorage에 스크롤 값을 저장해 두고, 다시 홈으로 돌아오면 그 위치로 복원하는 구조였죠.
문제는 이 복원이 상세 → 목록 복귀 시에만 필요한데,
새로 홈에 진입하는 경우에도 무조건 복원되고 있었다는 점입니다.
즉,
back/forward로 돌아올 때 → 복원 필요 ✅- 헤더 클릭이나 새 진입 → 복원 필요 없음 ❌
하지만 기존 코드는 이를 구분하지 않았습니다.
해결 방식
브라우저 네비게이션 타입을 확인해 back_forward일 때만 복원하도록 제한했습니다.
const navEntry = performance.getEntriesByType('navigation')[0] const navType = navEntry?.type if (navType !== 'back_forward') { // 새 진입/라우팅 → 복원하지 않음 skipRestore = true }
이렇게 하면:
- 상세에서 홈으로 돌아올 때만 스크롤 복원
- 새로 홈에 들어오면 항상 맨 위부터 표시
결과
- 모바일에서 홈 진입 시 항상 최상단부터 보임
- 헤더 클릭 후 홈 이동 시에도 중간부터 보이는 문제 해결
정리
스크롤 복원은 UX를 좋게 만들 수도 있지만,
적절한 조건 없이 무조건 적용하면 오히려 불편함이 됩니다.
이번 수정은 “복원을 없애는 것”이 아니라,
필요한 경우에만 복원하도록 조건을 명확히 한 것이 핵심입니다.
모바일에서는 작은 동작 차이가 UX 품질을 크게 좌우한다는 걸 다시 느꼈습니다.

김성박
댓글
댓글을 작성하려면 이 필요합니다.