클래스로딩을 진행할 때 먼저 자식 클래스로더가 찾아보고 찾지 못하면 부모에게 위임한다고 '자바 성능 최적화' 라는 책에서 배웠고 chat GPT한테 물어봤을 때도 그렇다고 합니다. 하지만 강의의 08분02초부터 개념을 설명해주실 때 '제일 먼저 부모 클래스로더에게 찾아달라고 한다.' 라고 설명해주시는데 잘못된 개념이 아닌가하여 조심스럽게 질문 남겨봅니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] C:\Users\권순형\work_spring\hello-spring\build\libs>java -jar hello-spring-0.0.1-SNAPSHOT.jar . ____ _ /\\ / ___'_ __ ( _)_ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.0.5) 2023-03-28T22:37:12.803+09:00 INFO 16492 --- [ main] h.hellospring.HelloSpringApplication : Starting HelloSpringApplication v0.0.1-SNAPSHOT using Java 19.0.2 with PID 16492 (C:\Users\沅뚯닚??work_spring\hello-spring\build\libs\hello-spring-0.0.1-SNAPSHOT.jar started by 沅뚯닚??in C:\Users\沅뚯닚??work_spring\hello-spring\build\libs) ibs) 2023-03-28T22:37:12.807+09:00 INFO 16492 --- [ main] h.hellospring.HelloSpringApplication : No active profile set, falling back to 1 default profile: "default" 2023-03-28T22:37:13.668+09:00 INFO 16492 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8081 (http) 2023-03-28T22:37:13.678+09:00 INFO 16492 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2023-03-28T22:37:13.678+09:00 INFO 16492 --- [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.7] 2023-03-28T22:37:13.777+09:00 INFO 16492 --- [ main] o.a.c.c.C.[Tomcat].[ localhost ].[/] : Initializing Spring embedded WebApplicationContext 2023-03-28T22:37:13.779+09:00 INFO 16492 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 920 ms 2023-03-28T22:37:14.088+09:00 INFO 16492 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8081 (http) with context path '' 2023-03-28T22:37:14.103+09:00 INFO 16492 --- [ main] h.hellospring.HelloSpringApplication : Started HelloSpringApplication in 1.632 seconds (process running for 2.006) cmd창에서 이렇게 잘 뜬 것 같은데 localhost 치고 들어가면 안되네요.. 인텔리J에서는 잘 작동합니다..
안녕하세요. 강의 잘 듣고 있습니다. 머클트리 해시를 사용해서 굳이 해시를 구하는 이유가 뭘까요? 거래별로 해시를 구하고 전제 거래들의 해시를 모두 합해서 하나의 해시로 만들어서 해더에 넣으면 계산양도 많지 않고 좋을 것 같은데... 굳이 트리 형식의 해시를 반복해서 하는 이유가 있을까요? 해시 계산 횟수가 증가하는데 이렇게 한 이유가 분명히 있을것 같아서요.. 보안상이라고 이해해보려고 했는데.. 거래별로 해시를 구하고.. 그 개별 해시들을 합해서 해시 한번만 구해도 될것같아서요.. 아니면 모든 거래내역을 한번에 넣고 해시를 구해도되죠. 감사합니다. :)
array<int, 5> my_arr = {1,2,3,4,5}; 선언에서 my_arr의 빨간줄이 그어지고 불완전한 형식은 사용할 수 없습니다.(error code : E0070) my_arr은 정의되지 않은 class std::array<int, 5>를 사용합니다. 에러가 뜨는데 이유가 무엇일까요....
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 프로토타입 빈은, 스프링 컨테이너가 DI까지 완료 후에 클라이언트에게 반환되며 이후의 관리주체는 클라이언트가 한다고 이해했습니다. => 이게 이해는 가는데.... 아래의 의문점이 해결이 안 되서 질문 드립니다. 1) client가 프로토타입 빈을 관리한다면, server의 memory에는 프로토타입 빈 객체 정보가 남아있지 않는 건지 궁금합니다. 1) -1 만약에 server의 memory에 프로토타입 빈 정보가 남아있다면, 클라이언트가 어떤 식으로 관리를 하는 건지 문의드립니다. (서버에 정보가 남아있으니, 클라이언트가 관리를 하게 되면 서버와의 통신비용?이 클라이언트 빈에 비해 증가할 거 같다는 생각이 듭니다. 제가 생각한 것이 맞는지 문의드립니다) 1)-2 만약에 클라이언트가 프로토타입 빈을 종료시키지 않는다면, server의 메모리에 프로토타입 빈 정보가 소멸되지 않고 계속 존재해야 하는 건지 문의드립니다. => 이로 인해 memory 이슈? 가 생길 거 같다는 생각도 드는데, 혹시 제가 생각하는 것이 맞는지 문의드립니다! 1)-3 혹시나 실무적으로 쓰이는 예시를 정말 사소하게라도 1가지 알고 싶습니다. 언뜻 앞선 질문들을 보니, 실무에서 잘 쓰이지 않는다고는 파악했지만 이게 내용 자체가 이론적이라고 많이 느껴져서.... 문의드립니다!
질문 1. enum categoryEnum { H = 'H', K = 'K', S = 'S', } const category: categoryEnum = categoryEnum.S; // 웹 앱 // ---기준선 // 서버 function cate(category: any) { console.log(category); if (category === 'H') { console.log('5% 할인'); } else if (category === 'K') { console.log('10% 할인'); } else if (category === 'S') { console.log('80% 할인'); } else { console.log('서버 멈춤'); } } cate(category); 코드 중간에 // 웹 앱 // ---기준선 // 서버 이렇게 써주신 건 기준선 위로는 프론트엔드 쪽 코드고, 기준선 아래는 서버 쪽 코드라고 예를 들어주신 거라고 이해하면 될까요? 질문 2. 그리고 강의 중에는 리터럴 타입을 const sex: 'MALE' | 'FEMALE' | 'ETC' = 'MALE'; 이렇게 예를 들어 주셨는데 깃 저장소 보니까 type Hi = 'MALE' | 'FEMALE' | 'ETC'; const sex: Hi = 'MALE'; 이렇게 되어있더라고요 두 방법 모두 사용 가능한 건가요? -> 이 질문은 뒤 부분 강의 보고 이해했습니다. 질문 3. function sendError(): never { throw { errorCode: 500, message: 'internal server error' }; } const result = sendError(); console.log('result :', result); 에러 처리할 때 never를 써주는 거랑 void를 써주는 거랑 결과는 똑같은데 무슨 차이가 있는 건지 이해가 잘 안 갑니다
https://drive.google.com/file/d/1OKpCQpwYWvWjppEIcvzWpSZKy09GAivy/view?usp=sharing 위에는 구글 압축 파일입니다. 다음은 에러 내용입니다. Caused by: org.attoparser.ParseException: Exception evaluating SpringEL expression: "item.orderItems[0]. item.name " (template: "order/orderList" - line 46, col 21) Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1025E: The collection has '0' elements, index '0' is invalid 야생형 코스로 들으려고 하다보니 에러난 부분을 고치기가 어렵고 다른 분들도 같은 질문을 많이 하셨어서, 질문들도 다 확인해보고 저의 코드에서도 해당 부분들을 유심히 보았으나 에러를 잡지 못해서 질문드렸습니다. 위의 에러코드 내용을 미루어보아 orderItems의 값이 null이어서 화면에 나오지 않는다고 생각하여서 그 부분을 확인해보았는데, null로 출력되는 것은 확인하였습니다. html코드의 문제인가 싶어 코드도 계속 확인해보고, 선생님께서 제공해주신 코드파일에 있는 html을 그대로 복사해서 실행해보았는데도 수정이 되지 않아서 질문드렸습니다. 감사합니다. Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Tue Mar 28 19:44:33 KST 2023 There was an unexpected error (type=Internal Server Error, status=500). An error happened during template parsing (template: "class path resource [templates/order/orderList.html]") org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/order/orderList.html]") at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse( AbstractMarkupTemplateParser.java:241 ) at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parseStandalone( AbstractMarkupTemplateParser.java:100 ) at org.thymeleaf.engine.TemplateManager.parseAndProcess( TemplateManager.java:666 ) at org.thymeleaf.TemplateEngine.process( TemplateEngine.java:1103 ) at org.thymeleaf.TemplateEngine.process( TemplateEngine.java:1077 ) at org.thymeleaf.spring6.view.ThymeleafView.renderFragment( ThymeleafView.java:372 ) at org.thymeleaf.spring6.view.ThymeleafView.render( ThymeleafView.java:192 ) at org.springframework.web.servlet.DispatcherServlet.render( DispatcherServlet.java:1415 ) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult( DispatcherServlet.java:1159 ) at org.springframework.web.servlet.DispatcherServlet.doDispatch( DispatcherServlet.java:1098 ) at org.springframework.web.servlet.DispatcherServlet.doService( DispatcherServlet.java:974 ) at org.springframework.web.servlet.FrameworkServlet.processRequest( FrameworkServlet.java:1011 ) at org.springframework.web.servlet.FrameworkServlet.doGet( FrameworkServlet.java:903 ) at jakarta.servlet.http.HttpServlet.service( HttpServlet.java:537 ) at org.springframework.web.servlet.FrameworkServlet.service( FrameworkServlet.java:885 ) at jakarta.servlet.http.HttpServlet.service( HttpServlet.java:631 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:205 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:149 ) at org.apache.tomcat.websocket.server.WsFilter.doFilter( WsFilter.java:53 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:174 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:149 ) at org.springframework.web.filter.RequestContextFilter.doFilterInternal( RequestContextFilter.java:100 ) at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:116 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:174 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:149 ) at org.springframework.web.filter.FormContentFilter.doFilterInternal( FormContentFilter.java:93 ) at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:116 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:174 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:149 ) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal( CharacterEncodingFilter.java:201 ) at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:116 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:174 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:149 ) at org.apache.catalina.core.StandardWrapperValve.invoke( StandardWrapperValve.java:166 ) at org.apache.catalina.core.StandardContextValve.invoke( StandardContextValve.java:90 ) at org.apache.catalina.authenticator.AuthenticatorBase.invoke( AuthenticatorBase.java:493 ) at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:115 ) at org.apache.catalina.valves.ErrorReportValve.invoke( ErrorReportValve.java:93 ) at org.apache.catalina.core.StandardEngineValve.invoke( StandardEngineValve.java:74 ) at org.apache.catalina.connector.CoyoteAdapter.service( CoyoteAdapter.java:341 ) at org.apache.coyote.http11.Http11Processor.service( Http11Processor.java:390 ) at org.apache.coyote.AbstractProcessorLight.process( AbstractProcessorLight.java:63 ) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process( AbstractProtocol.java:894 ) at org.apache.tomcat.util.net .NioEndpoint$SocketProcessor.doRun( NioEndpoint.java:1741 ) at org.apache.tomcat.util.net.SocketProcessorBase.run ( SocketProcessorBase.java:52 ) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1191 ) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:659 ) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( TaskThread.java:61 ) at java.base/java.lang.Thread.run( Thread.java:833 ) Caused by: org.attoparser.ParseException: Exception evaluating SpringEL expression: "item.orderItems[0]. item.name " (template: "order/orderList" - line 46, col 21) at org.attoparser.MarkupParser.parseDocument( MarkupParser.java:393 ) at org.attoparser.MarkupParser.parse( MarkupParser.java:257 ) at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse( AbstractMarkupTemplateParser.java:230 ) ... 48 more Caused by: org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "item.orderItems[0]. item.name " (template: "order/orderList" - line 46, col 21) at org.thymeleaf.spring6.expression.SPELVariableExpressionEvaluator.evaluate( SPELVariableExpressionEvaluator.java:292 ) at org.thymeleaf.standard.expression.VariableExpression.executeVariableExpression( VariableExpression.java:166 ) at org.thymeleaf.standard.expression.SimpleExpression.executeSimple( SimpleExpression.java:66 ) at org.thymeleaf.standard.expression.Expression.execute( Expression.java:109 ) at org.thymeleaf.standard.expression.Expression.execute( Expression.java:138 ) at org.thymeleaf.standard.processor.AbstractStandardExpressionAttributeTagProcessor.doProcess( AbstractStandardExpressionAttributeTagProcessor.java:144 ) at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess( AbstractAttributeTagProcessor.java:74 ) at org.thymeleaf.processor.element.AbstractElementTagProcessor.process( AbstractElementTagProcessor.java:95 ) at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process( ProcessorConfigurationUtils.java:633 ) at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement( ProcessorTemplateHandler.java:1314 ) at org.thymeleaf.engine.OpenElementTag.beHandled( OpenElementTag.java:205 ) at org.thymeleaf.engine.Model.process( Model.java:282 ) at org.thymeleaf.engine.Model.process( Model.java:290 ) at org.thymeleaf.engine.IteratedGatheringModelProcessable.processIterationModel( IteratedGatheringModelProcessable.java:368 ) at org.thymeleaf.engine.IteratedGatheringModelProcessable.process( IteratedGatheringModelProcessable.java:222 ) at org.thymeleaf.engine.ProcessorTemplateHandler.handleCloseElement( ProcessorTemplateHandler.java:1640 ) at org.thymeleaf.engine.TemplateHandlerAdapterMarkupHandler.handleCloseElementEnd( TemplateHandlerAdapterMarkupHandler.java:388 ) at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler$InlineMarkupAdapterPreProcessorHandler.handleCloseElementEnd( InlinedOutputExpressionMarkupHandler.java:322 ) at org.thymeleaf.standard.inline.OutputExpressionInlinePreProcessorHandler.handleCloseElementEnd( OutputExpressionInlinePreProcessorHandler.java:220 ) at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler.handleCloseElementEnd( InlinedOutputExpressionMarkupHandler.java:164 ) at org.attoparser.HtmlElement.handleCloseElementEnd( HtmlElement.java:169 ) at org.attoparser.HtmlMarkupHandler.handleCloseElementEnd( HtmlMarkupHandler.java:412 ) at org.attoparser.MarkupEventProcessorHandler.handleCloseElementEnd( MarkupEventProcessorHandler.java:473 ) at org.attoparser.ParsingElementMarkupUtil.parseCloseElement( ParsingElementMarkupUtil.java:201 ) at org.attoparser.MarkupParser.parseBuffer( MarkupParser.java:725 ) at org.attoparser.MarkupParser.parseDocument( MarkupParser.java:301 ) ... 50 more Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1025E: The collection has '0' elements, index '0' is invalid at org.springframework.expression.spel.ast.Indexer$CollectionIndexingValueRef.growCollectionIfNecessary( Indexer.java:700 ) at org.springframework.expression.spel.ast.Indexer$CollectionIndexingValueRef.getValue( Indexer.java:664 ) at org.springframework.expression.spel.ast.Indexer.getValueInternal( Indexer.java:102 ) at org.springframework.expression.spel.ast.CompoundExpression.getValueRef( CompoundExpression.java:61 ) at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal( CompoundExpression.java:91 ) at org.springframework.expression.spel.ast.SpelNodeImpl.getValue( SpelNodeImpl.java:112 ) at org.springframework.expression.spel.standard.SpelExpression.getValue( SpelExpression.java:338 ) at org.thymeleaf.spring6.expression.SPELVariableExpressionEvaluator.evaluate( SPELVariableExpressionEvaluator.java:265 ) ... 75 more
memberRepository에 member를 저장하고 난 이후, 왜 ModelView mv 값을 생성할 때, save가 아닌, save-result가 들어가나요? ModelView mv = new ModelView("save-result"); viewResolver로 변환된 코드는 "/WEB-INF/views/save-result.jsp" 가 되는데 기존에 썼던 jsp인 WEB-INF/views/save.jsp를 사용하기 위해선 mv를 생성할때, ModelView mv = new ModelView("save"); 가 나와야 알맞은 코드 아닌가요?
맥북에서 터미널 실행 시 아래와 같이 오류가 나는데 어떻게 해야할까요?ㅠㅠ Python 3.11.2 (v3.11.2:878ead1ac1, Feb 7 2023, 10:02:41) [Clang 13.0.0 (clang-1300.0.29.30)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> /Users/yeonseo/Documents/YEONSEO/02. PY/Python basic/chapter10_01.py File "<stdin>", line 1 /Users/yeonseo/Documents/YEONSEO/02. PY/Python basic/chapter10_01.py ^ SyntaxError: invalid syntax >>> python chapter10_01.py File "<stdin>", line 1 python chapter10_01.py ^^^^^^^^^^^^ SyntaxError: invalid syntax >>> python chapter10_01.py File "<stdin>", line 1 python chapter10_01.py ^^^^^^^^^^^^ SyntaxError: invalid syntax >>>
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님, 강의 하시는 영상의 코드에는 go 함수에서 a[here] = ~a[here]; 이 한 줄만 있는데 교안 링크 코드에는 아래와 같이 두번 쓰였는데 a[here] = ~a[here]; go(here + 1); a[here] = ~a[here]; go(here + 1); 큰 차이가.. 없는 건가요??