묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
엑셀 날짜 서식
안녕하세요 강사님 강의 너무 유용하게 잘 듣고 있는 직장인입니다. 엑셀데이터 이해하기 > 데이터채우기 > 8분 50초 쯤 부분에 나오는 날짜데이터 관련해서 궁금한게 있어서요. 제가 직접 아래와 같이 입력해서 마우스 드래그 했더니 숫자는 바뀌는데 요일은 안바뀌더라구요. 이거는 표시형식에 "날짜"로 설정해놓으면 요일까지도 바뀌던데 "일반"으로 되어있는 상태에서는 요일 변경은 안되는 게 맞죠? 강의에서 바로 '날짜데이터' 라고 말씀하셨어서, 미리 표시형식을 날짜로 바꿔놓으셔서 드레그해도 요일까지 바뀌는거죠^^? 헷갈려서 여쭤봅니다 ~
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
react native가 갑자기 안돼네요
axios 연결하기 전만해도 잘 나오다가 axios 설치 한 후 부터 갑자기 react-native가 설치가 안됐다면 안돼네요 package.json에는 잘 있는데 프로그램을 껐다 켜도 이러네요..
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
JSP 양식 오류
안녕하세요. 인텔리제이 JSP양식 이 문제인지 JSP파일 작성후 자동입력 이 안되는 상황인데 어떻게 고쳐야 할까요??
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
get을 제외한 나머지 메소드들에서의 차이점이 정확히 무엇인가요?
안녕하세요 강의 재밌게 듣고 있습니다! 다름이아니라 제가 알기로는 클라이언트에서 서버에 url과 메소드로 요청을 보내면 서버에서 해당 url과 메소드에 대해 작성되어있는 명령으로 응답을 하는 것으로 알고 있는데 put, delete, patch들도 개발자가 따로 명령어 작성을 통해서 덮어쓰기나 업데이트를 구현 하는것 인가요? 아니면 이미 default로 만들어져있는지 궁금하고 만약 개발자가 따로 명령어 작성을 통해서 기능을 구현하는거면 왜 post다 할 수있는 내용을 구분 지어 놓았는지 궁금합니다!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Junit5 의 Assertions.fail 에 대해 질문이 있습니다.
@Testpublic void 상품주문_재고수량초과() throws Exception { //Given Member member = createMember(); Item item = createBook("시골 JPA", 10000, 10); //이름, 가격, 재고 int orderCount = 11; //재고보다 많은 수량 //When assertThrows(NotEnoughStockException.class, () -> { orderService.order(member.getId(), item.getId(), orderCount);}); //Then fail("재고 수량 부족 예외가 발생해야 한다.");} 안녕하십니까. 김영한님의 강의를 열심히 수강중인 학생입니다. Junit5에 대해 질문이 있어 글을 올립니다. 제가 Junit5를 배워보려고 강의 진행중 Junit4 대신 Junit5 를 써보았습니다. 그런데 Assertions.fail 때문에 위 코드가 자꾸 실패가 뜨더라고요. 제가 생각한 로직은 김영한님 강의에서 처럼 Assertions.assertThrows 안의 로직에서 예외를 던지면 fail까지 내려오지 않고 그대로 테스트가 성공으로 종료되며, 만약 예외를 던지지 않으면 fail까지 내려와 테스트 실패가 나오는 것이었습니다. 어떻게 코드를 수정하면 될까요? ------------------------------------------------------------------------------------------------------------------ 설명이 부족한 것 같아 추가로 남깁니다. 위 코드는 재고보다 많은 수량이 입력됐을때 예외를 제대로 내뱉는지 확인하기 위한 테스트입니다. 만약 예외를 제대로 뱉었다면 김영한님 강의에서처럼 fail() 까지 안넘어가고 assertThrows 에서 테스트가 종료되고 성공으로 반환되어야 했습니다. 그런데 위 코드에서는 코드 진행이 fail까지 내려가고 그대로 실패가 뜨더라고요. Service, repository와 같은 기타 다른 연관 코드들은 김영한님 코드와 동일하게 작성하였으며, fail을 주석처리하고 위 테스트를 돌렸을 경우 성공처리가 됩니다. 상기 목적을 달성하려면 위 코드를 어떻게 수정하면 될까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
컨버팅 관련 문의드립니다.
안녕하세요. 아래와 같은 변환 로직이 있는데 실무에서 코드를 어떻게 관리를 하는지 궁금합니다. Item item = new Item(); item.setItemName(form.getItemName()); item.setPrice(form.getPrice()); item.setQuantity(form.getQuantity()); ItemSaveForm, ItemUpdateForm 물론 객체가 다르긴하지만 중복코드 느낌이여서 별도로 관리하는 방법이 있는지 궁금합니다. 예를 들어서 필드가 추가되면 그냥 각각 추가를 하나요?
-
미해결웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩
강의 PT자료 제공은 안되나요?
안녕하세요. 강의 PT자료 제공은 안되나요? 감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
2:24 오타
HttpServletRequest response ->HttpServletResponse response두번째 파라미터 오타 맞지요?
-
미해결프론트엔드 개발환경의 이해와 실습 (webpack, babel, eslint..)
TypeError: Invalid value used in weak set
구글링해봐도 어떤문제인지 모르겠어서 질문드립니다. 오류내용, packge.json, webpack.config.js 소스 이미지 첨부합니다. 강의내용과 똑같이 하였는데 왜그런지 모르겠네요 webpack4 입니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
상품등록화면, th:action 관련 500오류
http://localhost:8080/basic/items 에서 상품등록버튼을 클릭할때 addForm.html 안에있는 th:action에 따라 오류가 나고 안나고 하는데 무슨원리로 이렇게 되는건지 모르겠습니다 ㅠㅠ addForm.html 부분에서 <h4 class="mb-3">상품 입력</h4> <form action="item.html" th:action="/basic/items/add" method="post"> 이 부분에서 th:action 뒤의부분을 생략을 안하고 실행하게 되었을때 http://localhost:8080/basic/items/add 로 이동하고 500오류가 뜹니다. 그런데 th:action 뒤의부분을 생략하고 실행하면 정상적으로 상품등록화면이 잘 뜹니다. 이때 오류코드는 org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: "/basic/items/add" (template: "basic/addForm" - line 21, col 30) at org.thymeleaf.standard.expression.StandardExpressionParser.parseExpression(StandardExpressionParser.java:131) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.StandardExpressionParser.parseExpression(StandardExpressionParser.java:62) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.StandardExpressionParser.parseExpression(StandardExpressionParser.java:44) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.EngineEventUtils.parseAttributeExpression(EngineEventUtils.java:220) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.EngineEventUtils.computeAttributeExpression(EngineEventUtils.java:207) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.processor.AbstractStandardExpressionAttributeTagProcessor.doProcess(AbstractStandardExpressionAttributeTagProcessor.java:125) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1314) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.TemplateModel.process(TemplateModel.java:136) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:661) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:366) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.render(ThymeleafView.java:190) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1396) ~[spring-webmvc-5.3.8.jar:5.3.8] at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1141) ~[spring-webmvc-5.3.8.jar:5.3.8] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1080) ~[spring-webmvc-5.3.8.jar:5.3.8] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.8.jar:5.3.8] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.8.jar:5.3.8] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.8.jar:5.3.8] at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.48.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.8.jar:5.3.8] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.48.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.48.jar:9.0.48] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.8.jar:5.3.8] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar:5.3.8] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.8.jar:5.3.8] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar:5.3.8] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.8.jar:5.3.8] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar:5.3.8] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] 2021-07-11 12:27:30.430 ERROR 18036 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: "/basic/items/add" (template: "basic/addForm" - line 21, col 30)] with root cause org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: "/basic/items/add" (template: "basic/addForm" - line 21, col 30) at org.thymeleaf.standard.expression.StandardExpressionParser.parseExpression(StandardExpressionParser.java:131) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.StandardExpressionParser.parseExpression(StandardExpressionParser.java:62) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.expression.StandardExpressionParser.parseExpression(StandardExpressionParser.java:44) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.EngineEventUtils.parseAttributeExpression(EngineEventUtils.java:220) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.EngineEventUtils.computeAttributeExpression(EngineEventUtils.java:207) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.standard.processor.AbstractStandardExpressionAttributeTagProcessor.doProcess(AbstractStandardExpressionAttributeTagProcessor.java:125) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1314) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.TemplateModel.process(TemplateModel.java:136) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:661) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072) ~[thymeleaf-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:366) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.render(ThymeleafView.java:190) ~[thymeleaf-spring5-3.0.12.RELEASE.jar:3.0.12.RELEASE] at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1396) ~[spring-webmvc-5.3.8.jar:5.3.8] at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1141) ~[spring-webmvc-5.3.8.jar:5.3.8] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1080) ~[spring-webmvc-5.3.8.jar:5.3.8] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.8.jar:5.3.8] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.8.jar:5.3.8] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.8.jar:5.3.8] at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.48.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.8.jar:5.3.8] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.48.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.48.jar:9.0.48] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.8.jar:5.3.8] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar:5.3.8] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.8.jar:5.3.8] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar:5.3.8] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.8.jar:5.3.8] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar:5.3.8] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.48.jar:9.0.48] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] 입니다.
-
미해결15일간의 빅데이터 파일럿 프로젝트
클라우데라 매니저가 한참을 기다려도 접속이 안됩니다..
클라우데라 매니저가 한참을 기다려도 접속이 안됩니다.. 똑같이 설정을 했는데 무엇이 문제일까요..ㅠㅠ.. 아래와 같이 저 창만 나오고 클라우데라 매니저로 넘어가지 않습니다.. 서버01,02 둘 다 virtualbox에서 실행시켜놓았고, hosts파일도 변경했습니다...
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
컨트롤러 호출&실행과 request 스코프 질문 드립니다!!!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강의 잘 듣고 있습니다~! 지금까지 컨트롤러 v1에서는 컨트롤러 내부에서 모델(HttpServletRequest) request에 데이터를 넣고 이 request를 바로 JSP 뷰로 전달&포워드했다면, 컨트롤러 v2에서 각 컨트롤러는 request에 데이터를 넣고 렌더링할 JSP 뷰의 경로만을 리턴하는데요. 리턴되고 다시 원래 코드 흐름으로 돌아왔을 때 어떻게 이 request에 데이터가 그대로 보관되어 JSP로 전달&포워드되는 것인지 궁금합니다. 예를 들어서 메인함수에서 변수 a가 있다고 합시다. 그리고 어떤 연산 처리를 하는 메서드를 호출해서 a를 매개변수로넘깁니다. 메서드가 호출&실행되고 난 후엗도 메인함수의 변수 a는 변함이 없습니다. 이 맥락에서 FrontControllerServletV2 클래스의 service 함수에서 HttpServletRequest를 각 컨트롤러에 매개변수로 넘겨주고, 각 컨트롤러 내부에서 전달 받은 request에 값을 넣어주어도 해당 컨트롤러 실행이 종료되고 난 후 service 함수 내에서 어떻게 request에 데이터가 그대로 보존되고 JSP로 전달되는지 궁금합니다! 감사합니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
세션쿠키
안녕하세요. local 로그인을 진행하면 응답의 헤더에 Set-cookie : connect.sid = ~ (그림1) 는 있습니다. 근데 storage에는 세션쿠키가 없어서 원인을 못 찾는 중입니다.(그림2) 문제 해결에 필요하다고 생각되는 부분을 적어보자면, 아래와 같습니다. app.js const express = require("express")const cors = require("cors")const session = require('express-session');const cookieParser = require('cookie-parser');const passport = require('passport');const dotenv = require('dotenv');const morgan = require('morgan');const path = require('path');const passportConfig =require("./passport")dotenv.config()const app = express()const db = require("./models")const userRouter = require("./routes/user")passportConfig();db.sequelize.sync().then(()=>{ console.log("db 연결 성공")}).catch(console.error)app.use(morgan('dev'))app.use(cors({ origin : "*"}))// app.use('/', express.static(path.join(__dirname, 'uploads')));app.use(express.json());app.use(express.urlencoded({ extended: true }));app.use(cookieParser("siwon"));app.use(session({ saveUninitialized: false, resave: false, secret: "siwon",}));app.use(passport.initialize());app.use(passport.session());... passport/local const passport = require('passport');const { Strategy: LocalStrategy } = require('passport-local');const bcrypt = require('bcrypt');const { User } = require('../models');module.exports = () => { passport.use(new LocalStrategy({ usernameField: 'email', //req.body.email passwordField: 'password', //req.body.password }, async (email, password, done) => { try { const user = await User.findOne({ where: { email } }); if (!user) { return done(null, false, { reason: '존재하지 않는 이메일입니다 🥲' }); } const result = await bcrypt.compare(password, user.password); if (result) { return done(null, user); } return done(null, false, { reason: '비밀번호가 틀렸습니다 🥲' }); } catch (error) { console.error(error); return done(error); } }));}; passport/index const passport = require("passport");const local = require("./local");const { User } = require("../models");module.exports = () => { passport.serializeUser((user, done) => { console.log("serializeUser 실행") done(null, user.id); }); passport.deserializeUser(async (id, done) => { console.log("deserializeUser 실행") try { const user = await User.findOne({ where: { id } }); done(null, user); } catch (error) { console.error(error); done(error); } }); local();}; 로그인을 진행하면 serializeUser 실행은 콘솔에 찍히는데 deserializeUser는 콘솔에 찍히지 않습니다. req.user도 생성이 안되는 것을 확인하였습니다. app.js에서 세션설정을 잘못한 거 같아 계속 시도해봤지만 해결되지 않아(storage에 세션쿠키가 없는 것) 질문드립니다 ㅠㅠ ---------------------------------------------------------------------------------- (그림1, POST+prefligth 200) (그림2)
-
미해결웹 게임을 만들며 배우는 React
github으로 clone 해온 후 npx webpack 오류
어제 다른 컴퓨터로 React 공부를 하다가 node_modules를 제외하고 commit & push 한 다음에 오늘 다른 컴퓨터에서 git clone을 통해 코드를 그대로 불러오고 npm i 를 통해 node_modules를 다시 받아주었습니다. 그런데 어제는 npx webpack 명령어가 정상적으로 잘 작동했는데 오늘 다른 컴퓨터에서는 npx webpack 명령어를 입력하면 계속해서 에러가 발생합니다. 혹시 이유를 알 수 있을까요???
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
질문이 있어서 올립니다
강사님의 코드를 보면서 짜는데 네트워크 부분에서 계속 요청이 일어나 Product state가 계속 바뀝니다 혹시 어느 부분이 문제일까요?
-
미해결
float는 4바이트? 8바이트?
float가 4바이트지만 오류발생? 등을 방지하기 위해 8바이트에 넣는다고 하셨는데, 이게 float도 8바이트에 넣는 "경향"이 있는 건가요 아니면 8바이트로 바꾸도록 처음부터 설계되어있는 건가요?
-
미해결리눅스 시스템 프로그래밍 - 이론과 실습
api 매뉴얼 단축키 문의
이전 영상에서는 api 매뉴얼 보실때 명령모드에서 !man ftell 이와같이 보셨는데 지금 영상에서는 그렇게 사용하지 않고 다른 단축키를 사용하시는것 같은데요, 혹시 어떻게 하시는건지 문의드립니다. 저도 코딩하다가 사용하려는 함수의 파라미터나 리턴 자료형이 어떤것이었는지 찾아볼때가 많거든요..!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
38:45 에서 em.close()를 해도 Lazy 예외가 발생하지 않습니다.
em.detach() 나 em.clear()를 해줄시, 프록시 객체가 영속성 컨텍스트에서 지워져서 이후, 프록시 객체의 메서드를 호출했을때 Lazy 예외가 발생합니다. 하지만 수업에서 하는 것처럼 em.close()를 해도 예외가 발생하지 않고, 실제 객체가 영속성 컨텍스트에 올라와 동작합니다.
-
미해결실전 데이터 사이언스 Part2. 데이터 전처리
표준 스케일링관련 문의
표준 스케일링에 대해 설명해주시는 과정에서 표준 스케일링이 곧 정규분포로의 변환을 의미하는건 아니라는 말씀을 주셨는데,통계적 지식이 충분하지 않다보니 그 부분이 잘 이해가 되지 않아서 문의드립니다. 표준스케일링 작업을 거칠 경우, 평균이 0, 분산이 1인 표준정규분포와 동일한 조건의 분포로 변환되게 되는데 정규분포로 변환된다는 뜻이 아니라는 거는 예외의 경우가 있거나, 특별히 유의해야하는 부분이 있어서 일까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
C++강의 시리즈들이 C#강의들을 선수 학습 할 필요는 없는 강의 인거죠 ?
유니티말고 이쪽강의만 수강하고 싶은데 C#강의에서 언급한것들을 공부 하고 왔다고 가정하고 진행하는 강의는 아니죠 ?? 현재 제 수준은 시중에 파는 C언어 입문, C++ 입문책들을 한바퀴씩은 돌려보고, 언리얼을 아주 조금 만져본 상황입니다.