gaptimer
30
2021-04-13 23:13:10 작성 2021-04-13 23:13:30 수정됨
7
185

spring boot 페이지 이동시 model 객체값 유지 질문드립니다


현재 웹페이지를 만들고 있습니다만 model 객체값을 유지하는 방법에서 고민이 생겨 질문 올려봅니다.


현재 로직이

페이지를 요청 =>

model 객체 저장 후 페이지 이동 =>

이동한 페이지에서 가지고 다른 페이지 요청 ...

이런식으로 되는데 이게 한번만 하면 그냥 대충 처리하겠는데 두세번을 하니까 고민이 되네요

이동하는 페이지들은 입력값이 없고 조회만 하는 페이지들입니다.

아래는 제가 시도해본 방법입니다.


시도해본 방법

1. @SessionAttribute로 세션에 저장하는 방법

이 방법은 session 값을 지울 타이밍을 모르겠습니다. 메인페이지=>페이지1=>페이지2... 이렇게 가는데

메인페이지에서 한번 지워야되는건지 아니면 다른 컨트롤러로 요청이 가면 지워야하는건지 모르겠네요


2. 받은 model값에서 id만 GET으로 넘겨서 DB에서 다시 SELECT 하는 방법

이거는 DB를 너무 많이 갔다오는거 같아서 피하고 싶네요


3. form을 만들어서 다시 요청을 보내는 방법

매 페이지마다 객체의 모든 멤버를 form에 담아서 보내는것도 좀 아닌것 같구요....


4. ajax로 data에 담아서 보내는 방법

이거는 response 받으면 어차피 location.href로 이동해야되서 결국 2번으로 가게 되더라구요


지금 제 생각으로선 session이 제일 나은것 같은데 session값을 지우는것도 그렇지만

서버가 하는일을 늘리는게 좀 걱정스럽네요  뭔가 다른 방법이 있으면 알려주시면 감사하겠습니다.

0
  • 답변 7

  • Xasquatch
    303
    2021-04-13 23:30:25

    1. 페이지를 조회할 때 세션에 저장힐만큼 클라이언트에게 권한이 요구되는지를 먼저 생각해보셔야할거같네요

    2. jwt토큰을 이용한 방법이있습니다

    4. ajax로 받은 값을 왜 location객체를 쓰는지는 의도를 잘 모르겠네요(url값을 결과로 받는다는 말씀리시죠?...)

      추가 로드될 데이터를 받아와서 바로 뿌려주면 되는 걸로 생각되네요~


    죄송한데 질문자님의 질문의 깊이를 봐서는

    아직 구현해본게 거의 없으신거같은데

    말씀하시는 4가지 솔루션 전부 다 해보시고 본인이 선택하는게 맞으실 듯 합니다...

  • Xasquatch
    303
    2021-04-13 23:32:06

    그리고 스프링부트는 스프링을 편하게 쓰기위해 만든거지

    개발자가 편하게 스프링을 배우라고 만든건 아닙니다...

    스프링을 공부하시는게 맞을 듯 싶어요..

  • 장독깨기
    2k
    2021-04-13 23:46:57

    1,2,3 번 다 가능해보이고 이외의 방법은 별로 없어 보입니다.

    데이터가 간단하면 1번 세션으로,

    데이터가 많고 DB 로 조회가능한 상황이면 2번,

    3번 form 은 가능은 하지만, 걸리는게 좀 있어서 피하고 싶네요..

    그리고,

    DB IO가 많다든지 Session 사용 시 서버 부담이 될까 하는 건

    과한 걱정입니다. ㅎ



  • gaptimer
    30
    2021-04-13 23:55:36

    Xasquatch 답변 정말 감사합니다. 제가 입사한지 얼마 안된 신입이기도 하고

    회사에서 스프링부트를 써서 질문을 스프링부트로 올린 점 양해 부탁드립니다.


    3번의 ajax를 시도한 방법은 전달받은 model 객체를 컨트롤러에 넘겨도 ajax 요청을 받은 컨트롤러는

    view로 이동할 수 없기때문에 response 받은 후에 페이지 이동을 하기 위해서

    location을 써야될 것 같다는 내용입니다.  알려주신 내용은 구현에 참고해보겠습니다. 감사합니다.

  • gaptimer
    30
    2021-04-13 23:57:36

    장독깨기 답변 감사합니다. 제가 과한 걱정을 하고 있던거라면 다행이네요

  • Xasquatch
    303
    2021-04-14 00:03:45

    이 늦은 시간까지 일때문에 고민중이시라니 정말 열정있으시네요

    템플릿이 같다면 json방식 스트링으로 묶어서 파싱하시고

    뿌려주신다음에 window.history api로 pushstate하는 것도 방법이시구요

    제일 편한거는 그냥 세션유지하시는게 가장편하세요

    너무 무리하시지는마세요

  • gaptimer
    30
    2021-04-14 00:19:35
  • 로그인을 하시면 답변을 등록할 수 있습니다.