묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
쿠키의 중복
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션은 메모리를 쓰는 것이기 때문에 필요할 때에만 생성해야 한다
안녕하세요스프링 MVC 2편 중 섹션 6. 로그인 처리1 - 쿠키, 세션의'로그인 처리하기 - 서블릿 HTTP 세션1' 강의에서 7:41분쯤에 세션은 메모리를 쓰는 것이기 때문에 필요할 때에만 생성해야 한다라고 하셨는데요.세션 저장은 서버에서 하는데 메모리를 쓴다고 하시는 부분은 서버의 메모리를 사용하게 된다는 말씀이신가요?사용자의 메모리가 아닌?세션을 생성할 때 사용자의 메모리를 사용하게 되는 것이 있을까요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션을 사용할 수 있다면, URL를 설계할때, /member/{id} 와 같이 PathVariable를 가져갈 필요가 있을까요?
'모든개발자를 위한 HTTP웹 기본지식' 에서 배운 바로는 URL를 설계할때, 회원조회를 위한 url 이라 치면, "/member/{id}" 같이 PathVariable인 회원id 값을 url에 명시해 두었습니다.그런데 이번에 쿠키와 세션을 학습하면서 느낀건데, 애초에 그냥 "/member" 로만 해도, 로그인한 세션값으로 회원 정보를 가져와 해당 회원에 맞는 화면을 응답해도 되지 않을까요?비슷한 또 다른 예시인데,userA가 자신이 주문한 item들을 전체 조회하고자 할때 요청할 url를"/orders/{memberId}" 로 하여 memberId를 통해 회원객체를 조회하고, 조회한 객체의 주문목록을 화면으로 뿌려주는것보다는,"/orders" 로만 url을 잡고 세션값을 통해 현재 요청을 날린 회원 객체를 받아 주문목록을 화면에 뿌려주는것이 조금 더 url을 간결하게 만들 수 있지 않을까.. 라는 생각이 들었습니다. 결론:url을 "/member/{id}" 으로 잡았던 이유가 아직 세션을 학습하기 이전이라 그런것인가요, 아니면 다른 이점이 있기 때문일까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
프론트 컨트롤러 3,4에서 세션 사용시
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]ControllerV3 or ControllerV4에서 세션 접근 희망시 문제"mvc프레임워크 만들기의 프론트 컨트롤러 버전 3,4" 처럼, request와 response 객체를 각각의 컨트롤러에 넘겨주지 않고 paramMap으로 넘겨주는 식으로 개발하게 되면 컨트롤러 안에서 세션 접근이 안 될 것으로 생각되는데 맞을까요?이런 경우 :1. 각각의 컨트롤러 자체에서 세션에 접근할 일이 없게 구성한다 (예: 세션 정보 확인 후 해당되면 별도의 값을 넘겨주는 로직 등을 컨트롤러 밖에서 진행)2. paramMap을 string Obejct 형식으로 구성하여 세션도 함께 넘겨준다.2.1 paramMap과 더불어 session객체를 넘겨준다.3. 필요한 경우 굳이 paramMap을 넘겨주는 것이 아닌 기존의 request, response 를 넘기는 방식으로 구성한다.등의 대안이 떠오르는데..상황마다 다르겠지만 혹시 이런 경우 일반적으로 어떤 식으로 개발을 진행하는지, 아니면 처음부터 별개의 방법이 있는 것인지 궁금합니다.
-
미해결스프링부트 시큐리티 & JWT 강의
안녕하세요 강의 듣던중 JWT와 세션에 관해 의문이 들어 질문 남깁니다.
안녕하세요 좋은 강의 잘듣고 있습니다. 다름이 아니라 강의를 듣는중에 의문이 들어 질문 드립니다. 세션과 JWT의 차이가 세션을 유지하냐 안하냐의 차이로 알고 있는데 JWT를 쓸때 authenticaion 객체가 session 영역에 저장됨. 이라고 하셨는데, 인증정보를 세션 저장소에 저장하게 되면 결국 해당 세션을 유지하는 것 아닌가요? 차이가 없어지는 것 아닌가 싶어서 질문 남깁니다. 아, 그리고 추가로 github에 @AuthenticationPrincipal가 사용불가능이라 하셨는데 컨트롤러에서 불러와 보니까 잘 불러와지던데 제가 뭘 잘못한 걸까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
session.getAttribute(SessionConst.LOGIN_MEMBER) 질문
안녕하세요 영한님! 질문드립니다..! 아래와 같이 로그인 시 세션에 로그인 회원정보를 보관하고 //로그인 성공 처리 TODO //세션이 있으면 있는 세션 반환, 없으면 신규 세션을 생성 HttpSession session = request.getSession(true); //세션에 로그인 회원 정보 보관 session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember); 아래와 같이 세션에서 SessionConst.LOGIN_MEMBER가 key 값으로 session 에서 SessionConst.LOGIN_MEMBER와 매칭되는 value인 Member 객체를 꺼내오는 것으로 이해하고 있는데,, Member loginMember = (Member) session.getAttribute(SessionConst.LOGIN_MEMBER); 위와 같은 로직으로 여러회원이 로그인 할 텐데... 어떻게 하나의 key 값으로 여러개의 Member 객체를 구별 할 수 있는지 궁금합니다...! 감사합니다.!
-
미해결스프링 시큐리티
무상태성
안녕하세요. 백기선선생님 강의내용을 아래와 같이 정리했습니다. - Authentication 인증객체는 SecurityContext에 저장됨. - HttpSession에 SecurityContext가 캐싱됨. 질문 쿠키-세션방식에서는 모든 사용자의 인증정보를 서버측 세션에 보관했지만 이를 개선한 방식이 jwt토큰방식으로 알고 있습니다. 그런데 jwt토큰으로 인증을 마치고 나면 인증정보가 SecurityContext에 저장되고 이 SecurityContext도 세션에 캐싱되니 결론적으로 jwt방식도 로그인한 모든 사용자의 인증정보를 서버에 저장하게 되는 꼴이 아닌가 생각됩니다. 위 내용중에 잘못된 부분이 있으면 조언부탁드립니다. 감사합니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
안녕하세요. 스프링 로그인 유지 관련 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예/2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 들은 학생입니다. 이번에 스프링 인터셉터 - 인증 체크를 듣고 개발을 해보았는데요.김영한 강사님께서 만드신 로그인 세션 기능은 유저 한명일 때 잘 작동하는 것은 알 수 있는데, 궁금한 점은 유저가 여러명일 때는 작동이 잘되는가 라는 점입니다.세션은 서버의 메모리상에서 공유되는데 if( session == null || session.getAttrivute(SessionConst.LOGIN_MEMBER) == null ) .... 위와 같은 코드 부분에서 session이 있다고 하더라도 만약 다른 유저가 이미 로그인 되어 있다면(로그인을 했다면), session과 세션의 SessionConst.LOGIN_MEMBER 키에 대한 값은 이미 존재합니다.따라서 저는 이번에 예시로 작성해주신 로그인 세션 유지 기능이 유저 한명이 일 때만 작동한다고 생각합니다. 아직 제가 많이 부족하고 많이 모자랍니다. 나쁜 의도로 질문한 것이 아니라 너무 궁금하고 아무리 찾아봐도 모두 강사님처럼 코딩을 하셔서 질문남겨봅니다. 항사 강사님께서 쉽고 친절하게 설명해주신 덕분에 쉽게쉽게 스프링을 이해하고 잘 배워갑니다. 감사합니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
세션 쿠키 질문 있습니다^^
쿠키의 생명 주기 설명에서 세션 쿠키: 만료 날짜를 생략하면 브라우저 종료시까지만 유지된다고 하셨는데, 웹서버 입장에서는 웹 브라우저가 종료되었다는 사실을 모를텐데 그럼 서버는 세션을 언제까지 보관하고 있나요?
-
미해결스프링부트 시큐리티 & JWT 강의
마지막 27강에 세션 저장에 대해 궁금한점이 있습니다.
이 부분에서 잘 이해가 안가는것이 있어 질문드립니다. 첫번째는, 저 밑줄 친 부분은 이미 정상적으로 jwt토큰 검증이 끝난 케이스인데 저 때 해당 권한처리를 위한 세션을 저장한다고 하면 권한 요청이 필요한 uri에 들어갈때 마다 계속해서 세션을 저장하게 되는것인가요? 예를들어 게시글 작성, 프로필 보기 이런 링크를 탈 때마다 밑줄 친부분이 실행이 될텐데 그렇다면 동일한 user의 권한을 중복되서 저장되는게 아닌가 싶어서 질문드립니다. 두번째는,처음에 로그인할때 권한을 세션에 저장하는 것이 아니라 저렇게 권한 요청이 있을때 세션에 권한을 저장하는 형식으로 만드는 이유가 궁금합니다. 끝으로, 정말 수업 재밌게 잘들었습니다. 궁금해서 답답했던 부분이 이 강의 하나로 "뻥"하고 해소된 느낌입니다. 좋은 강의 감사합니다!
-
미해결이미지 관리 풀스택(feat. Node.js, React, MongoDB, AWS)
세션에 대해서 질문이 있습니다.
강의 너무 감사히 잘 듣고 있습니다. 강의를 들다 궁금한게 있어서 질문을 드립니다. 개인적으로 서버를 구축할떄 JWT가 간단하고 추가적으로 Redis server를 추가할 필요가 없어서 jwt를 선호합니다. 실무에서는 세션 vs JWT중 어떤것을 많이 쓰는지와 트랜드 혹은 선호되는 이유를 알 수 있을까요?
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
6:23 쿠키파서 path
res.cookie("name",value,{ path:"/" }); 여기서 path 를 여러개 지정할수 있나요? 예를들어 /login 이랑 /room 두개의 경로를 지정해 지정한 경로에만 쿠키를 보여주고 나머지 경로에는 안보여주고 싶은데 어떻게 하는것이 좋을까요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
쿠키 전송 문제
안녕하세요 제로초님 이 강의를 듣고 ssr 말고 먼저 csr 을 구현해보고자 구현중입니다. ssr 부분 제외하고는 강의에서 알려주신 바탕에 조금씩 응용을 해서 react는 netlify에 nodejs-express는 heroku에 배포하였습니다. 아래는 각각의 주소입니다. front - https://app.netlify.com/sites/tre-jhsk/overview back - https://treback.herokuapp.com/ 로컬에서 각각 서버를 켜서 테스트 할때는 로그인 시 쿠키가 전송이 되어서 새로고침 시에도 로그인이 유지가 되는데 배포를 하면 쿠키가 전송이 안되어서 로그인 했을 때 새로고침 시 바로 로그인이 풀려버리고 개발자 도구에도 쿠기가 아예 전송이 안되는 것 같습니다.. 아래 세션 설정 및 프론트 saga index.js 파일에서 axios base url 설정 코드 입니다. 따로 추가해줘야 하는 부분이 있는건가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
세션에 관해서 질문드립니다.
1. https에서 세션 키라고 해서 하나의 통신 세션에서 모든 메시지를 암호화하기 위해 사용되는 1회용 대칭키라고 하는게 있다는 것을 알았는데요. 여기서 세션 키에 세션이 강의에서 나온 세션과 같은 의미로 사용되는게 맞나요??
-
미해결구글 애널리틱스4 (GA4) 미니 코스
전자상거래 및 변수 설정 관련 외
질문이 많아서 죄송합니다. GA4에서 큰 변화가 있어 이해가 어려워 질문이 많습니다. T^T 1. 전자상거래 기존 GA에서 전자상거래 (Goal)을 설정할 경우 개발자가 상품ID, 가격정보 등을 GA에 전송할 수 있도록 각 항목들을 셋팅해줬어야 하는 데, GA4도 동일한 구조로 개발자가 셋팅을 해줘야 하는 지 궁금합니다. 만약 그렇다면 어떻게 셋팅하는 지 혹시 가이드가 있을 런지요? 또한 그렇지 않다면 마케터가 직접 셋팅할 수 있는 방법이 어떤 것인지 또한 궁금합니다. 2. 변수 설정 GTM 통해서 셋팅하려고 하는 데 기존에 상품 ID를 Custom Dimension에 전송하고 싶다면 GTM에서 맞춤 자바스크립트를 통해 상품ID를 가져오고 해당 값을 변수로 정의한 후에 Custom Dimension index에 맞춰 넣었습니다. GA4에서도 이러한 변수를 가져오는 작업은 동일하게 필요한지요? 3. 기본 매개변수 Page관련 매개변수 외 변수들은 어떤 용도로 주로 활용되나요? 수집은되나 용도를 모르겠어서 문의드립니다. 또한 User_engagement로 수집되는 값은 기존 session과 동일한 의미 일까요? 4. 세션 관련 session_start이벤트 설명에서 30분 동안 아무런 행동이 없을 때 새로운 이벤트가 트리거 된다고 말씀주셨습니다. 그럼 사용자가 19:05분에 접속한 후 아무활동도 없이 19:50분까지 있다가 19:55분에 종료하게 되면 세션이 2가 되는 건가요? UA에서는 해당 케이스에서는 세션1, 이탈1로 이해했는 데 아닐까요? UA와 세션 기준이 달라지는 것인지 궁금합니다. 5. 향상된 측정 페이지조회, 스크롤 등은 자동으로 GA에서 생성하게 셋팅할 수 있다고 이해했습니다. 그러면 GA4에서 페이지 조회, 스크롤을 측정하게 셋팅해놓고, GTM 을 통해 특정 페이지 (ex. /cart) 접근 시 이벤트 발생 30%, 60%, 90% 스크롤 시 이벤트 발생 시 이벤트 발생을 추가했다면, 이벤트가 2번 찍히는 케이스에 대한 방어는 GA에서 자동으로 되는 건가요? 아니면 이벤트가 2번 찍히게 되나요?