그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록Browser
Browser

스택 두 개로 브라우저 뒤로가기/앞으로가기를 어떻게 구현하나요?

실무3/5
설계3/5
인간4/5
기초4/5

면접관의 질문 의도

자료구조를 외운 수준인지, 입력(이동/뒤로/앞으로)과 상태(현재 페이지·두 스택)를 분리해서 전이 규칙으로 설명할 수 있는지를 가른다. 경계 처리와 forwardStack 초기화 시점을 묻는 꼬리 질문으로 깊이를 확인한다.

큐레이션 답변

학습 자료

핵심은 현재 페이지를 가운데 두고 양쪽에 스택을 두는 것이다. 새 페이지로 이동하면 현재를 backStack에 넣고 새 페이지를 현재로 만들며 forwardStack은 비운다. 뒤로가기는 현재를 forwardStack에 넣고 backStack top을 꺼내 현재로 올린다. 앞으로가기는 그 반대로 forwardStack top을 꺼내 현재로 올리고 기존 현재를 backStack에 쌓는다. 이 세 가지 전이만 일관되게 지키면 브라우저 히스토리와 같은 동작이 나온다.

좋은 답변 구조

  1. 01입력(이동/뒤로/앞으로)과 상태(현재 페이지·두 스택)를 먼저 분리해서 정의한다
  2. 02새 페이지 이동 시 전이 — 현재를 backStack에 push, forwardStack은 비움 — 를 설명한다
  3. 03뒤로가기/앞으로가기 전이를 대칭으로 설명하고 현재 페이지가 어디로 옮겨가는지 짚는다
  4. 04빈 스택 경계와 forwardStack 초기화 시점을 한계/예외로 마무리한다

자주 실수하는 포인트

새 페이지 이동 시 forwardStack을 비워야 한다는 규칙을 빼먹고 뒤로/앞으로만 설명한다
현재 페이지를 별도 상태로 두지 않고 backStack top과 혼동해 전이 규칙이 어긋난다
스택이 비었을 때 뒤로/앞으로 버튼 비활성화 같은 경계 처리를 답에서 누락한다
두 스택만 외운 채 같은 URL 재방문·새로고침 복원 같은 실무 변형 질문에서 막힌다

실무 맥락

  • SPA 라우터에서 History API 위에 자체 네비게이션 상태를 얹어 관리해야 하는 환경
  • 모달·탭·스텝 폼처럼 URL 없이 화면 안에서 뒤로/앞으로를 자체 구현해야 하는 환경
  • 에디터·캔버스에서 undo/redo를 두 스택 모델로 다루는 환경
  • 딥링크 진입 후 뒤로가기 동작을 앱 정책에 맞춰 재정의해야 하는 모바일 웹뷰 환경

본인 경험에 녹이는 힌트

라우터에서 뒤로가기 후 새 페이지로 이동했을 때 forwardStack이 살아남아 이상한 앞으로가기가 된 버그를 잡아본 경험이 있다면, 초기화 규칙의 중요성과 연결할 수 있다

에디터에서 undo/redo를 두 스택으로 직접 만들어 본 경험이 있다면, 같은 전이 모델을 브라우저 히스토리 설계로 옮겨 설명하면 깊이가 드러난다

모달·스텝 폼에서 뒤로가기 동작을 URL 없이 자체 정의해본 경험이 있다면, 브라우저 뒤로가기와 앱 내 뒤로가기의 의미 차이를 답변에 녹일 수 있다

딥링크로 진입한 사용자의 backStack 초기 상태를 어떻게 채울지 결정해본 경험이 있다면, 스택 초기화 설계 이야기로 풀 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1같은 URL을 연속 방문하면 스택에 그대로 쌓나요, 아니면 합치나요? 어떤 기준으로 정하나요?
Q2History API의 pushState/replaceState와 이 두 스택 모델을 어떻게 동기화하나요?
Q3새로고침 이후에도 뒤로/앞으로 상태를 복원하려면 무엇을 영속화해야 하나요?
Q4뒤로가기 중간 지점에서 새 페이지로 이동했을 때 forwardStack을 비우는 게 항상 옳은가요?
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문