묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
[Spring] 스프링 세션이 만료가 되면 localStorage에 저장한 값들도 같이 제거됩니다 도와주세요ㅜㅜ
현재 로그인 유지 체크 여부에 따라 로그인 기능 유지 기능을 구현하고 있습니다. 클리이언트 단에서 localStorage를 이용해 이메일과 패스워드, 로그인 유지 체크 여부를 저장하여서버(스프링 레거시 기반)에 로그인 세션 만료 후에도 자동으로 로그인이 유지하도록 했습니다. 그런데 로그인 세션이 만료되면 localStorage에 설정했던 값들도 같이 초기화 되어버리는 현상을 발생합니다ㅜㅜ localStorage는 클라이언트에 데이터를 저장할 수 있도록 지원하는 web storage 기능으로 알고 있는데, 서버의 세션 만료가 클라이언트 단에 영향이 가는 걸까요? header_menu.jsp: 화면에 고정되는 jsp로, 어느 화면으로 접속하든지 간에 아래 스크립트가 동작하여 재 로그인을 하도록 구현했습니다. <nav class="navbar navbar-expand-md bg-dark navbar-dark fixed-top shadow-lg"> <a class="navbar-brand" href="${root }main">Easyvvon</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navMenu"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navMenu"> <c:if test="${loginUserBean.user_login != false }"> <ul class="navbar-nav"> <c:forEach var="vo" items="${headerMenuList }"> <li class="nav-item"> <a href="${root }board/main?$board_info_idx=${vo.id }" class="nav-link">${vo.category_name }</a> </li> </c:forEach> </ul> </c:if> <ul class="navbar-nav ml-auto"> <c:choose> <c:when test="${loginUserBean.user_login != true }"> <li class="nav-item"> <a href="${root }user/login" class="nav-link">로그인</a> </li> <li class="nav-item"> <a href="${root }user/join" class="nav-link">회원가입</a> </li> </c:when> <c:otherwise> <li class="nav-item"> <a href="${root }user/modify" class="nav-link">정보수정</a> </li> <li class="nav-item"> <a href="${root }user/logout" class="nav-link">로그아웃</a> </li> </c:otherwise> </c:choose> </ul> <input id="login_status" type="hidden" value="${loginUserBean.user_login }"> </div> </nav> <script> window.onload = function() { // 페이지 무한 reload 방지, // 로그인 상태(loginCheck)가 null이면 'false', 로그인 중이면 'true' var login_status = $("#login_status").val(); var keep_login_check = localStorage.getItem("keep_login"); var keep_login_email = localStorage.getItem('keep_login_email'); var keep_login_pw = localStorage.getItem('keep_login_pw'); if(login_status == "false" && keep_login_check == "true" && (keep_login_email != null & keep_login_pw != null)) { var params = { user_email : keep_login_email, user_pw : keep_login_pw }; $.ajax({ type: "POST", url : "${root }user/doLoginAjax", data: params, dataType: "text", success : function(result){ if (result.trim() == "true") { location.reload(); } else { //localStroage 전체 삭제 localStorage.clear(); location.reload(); } } }); } } </script> root-context.xml <bean id="loginUserBean" class="com.easyvvon.steveleejava.model.vo.UserVO" scope="session" /> UserVO.java: 로그인 세션 역할 Bean을 설정하고, 위 header_menu.jsp 코드의 input hidden(빨간표시)에 로그인 상태 값을 나타내도록 구현했습니다. UserController.java @Resource(name = "loginUserBean") @Lazy private UserVO loginUserBean; @PostMapping(value = "/user/doLoginAjax") public String doLogin(@RequestParam(required = false) Map<String, Object> params, UserVO tmpLoginUserBean, Model model) { tmpLoginUserBean.setUser_email(String.valueOf(params.get("user_email"))); tmpLoginUserBean.setUser_pw(String.valueOf(params.get("user_pw"))); userService.doLogin(tmpLoginUserBean); if(!loginUserBean.isUser_login()) { return false + ""; } return true + ""; } UserService.java @Resource(name = "loginUserBean") @Lazy private UserVO loginUserBean; @Override public void doLogin(UserVO tmpLoginUserBean) { UserVO resultUserVO = userDAO.doLogin(tmpLoginUserBean); if(resultUserVO != null) { loginUserBean.setId(resultUserVO.getId()); loginUserBean.setUser_email(resultUserVO.getUser_email()); loginUserBean.setUser_login(true); } } 제발 도와주세요 ㅜㅜ
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
궁금한 부분이 있어 질문드립니다.
템플릿엔진으로 구현과 리액트로 구현했을때의 차이가 제 머리로 정리가 안되서 질문드립니다 ㅠㅠ 현재는 템플릿 엔진으로 구현하였기 때문에 res.redirect()를 사용하여 페이지를 이동시키는거지만, 만약 리액트를 사용하여 view를 구현하였다면 usehistory로 처리하는게 맞을까요? 서버에서 리다이랙트 해주는것과 클라이언트에서 리다이랙트 해주는 부분이 헷갈립니다..
-
미해결PHP 7+ 프로그래밍
index에서 read more를 눌렀을때 글이 불려오질 않습니다.
Index.php에서 글을 불러왓는데 db에서 글을 불러올 때, limit 3으로 했을때는 글이 2개가 불러져 오는데 limit 1로 하고, read more 버튼을 눌렀을때는 글이 불려오질 않네요ㅠㅠ 개발자 도구 열어서 확인해보니 아예 list가 불려오질 않더라구요.. 계속 저 에러만 나네요.. js도 똑같이 썼는데 왜 그런걸까요ㅠㅠ const $readmore = document.getElementById('readmore') if ($readmore instanceof HTMLElement) { let page = 0 $readmore.addEventListener('click', () => { fetch('/?page=' + ++page, { method: 'get' }).then(async response => { console.log('왜 안나오니'); console.log(await response.text()); const parser = new DOMParser(); const doc = parser.parseFromString(await response.text(), 'text/html'); const list = doc.querySelectorAll('.uk-container > .uk-list > li'); if (list.length > 0) { Array.from(list).forEach(item => { document.querySelector('.uk-container').appendChild(item); }); } }); }); } const doc = parser.parseFromString(await response.text(), 'text/html'); 이부분입니다.
-
미해결
R콘솔창이 영어로 나오는데 한글로 변경하는법
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. R콘솔창이 영어로 나옵니다.ㅜㅜ 교수님 콘솔창은 한글로 나오는데 어떻게 하면 한글로 변경할수 있나요???
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
Fpga 강의 관련질문입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 맛비님 hdl강의를 다 듣고 이제 fpga강의로 넘어가려 하는데 혹시 zybo z7 10보드로 학습이 가능할까요? 추후에 z7 20으로 넘어가 이중 구매방지하고자 10으로도 충분히 학습가능한지 여쭤봅니다..
-
미해결프론트엔드 개발자를 위한, 실전 웹 성능 최적화(feat. React) - Part. 1
최적화 확인 과정
안녕하세요. 너무 좋은 강의라 하루만에 완강한 것 같습니다. 한가지 궁금한점이 빌드 했을 때와 개발 서버에서 light house로 체크할 때의 차이점이 웹팩으로 인해 번들링 될 때 압축하는 과정에서 벌어지는 일들(공백없애기 등)때문에 차이가 난다고 하셨는데요. 그렇다면 실무에서도 웹팩으로 빌드를 시킨다음 라이브서버 익스텐션이라던지 lite-server와 같은 가볍게 띄울 수 있는 서버를 로컬에서 띄워서 최적화 부분을 테스트 해보면 되나요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
@Transactional Propagation 문제
안녕하세요. JPA로 개발을 하던 도중 궁금한 점이 있어서 질문 드립니다. A 메소드와 B 메소드가 있는데 A 메소드는 propagation이 디폴트인 REQUIRED 이고 B 메소드는 REQUIRES_NEW 입니다. A 메소드에서 B 메소드를 호출하면 INSERT 가 한번 호출되야 하는데 두 번 호출되고, 값도 두 개가 들어가게 됩니다. 둘 다 디폴트인 REQUIRED로 바꾸면 정상 작동 하구요. 혹시 이 부분은 Isolation과 관계가 있는 문제인가요? 아니면 commit이 두번 일어나서 그런가요?
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
수업질문
mvc01 버전 수업부터 많이 어렵네요.. tpc자바 강의를 완벽하게 다시한번 듣고 와야하나요?
-
미해결Vue.js 시작하기 - Age of Vue.js
vue에서 공통 css 관리
안녕하세요 기초 강의 완강하고 실제 프로젝트에 투입하려고 하는데 공통 css 파일은 컴포넌트 단위로 관리하는 vue에서 권장하지 않는 방식일까요? 유지보수 측면에서 각 컴포넌트에서도 재사용성이 높은 스타일은 하나의 파일에서 한번에 관리하고 싶은데 기초강의에서나 기존 다른 프로젝트 파일을 열어보아도 그렇게 관리가 되어 있지 않은 거 같아 문의드립니다. 혹시 공통 css 파일로 관리하는 방법이 따로 있거나 다른 강의에서 다루고 있을까요? 답변 부탁드립니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
9분 30초 쯤에 나오는 내용 질문입니다.
자바 기본도 배웠고, 김영한님 커리큘럼 대로 밑에 강의들도 다 들었지만 잘 모르는 자바 코드가 나와서 여쭤봅니다. 물론 구글링도 해봤지만 잘 찾지 못해서 질문드립니다. (질문) getWriter()와 Write()의 차이에 대해 알려주세요. 강의 중에는 body 부분에 들어가는 내용을 바로 주입하는 거라고 하셨는데, 그 메소드가 getWriter()인지, Write()인지 잘 모르겠습니다.
-
미해결[따라하면 취업되는 게임기획]MORPG 게임밸런스 기획
13페이지의 3차 방정식 공식과 14페이지에 3차방정식 공식이 다릅니다
13페이지의 3차 방정식 공식과 14페이지에 3차방정식 공식이 다릅니다
-
미해결프론트엔드 개발자를 위한, 실전 웹 성능 최적화(feat. React) - Part. 1
번들파일 질문
안녕하세요. 레이지 로딩이 된 이후에 budle-analyzer상태에 대한 질문이 있습니다. 저희가 구현한 코드(src)가 레이지로딩에 의해서 분리가 된 것 같습니다. 근데 node_modules에 포함되어있던 image-gallery.js가 모달컴포넌트에서만 필요할 것 같은데 공통적으로 사용되는 budler파일에 저장이 된 이유가 있나요? cache에 의해서 어차피 한번만 들고오면 되기 때문에 공통으로 사용되는 bundler파일에 넣어진 것인지 궁금합니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
질문입니다..
안녕하세요 강사님 질문이있습니다. 1. 해당 강의 초반에서 시간이 초과될 수 있기 때문에 이중 for문을 사용하지 말라고 하셨는데 풀이에 이중for문이 사용되어 헷갈려서 질문드립니다,. 정확히 어떨 때, 어떤 형태의 이중for문을 사용하면 안되는건지 판단할 수 있는 방법이 있을까요? 지난번에 시간복잡도랑 연관지어 설명해주셨었는데 제가 코테 준비는 처음이라 시간복잡도가 뭔지 잘 몰라서.. 2. 그리고 혹시 이 강의에서는 알고리즘 기초 개념(시간복잡도, 자료구조, BFS 등등 들어본게 많아서요!)은 미리 숙지하고있어야 수강할 수 있나요? 따로 개념을 짚어주시지는 않고 수강생이 미리 알고있다는 전제하에 문제만 풀어주시는건지 궁금합니다
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
유니티에서 메시지가 출력되지 않습니
아래 사진과 같이 출력이 되어야하는데, 안녕하세요 라는 문구가 출력되지 않습니다. 서버 콘솔 프로그램에는 문제가 없을 것을 확인했습니다. - 제가 만든 서버 프로그램과 선생님이 만드신 유니티 프로그램과 연동했더니 안녕하세요가 출력되었기 때문입니다. 그러면 제 유니티 프로젝트 문제로 보이는데, 왜 출력되지 않는지 확인이 어렵습니다 - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결초보를 위한 도커 안내서
커맨드 작성 후 에러가 납니다.
```` docker run --rm \ -v $(pwd)/hello.php:/app/hello.php \ php /app/hello.php \ php:7 ```` 해당 커맨드 작성 후 다음과 같은 에러가 납니다. chmod -R 777 /app/hello.php'를 해보았는데도 문제가 해결되지 않습니다.
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
메서드 질문!
request.setCharacterEncoding("utf-8"; setCharacterEncoding 메서드가 한글로 깨지지않게 잘보여주라는 메서드인거죠? 중요한 메서드 한 열개정도 알려주세요 다 외워버리게요!!
-
미해결Vue.js 시작하기 - Age of Vue.js
컴포넌트 "하이프(-)" 사용시 오류가 발생되요
<template> <visual-component/> </template> <script> import visual-component from './views/main/visual-component.vue'; export default { components: { visual-component } } </script> <style> </style> 위 내용처럼 작성했는데, 아래 처럼 에러가 발생됩니다. import visual-component from './views/main/visual-component.vue'; | ^ 7 | 8 | export default { 9 | components: { at parser.next (<anonymous>) 카멜표기법 "visualComponet"로 변경하면 문제는 없니는 해요 혹시 해결 방법이 있을까요?? https://github.com/me2designer/portfolio/blob/cc4453f4abd498bcafff477a20d0075ea3a76133/src/main.vue
-
미해결ISMS-P 인증심사원 자격검정 기본/실무 과정 시리즈 01 - T1. 인증제도, 인증기준1
강의자료 업데이트 예정.
언제 업데이트 되는 건가요?
-
미해결프론트엔드 개발자를 위한, 실전 웹 성능 최적화(feat. React) - Part. 1
paint 단계 질문
안녕하세요. paint단계에 대해 질문이 있습니다.paint단계에서는 layout단계에서 크기와 위치가 계산된 것들을 영역별로 쪼개서 레이아웃을 만드는 것으로 알고 있는데 강의에서처럼 색을 칠하고 레이아웃도 만든다고 생각을 하면 될까요?
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
뒤로가기 제어하는 방법
안녕하세요. 본강의와 상관없는 글을 올리게 되서 죄송합니다,아직 실무편은 목차만보고중급까지 Vue를 수강하고있는 초보 개발자 입니다. 현재 Vue로 앱웹을 만들고 있는데, 뒤로가기 버튼을 제어하는데 애를 먹고 있어도움을 얻고자 문의글 적습니다ㅠㅠ 현 페이지에서 Url변경없이 FullPopup창을 띄우는 과정에서 뒤로가기 버튼 클릭시 ㅠㅠ modal이 닫히는 형태를 구현하려고 하는데 어떻게 하는게 좋을까요 <div v-if="isOpenModal"> <component :is="modalGbn" v-bind:selectmodal="modalObj" v-on:popupdata="modalData"> <div class="modal-header" slot="header"> <h3>{{ modalTitle }}</h3> </div> <p slot="body" v-html="modalContent"></p> <button slot="moveBtn1" @click="modalData" class="btn modal-default-button">확인</button> </component></div> 오픈하는 모달창이 복수개라 위와같이 구현했는데 뒤로가기버튼으로 모달만 닫고싶습니다ㅠㅠ