제가 짝귀라 한귀로듣고 그귀로 흘린거일수도 있는데요
제가 강의 듣기로는
디시리얼라이즈의 라이프사이클? 그게
클라이언트쪽에서 로그인 요청 보내면
어센시케이트 호출되면 로컬스트레잍지? 가 실행되고
클라이언트에서 입력한 ID,PW를 디비에 있는 ID,PW랑 비교해서 맞으면
요청.login 실행시켜주고
요청.login 실행됐을때 시리얼라이즈유저 가 실행돼서
app.use(세션({})) 에 작성해놨던 형식에 맞게, 세션 만들어주고,
쿠키랑 디비에 세선 넣어주고
이후 부터
클라이언트쪽에서 아무런 요청이 들어오면 디시리얼라이즈유저가 호출돼서
요청.user안에 유저 정보를 담아주는거 아니에요??
그니까, 디시리얼라이즈유저가 호출이 돼야 요청.user에 유저 정보가 담기잖아요?
디시리얼라이즈유저가 호출이 안 되면 요청.user에 유저 정보가 안 담기겠죠??
근데 아래 문제의 코드를 보면
요청.login으로 세션 만들어서 쿠키랑 디비에 넣어준 직후인데
아직 클라이언트에서 어떤 요청도 안 보냈거든요??
다시 말해서, 디시리얼라이즈유저가 호출이 안 됐는데
요청.login 안에 콜백함수에서 요청.user을 쓰니까,, 잘만 써지는데요??
아직 유저가 로그인 이후 아무런 요청을 안 보내서 요청.user에
유저 데이터가 없어야할텐데, 잘만 들어있어요..
제가 생각하기엔
가설1 :
요청.login호출되면 시리얼라이즈유저 자동으로 호출되는 것 처럼
시리얼라이즈유저 호출하면 디시리얼라이즈유저도 그순간 자동호출돼는거 아님???
그래서 저 코드의 요청.user에 유저 데이터가 들어갈 수 있게 되는건가???
가설2 :
유저가 로그인 이후 아무런 요청을 보내서 디시리얼라이즈가 호출되는게 아니라
소스코드 내부에서 요청.user라는 값에 접근하면 디시리얼라이즈가 호출되는거 아님??
그래서 저 코드의 요청.user에 유저 데이터가 들어갈 수 있게 되는거지
근데 이러면, 요청.user 을 그대로 계속 코드에 쓰면 서버 부하가 심할거같은데..?
가설3 :
내가 빡대가리인가 ??.. 여기 물어보기전에 다른 블로그들도 보고왔느데
얘도 똑같은말 하는데, 저게 맞는말이면 내 코드가 정상 작동하는게 말이 안 되는데요..?
아무런 요청도 안 보냈는데..? 그냥 로그인 해주는 코드 내부에서 세션 만들어주고
그다음에 요청.user 쓴건데.. 잘만되는데??? ?????????????????????????????????????
갓 코딩애플님 저에게 걸린 지식의 저주를 좀 풀어주세요