인프런 커뮤니티 질문&답변

컴퓨터공부하자님의 프로필 이미지
컴퓨터공부하자

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

PRG Post/Redirect/Get

새로고침 말고 뒤로가기를 누르면 어떻게 되나요?

해결된 질문

작성

·

765

1

새로고침 문제를 PRG 패턴으로 해결했어도 뒤로가기 버튼을 누르면 '전의 전'의 요청을 다시하는가 싶어서 눌러보았습니다.

그랬더니 get 요청처리되어서 상품 등록 폼이 나왔습니다.

그래서 상품이 중복 등록되진 않는 것 같은데 '전의 전'에 사용한 'get method' 요청을 다시 보낸다고 이해하면 될까요? 전의 전 요청이 post 요청이면 건너띄고 전의 전 get 요청을 찾아서 보내는 거라고 이해했습니다. 

뒤로가기에 대해서 제가 제대로 이해한 건지 잘 모르겠습니다.

답변 1

7

안녕하세요. 컴퓨터공부하자, 공식 서포터즈 OMG입니다.

기존에 알고 있던 내용이지만, 새로 배운 개념과 혼합하여 생각하다보면 혼선이 오면서 알고 있던것 마저 긴가민가 해지는 경우가 있는데 컴퓨터공부하자님도 제가 겪어보았던 그런 상황에 직면하신거 같네요.

이 답변을 볼 동안은 PRG를 머릿속에서 지우고 보세요.

뒤로가기에 대해 설명해드릴게요, 예시를 들어보죠.

1. 크롬을 켰습니다. 시작화면이에요.

2. 서버를 실행시키고 메인화면에 접속하였습니다.

브라우저의 뒤로가기 버튼을 길게 누르면 넘어온 페이지 순서대로 쌓여있는걸 볼 수 있는데, 시작화면에서 넘어온게 기록 되어 있네요.

3. 화면을 좌측 상단만 캡쳐해서 그런데, 상품관리 - 기본을 눌러서 화면 전체 상품이 조회되는 페이지에요. 페이지 이동한게 더 추가 되었네요.

4. 상품 등록 버튼을 눌렀습니다. 또 추가 되었네요

5. 상품을 추가하고, @PostMapping을 타고 Redirect되었습니다. 화면 이동 기록을 보시면 아시겠지만, 이전 페이지의 기록(@GetMapping의 add)이 저장되어 있을 뿐(@PostMapping으로 넘어온 /add) 별도의 추가적인 경로가 섞여 있진 않습니다.

6. 이번엔 뒤로가기를 눌러 화면을 이동하였습니다. 상품 등록 화면이 나오는게 당연하죠? 추가로 앞으로가기 버튼이 활성화 되었네요.

결국 뒤로가기와 앞으로가기는 우리가 이동한 페이지의 (순서) 히스토리를 나타낸다고 보시면 됩니다.

설명이 추가로 더 필요하시면 댓글 남겨주세요.

감사합니다.

컴퓨터공부하자님의 프로필 이미지
컴퓨터공부하자

작성한 질문수

질문하기