묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결프로그래밍, 데이터 과학을 위한 파이썬 입문
"Hash key is already used."으로 인한 과제 제출 실패 문의
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요? 8장 과제를 제출 시도하였는데 아래와 같이 과제 제출이 되지 않습니다. hask key는 여러차례 맞는 것을 확인하였습니다. ∙ Session token prefix: b71ecd036b ∙ In the legacy mode, all cases will run serially! ✔ [0] Session 0 is ready. Uploading files: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████| 16.8k/16.8k [00:00<00:00, 362kbytes/s, file=morsecode.py] ✔ [0] Uploading done. python-kernel: skipping build phase due to missing "setup.py" file ✔ Build finished. (exit code = 0) len is not expected Generating result sheet... ------------------------------------------------------------------- Test Case | Passed? | Feedback ------------------------------------------------------------------- test_decoding_character | PASSED | Good Job test_decoding_sentence | PASSED | Good Job test_encoding_character | PASSED | Good Job test_encoding_sentence | PASSED | Good Job test_get_cleaned_english_sentence | PASSED | Good Job test_is_help_command | PASSED | Good Job test_is_validated_english_sentence | PASSED | Good Job test_is_validated_morse_code | PASSED | Good Job test_main | FAILED | Failed Reading source file... Transferring results to server... Transfer failed: hash key is already used.
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
!= 실행이 안됩니다ㅠㅠ
안녕하세요^^ 첨부한 사진과 같이 ("학문/교육이 아닌것만 가지고 오기위해) != 를 사용했는데 실행이 안되네요~ㅠㅠ 어떻게하면 아닌것만 가지고 올수 있을까요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
aws ssh 접속오류
제로초님 강의 듣고 웹,앱 서비스를 만들었습니다. aws 는 프리티어를 사용중인데, 백앤드 서버가 다운됐습니다. 저번에 몇번 터졌을때는 pm2를 사용하여서 다시 복구가 되었는데, 이번엔 아예 복구조차 되지않습니다. 그리고 ssh로 백앤드 서버로 접속하려고 하면 줄바꿈은되는데 아무것도 뜨지않습니다. gony ~/Documents/MT master ssh -i "***.pem" ubuntu@ec2-**-***-***-***.ap-northeast-2.compute.amazonaws.com 이게 백앤드서버로 접속하는 코드인데,입력하면 줄바꿈만되고 아무일도 일어나지않습니다. 하지만 프론트 서버로는 접속이 잘됩니다. 혹시 해결방법이 있을까요? 프리티어 사용과 관련있는걸까요...
-
해결됨실전! Querydsl
QueryDSL 테스트 관련해 질문드립니다
안녕하세요 영한님! compileQueryDSL로 생성된 Qclass들은 github에 올리지 말라고 하셔서 그대로 적용해 사용 중입니다. 제가 Qclass를 사용하는 Test 코드를 작성하고 로컬에서는 Qclass가 프로젝트 내에 존재하니 문제 없이 실행되지만, CI / CD 연습을 위해 github push, pull request 기준으로 깃 레포에서 코드를 받아와 빌드를 하는데 Qclass가 없어서 test 코드가 터져 빌드가 실패합니다. 1. Qclass를 노출하지 않는 이런 경우에는 Test 코드 작성을 어떻게 해야할까요? 2. Test 코드에 @Profile 을 local이 아닌 것을 줘서 수행되지 않도록 하는 것이 최선일까요?
-
해결됨게임 프로그래머 취업 전략 가이드
클라이언트 프로그래머에게 요구하는 인공지능 기술 수준이 어느 정도인가요?
자기 관리 (연차의 무게)에서 10년 차인데 인공지능 코드를 못 짜서 잘린 사례를 언급 했는데요. 그 분이 인공지능 관련 업무자였나요? 일반적인 클라이언트 프로그래머는 어느 수준의 인공지능을 원하나요? 채용공고 보면 인공지능 분야 따로 뽑는 곳 있던데 클라이언트 프로그래머에게 시키더라도 간단한 것만 시키나요?
-
미해결15일간의 빅데이터 파일럿 프로젝트
꼭 centos6.10 버전을 사용하는데 이유가 있나요?
직접 환경구성을 해보고 싶은데, 꼭 centos 6 버전만 가능한가요?
-
미해결홍정모의 따라하며 배우는 C++
질문드립니다.
교수님께서 이터레이터에 대해 다루시지는 않았지만 그냥 한 번 간단하게 실험을 해봤는데요, 벡터의 capacity가 왜 3에서 6이 되었는지 모르겠습니다. 특정 위치에 특정 값을 지정했을 뿐인데 왜 그런 것인가요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
SEQUENCE전략 궁금한게 있습니다!
안녕하세요. 궁금한점이 SEQUNCE전략에서 @GeneratedValue(strategy = GenerationType.SEQUENCE)를 써서 하이버네이트가 제공하는 기본 시퀀스를 쓰고 그리고 테이블마다 시퀀스를 따로 관리하기위해 @SequenceGenerator를 쓰라고 하셨는데 궁금한점이 테이블마다 시퀀스를 따로 둬서 관리하는 이유가 무엇인지 궁금합니다. 항상 감사드립니다.
-
미해결비전공자를 위한 개발자 취업 올인원 가이드 [통합편]
개인적인 공부 방향성 선택에 대해 질문을 드리고 싶습니다.
안녕하세요! 정수님~ 정말 좋은 로드맵 강의 잘 듣고 있습니다. 저는 현재 31살의 늦은 나이로 고시 공부를 접고 새롭게 프론트 엔드 개발자로 취업을 꿈꾸고 있는 사람입니다. 다름이 아니라, 현재 나이와 여러 가지 조건 상 부트 캠프에 가는 것을 고민하고 있습니다. 계속 찾아보고 고민하다가, 2가지 부트 캠프 중의 하나로 가려고 결정 중인데, 제가 아직 개발 언어도 제대로 모르고 커리큘럼을 비교해서 보기도 어려운 부분이 있습니다. 그래서 염치불구하지만, 두 가지 부트 캠프 중 어떤 곳이 더 나아 보일 지 체크해 주실 수 있나 싶어 글을 적어 봅니다. 1. 항해99 https://hanghae99.spartacodingclub.kr/?utm_source=naver_bs_pc&utm_medium=paid&utm_campaign=%EC%98%A8%EB%9D%BC%EC%9D%B8_%EB%B8%8C%EB%9E%9C%EB%93%9C%ED%8F%AC%ED%95%A8_pc_cmp-a001-04-000000003157497&utm_content=%EC%8D%B8%EB%84%A4%EC%9D%BC3_grp-a001-04-000000018415738&utm_term=%ED%95%AD%ED%95%B499_nad-a001-04-000000134463324&NaPm=ct%3Dktgkm24w%7Cci%3D0A80001glNPv5Avf%5Fviz%7Ctr%3Dbrnd%7Chk%3Dbcad629fb1fa5a3143ad60cbbabcbe0fec21490d 이 항해 99의 경우 말 그대로 99일 빡세게 하는 커리큘럼입니다. 부트 캠프 수강 전에 스파르타 코딩클럽의 웹개발 과정을 간략히 수강 후 99일 간 팀으로 묶여서 계속 프로젝트를 하는 과정으로 보입니다. 이 커리 큘럽은 어떤 지 한 번 평가부탁드립니다. 99일이 다소 짧아도 보이고, 부실한 것은 아닌가 의구심이 들어서 그렇습니다.ㅜㅜ 2. 코드 스테이츠 https://help.codestates.com/hc/ko/articles/900003527486-%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4-%EC%97%94%EC%A7%80%EB%8B%88%EC%96%B4%EB%A7%81-%EC%BB%A4%EB%A6%AC%ED%81%98%EB%9F%BC 다음은 워낙 유명한 코드스테이츠입니다. 이 부트 캠프는 총 22주라서 다소 긴 편이긴한데, 커리큘럼의 체계가 항해와는 조금은 다른 듯 합니다. 그리고 비용은 항해에 비해서 거의 대략 2배 정도 차이가 납니다. 결론적으로 두 가지 선택지 중에 어떤 곳이 더 나을지 고민입니다. 현재 희망사항은 최소 내년 초에는 자체 서비스가 가능한 스타트업에서 커리어를 시작하고 싶습니다. 이후에는 더 공부와 발전을 통해 중견 이상의 기업으로 이직하고자 합니다. 이외에도 추가로 부트캠프를 더 추천해 주시거나 조언해 주실 부분 있으시다면 가감없이 해 주시면 좋겠습니다. 앗! 참고로 위의 사항을 현 게시판이 너무 공개적인 장소라서 언급을 못 해주실 것 같으시다면, 혹시 제 오픈채팅 https://open.kakao.com/o/sf0Ukqzd 혹은 메일주소 minsu910725@gmail.com 으로 답변을 주셔도 좋을 것 같습니다. 육아와 회사 업무로 바쁘시겠지만, 혹시 시간이 가능하시다면 후배 개발자 지망생에게 조언 한 마디 툭 던져 주신다면 정말 감사하겠습니다.
-
미해결15일간의 빅데이터 파일럿 프로젝트
안녕하세요 강의 너무 잘 듣고 있습니다!
안녕하세요 선생님 제가 이 강의를 듣게된 이유가 학교 프로젝트로 빅데이터 관련 프로젝트를 진행해야하기 때문입니다. 빅데이터의 'ㅂ' 자도 몰랐는데 강의를 들으면서 어느정도 개념이 생겨나는 것 같습니다. ㅎㅎ 너무 좋은 강의 감사드려요 들으면서 궁금증이 생겼는데요 지금 큰 단계가 수집 > 적재 > 탐색 > 분석 이 잖아요? 만약에 빅데이터에 관련된 자유주제로 프로젝트를 진행한다 하였을때 제가 이 모든 단계를 혼자서 구현해야할까요? 예를들어 분석만 하는 프로젝트를 진행을 한다하면 분석을 위해 지금까지 해온 수집 적재 탐색 작업을 다 이런식으로 구현을 해야하나요? 빅데이터 관련 자유주제로 프로젝트를 어떻게 진행해야할지 갈피를 못잡아서 이렇게 선생님께라도 조언을 구해봅니다. 추가로, 수집 과정에서 로그 시뮬레이터를 통해 로그 데이터를 얻어오는데 이 자바프로그램은 선생님께서 직접 만드신건가요? 아니면 이런 자료들을 어디서 받아올 수 있는지 궁금합니다. 질문의 내용이 참 두서도 없고 너무 초보적이라 당황스러우실텐데 이해해주시면 감사하겠습니다 ㅠㅠ
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
왜 @Enumerated 타입 디폴트값이 ORDINAL 일까요?
말씀대로 ORDINAL일 때 이점이 될 경우가 거의 없을거 같은데 왜 디폴트값이 이걸로 설정되있는지 궁금하네요 실무에서도 일일히 Enum 타입을 STRING으로 지정해야 하는게 은근히 불편할것 같은데 혹시 추후에 바뀔 가능성은 없을까요? ㅋㅋ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
http 요청을 보낼때마다 request, response 객체의 주소값이 변하지 않는 이유?
안녕하세요 강의 정말로 잘 듣고 있습니다! 정말 별거 아닌 질문일 수 있는데 궁금해서 질문 남겨봅니다. 서블릿에서 Request 객체와 Response 객체는 HTTP 요청이 들어올때마다 새로 생성한다고 했는데, 왜 요청을 줄때마다 같은 주소값이 찍히는건가요? 한번 요청 - 응답 하고나면 끝이고 다시 페이지 새로고침을 하면 새로운 HTTP 요청이 가서 새로운 response, request 객체가 생성되야 하는게 아닌지 궁금합니다!! 그냥 WAS에 구현체가 싱글톤으로 있어서 요청이 올때마다 덮어써서 보내주는 방식?? 그런건가요? 스프링, HTTP 지식이 부족해서 나온 너무 이상한 질문이었을지도 모르겠네요 ㅠㅠㅠ..
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
An error happened during template parsing (template: "class path resource [templates/order/orderList.html]") 에러 문의
안녕하세요. 상품 주문 시 에러 관련해서 문의드립니다. 시간되실 때 확인 한번 부탁드립니다.. Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Sun Sep 12 09:02:21 KST 2021 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:1098) at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072) at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:362) at org.thymeleaf.spring5.view.ThymeleafView.render(ThymeleafView.java:189) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1394) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1139) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1078) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:961) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) at javax.servlet.http.HttpServlet.service(HttpServlet.java:626) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: org.attoparser.ParseException: Exception evaluating SpringEL expression: "item.member.name" (template: "order/orderList" - line 43, 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.member.name" (template: "order/orderList" - line 43, col 21) at org.thymeleaf.spring5.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:290) 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:367) at org.thymeleaf.engine.IteratedGatheringModelProcessable.process(IteratedGatheringModelProcessable.java:221) 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: EL1021E: A problem occurred whilst attempting to access the property 'name': 'Unable to access property 'name' through getter method' at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:209) at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:104) at org.springframework.expression.spel.ast.PropertyOrFieldReference.access$000(PropertyOrFieldReference.java:51) at org.springframework.expression.spel.ast.PropertyOrFieldReference$AccessorLValue.getValue(PropertyOrFieldReference.java:406) at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:92) at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:112) at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:337) at org.thymeleaf.spring5.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:263) ... 75 more Caused by: org.springframework.expression.AccessException: Unable to access property 'name' through getter method at org.springframework.expression.spel.support.ReflectivePropertyAccessor$OptimalPropertyAccessor.read(ReflectivePropertyAccessor.java:708) at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:204) ... 82 more Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.springframework.expression.spel.support.ReflectivePropertyAccessor$OptimalPropertyAccessor.read(ReflectivePropertyAccessor.java:704) ... 83 more Caused by: org.hibernate.LazyInitializationException: could not initialize proxy [jpabook.jpashop.domain.Member#1] - no Session at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:170) at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:310) at org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor.intercept(ByteBuddyInterceptor.java:45) at org.hibernate.proxy.ProxyConfiguration$InterceptorDispatcher.intercept(ProxyConfiguration.java:95) at jpabook.jpashop.domain.Member$HibernateProxy$Dlx421be.getName(Unknown Source) ... 88 more <td th:text="${item.member.name}"></td><td th:text="${item.orderItems[0].item.name}"></td><td th:text="${item.orderItems[0].orderPrice}"></td><td th:text="${item.orderItems[0].count}"></td> 이 쪽을 전부 못가져오고 있습니다. DB에는 값이 들어가있습니다. @Controller@RequiredArgsConstructorpublic class OrderController { @PostMapping("/order") public String order(@RequestParam("memberId") Long memberId, @RequestParam("itemId") Long itemId, @RequestParam("count") int count){ System.out.println("parameter:" + memberId); System.out.println("parameter:" + itemId); System.out.println("parameter:" + count); orderService.order(memberId, itemId, count); return "redirect:/orders"; } //https://heydoit.tistory.com/7 - Parameter로 받을 때 ModelAttribute, RequestParam은 생략할 순 있으나 적는 것이 바람직하다. @GetMapping(value = "/orders") public String orderList(@ModelAttribute("orderSearch") OrderSearch orderSearch, Model model) { List<Order> orders = orderService.findOrders(orderSearch); model.addAttribute("orders", orders); return "order/orderList"; }} @Service@Transactional(readOnly = true)@RequiredArgsConstructorpublic class OrderService { //@Autowired가 아닌 @RequiredArgsConstructor를 통해 주입받기 위해서는 final로 선언해야한다. private final OrderRepository orderRepository; private final MemberRepository memberRepository; private final ItemRepository itemRepository; @Transactional public Long order(Long memberId, Long itemId, int count) { //엔티티 조회 Member member = memberRepository.findOne(memberId); Item item = itemRepository.findOne(itemId); //배송정보 생성 Delivery delivery = new Delivery(); delivery.setAddress(member.getAddress()); delivery.setStatus(DeliveryStatus.READY); //주문상품 생성 OrderItem orderItem = OrderItem.createOrderItem(item, item.getPrice(), count); //주문 생성 Order order = Order.createOrder(member, delivery, orderItem); //주문 저장 orderRepository.save(order); return order.getId(); } //취소 @Transactional public void cancleOrder(Long orderId) { //주문 엔티티 조회 Order order = orderRepository.findOne(orderId); //주문 취소 order.cancel(); } //검색 public List<Order> findOrders(OrderSearch orderSearch) { return orderRepository.findAllByString(orderSearch); }} @Entity@Table(name = "orders")@Getter @Setterpublic class Order { @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; //주문 회원 @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "delivery_id") private Delivery delivery; //배송정보 private LocalDateTime orderDate; //주문시간 @Enumerated(EnumType.STRING) private OrderStatus status; //주문상태 [ORDER, CANCEL] //==연관관계 메서드==// public void setMember(Member member) { this.member = member; member.getOrders().add(this); } public void addOrderItem(OrderItem orderItem) { orderItems.add(orderItem); orderItem.setOrder(this); } public void setDelivery(Delivery delivery) { this.delivery = delivery; delivery.setOrder(this); } //==생성 메서드==// public static Order createOrder(Member member, Delivery delivery, OrderItem... orderItems) { Order order = new Order(); order.setMember(member); order.setDelivery(delivery); for (OrderItem orderItem : orderItems) { order.addOrderItem(orderItem); } order.setStatus(OrderStatus.ORDER); order.setOrderDate(LocalDateTime.now()); return order; } //==비즈니스 로직==// /** 주문 취소 */ public void cancel() { if (delivery.getStatus() == DeliveryStatus.COMP) { throw new IllegalStateException("이미 배송완료된 상품은 취소가 불가능합니다."); } this.setStatus(OrderStatus.CANCLE); for (OrderItem orderItem : orderItems) { orderItem.cancel(); } } //==조회 로직==// /** 전체 주문 가격 조회 */ public int getTotalPrice() { int totalPrice = 0; for (OrderItem orderItem : orderItems) { totalPrice += orderItem.getTotalPrice(); } return totalPrice; }} @Entity@Table(name = "orders")@Getter @Setterpublic class Order { @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; //주문 회원 @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "delivery_id") private Delivery delivery; //배송정보 private LocalDateTime orderDate; //주문시간 @Enumerated(EnumType.STRING) private OrderStatus status; //주문상태 [ORDER, CANCEL] //==연관관계 메서드==// public void setMember(Member member) { this.member = member; member.getOrders().add(this); } public void addOrderItem(OrderItem orderItem) { orderItems.add(orderItem); orderItem.setOrder(this); } public void setDelivery(Delivery delivery) { this.delivery = delivery; delivery.setOrder(this); } public static Order createOrder(Member member, Delivery delivery, OrderItem... orderItems) { Order order = new Order(); order.setMember(member); order.setDelivery(delivery); for (OrderItem orderItem : orderItems) { order.addOrderItem(orderItem); } order.setStatus(OrderStatus.ORDER); order.setOrderDate(LocalDateTime.now()); return order; } public void cancel() { if (delivery.getStatus() == DeliveryStatus.COMP) { throw new IllegalStateException("이미 배송완료된 상품은 취소가 불가능합니다."); } this.setStatus(OrderStatus.CANCLE); for (OrderItem orderItem : orderItems) { orderItem.cancel(); } } public int getTotalPrice() { int totalPrice = 0; for (OrderItem orderItem : orderItems) { totalPrice += orderItem.getTotalPrice(); } return totalPrice; }} @Entity@Table(name = "order_item")@Getter @Setterpublic class OrderItem { @Id @GeneratedValue @Column(name = "order_item_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "item_id") private Item item; //주문 상품 @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "order_id") private Order order; //주문 private int orderPrice; //주문 가격 private int count; //주문 수량 public static OrderItem createOrderItem(Item item, int orderPrice, int count) { OrderItem orderItem = new OrderItem(); orderItem.setItem(item); orderItem.setOrderPrice(orderPrice); orderItem.setCount(count); item.removeStock(count); return orderItem; } public void cancel() { getItem().addStock(count); } public int getTotalPrice() { return getOrderPrice() * getCount(); }} @Entity@Getter @Setterpublic class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String name; @Embedded private Address address; @OneToMany(mappedBy = "member") private List<Order> orders = new ArrayList<>();} List<Order> orders = orderService.findOrders(orderSearch);orders.forEach((o) -> { System.out.println(":::::::"); System.out.println(o.getTotalPrice()); System.out.println(o.getDelivery()); System.out.println(o.getId()); System.out.println(o.getOrderDate()); System.out.println(o.getMember()); System.out.println(o.getOrderItems()); System.out.println(o.getStatus());});model.addAttribute("orders", orders);return "order/orderList";//컨트롤러에서 orders 로그찍었을 때 결과org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: jpabook.jpashop.domain.Order.orderItems, could not initialize proxy - no Session at org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:606) ~[hibernate-core-5.4.25.Final.jar:5.4.25.Final] at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:218) ~[hibernate-core-5.4.25.Final.jar:5.4.25.Final] at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:585) ~[hibernate-core-5.4.25.Final.jar:5.4.25.Final] at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:149) ~[hibernate-core-5.4.25.Final.jar:5.4.25.Final] at org.hibernate.collection.internal.PersistentBag.iterator(PersistentBag.java:387) ~[hibernate-core-5.4.25.Final.jar:5.4.25.Final] at jpabook.jpashop.domain.Order.getTotalPrice(Order.java:69) ~[main/:na] at jpabook.jpashop.controller.OrderController.lambda$orderList$0(OrderController.java:58) ~[main/:na] at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) ~[na:na] at jpabook.jpashop.controller.OrderController.orderList(OrderController.java:56) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1061) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:961) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.2.jar:5.3.2] at javax.servlet.http.HttpServlet.service(HttpServlet.java:626) ~[tomcat-embed-core-9.0.41.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.2.jar:5.3.2] at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) ~[tomcat-embed-core-9.0.41.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.2.jar:5.3.2] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.2.jar:5.3.2] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.2.jar:5.3.2] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.41.jar:9.0.41] 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.41.jar:9.0.41] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
프리젠테이션 질문
안녕하세요 너무 좋은 강의 감사합니다. 관련 전공은 아니지만 이번 강의 덕분에 멋진 사이트가 하나하나 만들어져 가는 데 희열을 느낍니다. 더불의 강의 중 심플하면서 눈에 쏙쏙 들어오는 프리젠테이션도 참 좋은 데요 그냥 일반 PPT로 만드신건가요? 아님 다른 프로그램으로 만드신건가요? 그리고 색감같은 것은 따로 공부를 하신건가요? 저도 강의할 때 한번 사용해보고 싶어서요... 꼭 답변 부탁드립니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
image 전송과 함께 데이터는 json으로 보내고 싶은 경우
restAPI에서 image 와 함께 데이터를 같이 보낼때, 보내려는 데이터가 많이 복잡할 경우에는 json으로 보내는 것이 좋을 것 같아 json으로 보내는 방법을 시도해봤는데요 @RequestPart DTO dto 이런식으로 dto를 직접 넣었을때는기본적으로 requestData가 formdata 형식이라 그런지 리졸버가 아예 처리를 하지 못하고, request를 받지 않는 것 같습니다. 그래서 아래와 같이 json의 경우 string으로 받아 테스트 해보았는데요 @PostMapping// @PostMapping(consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.MULTIPART_FORM_DATA_VALUE}) public ResponseEntity<ResponseOKDto<PostResponseDto>> post( @RequestPart("data") String data, @RequestPart("file") MultipartFile file, @ApiIgnore HttpSession session) throws IOException { Account account = getSessionCheckedAccount(session); if(!file.isEmpty()){ String path = session.getServletContext().getRealPath("/") + "images/" + file.getOriginalFilename(); file.transferTo(new File(path)); } String o = objectMapper.readValue(data, String.class);// objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true); PostRequestDto postRequestDto = objectMapper.readValue(data, PostRequestDto.class); Long postId = postService.post(postRequestDto.getTitle(), postRequestDto.getDesc(), postRequestDto.getPrice(), postRequestDto.getCategoryTag(), account); return new ResponseEntity<>(new ResponseOKDto<>( new PostResponseDto(postId)), HttpStatus.OK); } 이와 같이 포스트맨으로 data를 보냈을 때, 스트링으로 받은 data를 오브젝트 매퍼를 이용해서 바로 DTO로 변환해보니 jackson에서 변환할수 없다는 익셉션이 떠 (Unexpected character ('\' (code 92)): was expecting double-quote to start field name) 디버깅을 해보니 object mapper를 이용해 String으로 한번 변환하고 다시 dto로 변환해야만 잘 동작 했습니다. 아래와 같이 데이터를 ""로 감싸주지 않은 경우에는 해당 에러가 출력되었고요 no String-argument constructor/factory method to deserialize from String value ('{"title":"test","desc":"test","price":10,"categoryTag":"Digital"}') at [Source: (String)""{\"title\":\"test\",\"desc\":\"test\",\"price\":10,\"categoryTag\":\"Digital\"}""; line: 1, column: 1] 제가 했던 접근 방식은 문제점이 일단 2개가 보이는데 - 스트링으로 한번 더 변환을 해줘야해 복잡하다 - 들어온 data 값에 대해 @Validated 를 적용하지 못한다. Q1. 다른 방식으로 data를 json형식으로 받아오고 dto에 대한 validtaion을 적용할 수 있는 방법이 있을까요? Q2. 필드가 아주 많을 경우에 form으로 하나씩 받는건 너무 코드가 지저분 해지는 것 같은데, 벨리데이션과 함께 적용하려면 이렇게 해야하는 걸까요? Q3. objectMapper로 두번 변환 대신에 doubleQuetoALLOW 옵션을 주었는데도 에러가 떴는데, 더블쿼터 에러를 해결할 수 있는 방법이 있을까요? 답변주시면 감사드리겠습니다. 항상 좋은 강의해주셔서 감사합니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Controller service
1.아키텍처 중 service와 contrioller의 차이는 무엇인가? 혹시 api개발이 되는곳이 controller 인가요? 2. Mvc 라고할때 model에 해당하는 부분이 아키텍처에서는 domain인가요? 감사합니다
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
res 안에 status
const res 객체안에 status 를 jest.fn() 이 아닌 jest.fn(() => res) 를 넣어주는 이유가 뭔가요?? 그리고 안의 res의 의미도 궁금합니다.
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
스프링 플라스크 질문
안녕하세요, 다름이 아니라 실무에서 플라스크 스프링의 차이점이 궁금합니다. 아무래도 스프링의 범용성이 더 넓은 것으로 알고 있는데.. 실무에서는 두 프레임워크가 어떠한 면에서 어떤 차이점이 존재하는지 감이 잘 안오네요... 어떤 개발자 커리어를 지향하느냐에 따라서 프레임워크의 선택도 달라질거라 생각이 되는데... 감이 잘 안옵니다! 항상 훌륭한 강의 잘 수강하고 있습니다. 감사합니다!
-
미해결iOS/Android 앱 개발을 위한 실전 React Native - Basic
리액트 네이티브 웹뷰 질문입니다
리액트네이티브를 가지고 프로젝트를 진행중입니다. 리액트로 웹을 만드는것은 어느정도 익숙한데요. 이번에 앱을 만드는 것은 처음입니다. 그러던중 webview 라는 것을 알게 되었습니다. react 환경에서 웹앱을 만들고 리액트 네이티브 webview 를 이용해서 앱 개발 배포로 어플리케이션 프로젝트 진행이 가능할까요?
-
해결됨탄탄한 백엔드 NestJS, 기초부터 심화까지
AmazonS3FileInterceptor의 dynamicPath 에러
수업 내용의 4분정도까지 잘 따라오다가, dynamicPath에 에러가 발생했습니다. 라이브러리도 제대로 설치하고 문제없이 코드를 작성한 것 같은데 에러가 떳네요. 뭐가 문제인지 모르겠어서 질문 남깁니다. 에러 내용입니다. --- error TS2345: Argument of type '{ dynamicPath: string; }' is not assignable to parameter of type 'MulterExtendedOptions'. Type '{ dynamicPath: string; }' is missing the following properties from type 'MulterExtendedOptions': fileFilter, limits 74 AmazonS3FileInterceptor('image', { ~ 75 dynamicPath: 'cats', --- 상세 소스는 https://github.com/GroundP/CatsCommunity를 참고 해주세요!