inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

174만명의 커뮤니티!! 함께 토론해봐요.

aws ssh 접속오류

미해결

[리뉴얼] React로 NodeBird SNS 만들기

제로초님 강의 듣고 웹,앱 서비스를 만들었습니다. aws 는 프리티어를 사용중인데, 백앤드 서버가 다운됐습니다. 저번에 몇번 터졌을때는 pm2를 사용하여서 다시 복구가 되었는데, 이번엔 아예 복구조차 되지않습니다. 그리고 ssh로 백앤드 서버로 접속하려고 하면 줄바꿈은되는데 아무것도 뜨지않습니다. gony  ~/Documents/MT   master  ssh -i "***.pem" ubuntu@ec2-**-***-***-***.ap-northeast-2.compute.amazonaws.com 이게 백앤드서버로 접속하는 코드인데,입력하면 줄바꿈만되고 아무일도 일어나지않습니다. 하지만 프론트 서버로는 접속이 잘됩니다. 혹시 해결방법이 있을까요? 프리티어 사용과 관련있는걸까요...

  • Next.js
  • nodejs
  • express
  • redux
  • react
노른자 댓글 1 좋아요 0 조회수 307

QueryDSL 테스트 관련해 질문드립니다

해결됨

실전! Querydsl

안녕하세요 영한님! compileQueryDSL로 생성된 Qclass들은 github에 올리지 말라고 하셔서 그대로 적용해 사용 중입니다. 제가 Qclass를 사용하는 Test 코드를 작성하고 로컬에서는 Qclass가 프로젝트 내에 존재하니 문제 없이 실행되지만, CI / CD 연습을 위해 github push, pull request 기준으로 깃 레포에서 코드를 받아와 빌드를 하는데 Qclass가 없어서 test 코드가 터져 빌드가 실패합니다. 1. Qclass를 노출하지 않는 이런 경우에는 Test 코드 작성을 어떻게 해야할까요? 2. Test 코드에 @Profile 을 local이 아닌 것을 줘서 수행되지 않도록 하는 것이 최선일까요?

  • java
  • JPA
pandabear 댓글 1 좋아요 0 조회수 510

클라이언트 프로그래머에게 요구하는 인공지능 기술 수준이 어느 정도인가요?

해결됨

게임 프로그래머 취업 전략 가이드

자기 관리 (연차의 무게)에서 10년 차인데 인공지능 코드를 못 짜서 잘린 사례를 언급 했는데요. 그 분이 인공지능 관련 업무자였나요? 일반적인 클라이언트 프로그래머는 어느 수준의 인공지능을 원하나요? 채용공고 보면 인공지능 분야 따로 뽑는 곳 있던데 클라이언트 프로그래머에게 시키더라도 간단한 것만 시키나요?

  • 포트폴리오
  • 기술면접
배고픈 댓글 1 좋아요 0 조회수 251

꼭 centos6.10 버전을 사용하는데 이유가 있나요?

미해결

15일간의 빅데이터 파일럿 프로젝트

직접 환경구성을 해보고 싶은데, 꼭 centos 6 버전만 가능한가요?

  • Hadoop
  • bigdata
  • Kafka
  • ZooKeeper
  • Impala
  • Flume
  • 데이터 엔지니어링
  • redis
흰색남자 댓글 1 좋아요 0 조회수 329

질문드립니다.

미해결

홍정모의 따라하며 배우는 C++

교수님께서 이터레이터에 대해 다루시지는 않았지만 그냥 한 번 간단하게 실험을 해봤는데요, 벡터의 capacity가 왜 3에서 6이 되었는지 모르겠습니다. 특정 위치에 특정 값을 지정했을 뿐인데 왜 그런 것인가요?

  • C++
solitary 댓글 1 좋아요 0 조회수 178

SEQUENCE전략 궁금한게 있습니다!

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요. 궁금한점이 SEQUNCE전략에서 @GeneratedValue(strategy = GenerationType.SEQUENCE)를 써서 하이버네이트가 제공하는 기본 시퀀스를 쓰고 그리고 테이블마다 시퀀스를 따로 관리하기위해 @SequenceGenerator를 쓰라고 하셨는데 궁금한점이 테이블마다 시퀀스를 따로 둬서 관리하는 이유가 무엇인지 궁금합니다. 항상 감사드립니다.

  • JPA
  • java
gmlwjd4667 댓글 2 좋아요 0 조회수 224

개인적인 공부 방향성 선택에 대해 질문을 드리고 싶습니다.

미해결

비전공자를 위한 개발자 취업 올인원 가이드 [통합편]

안녕하세요! 정수님~ 정말 좋은 로드맵 강의 잘 듣고 있습니다. 저는 현재 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 으로 답변을 주셔도 좋을 것 같습니다. 육아와 회사 업무로 바쁘시겠지만, 혹시 시간이 가능하시다면 후배 개발자 지망생에게 조언 한 마디 툭 던져 주신다면 정말 감사하겠습니다.

  • 부트캠프
  • 로드맵
  • 포트폴리오
  • 면접
  • 개발자
러닝맨 댓글 1 좋아요 0 조회수 399

안녕하세요 강의 너무 잘 듣고 있습니다!

미해결

15일간의 빅데이터 파일럿 프로젝트

안녕하세요 선생님 제가 이 강의를 듣게된 이유가 학교 프로젝트로 빅데이터 관련 프로젝트를 진행해야하기 때문입니다. 빅데이터의 'ㅂ' 자도 몰랐는데 강의를 들으면서 어느정도 개념이 생겨나는 것 같습니다. ㅎㅎ 너무 좋은 강의 감사드려요 들으면서 궁금증이 생겼는데요 지금 큰 단계가 수집 > 적재 > 탐색 > 분석 이 잖아요? 만약에 빅데이터에 관련된 자유주제로 프로젝트를 진행한다 하였을때 제가 이 모든 단계를 혼자서 구현해야할까요? 예를들어 분석만 하는 프로젝트를 진행을 한다하면 분석을 위해 지금까지 해온 수집 적재 탐색 작업을 다 이런식으로 구현을 해야하나요? 빅데이터 관련 자유주제로 프로젝트를 어떻게 진행해야할지 갈피를 못잡아서 이렇게 선생님께라도 조언을 구해봅니다. 추가로, 수집 과정에서 로그 시뮬레이터를 통해 로그 데이터를 얻어오는데 이 자바프로그램은 선생님께서 직접 만드신건가요? 아니면 이런 자료들을 어디서 받아올 수 있는지 궁금합니다. 질문의 내용이 참 두서도 없고 너무 초보적이라 당황스러우실텐데 이해해주시면 감사하겠습니다 ㅠㅠ

  • bigdata
  • Hadoop
  • redis
  • Flume
  • ZooKeeper
  • 데이터 엔지니어링
  • Kafka
  • Impala
Rapture 댓글 1 좋아요 1 조회수 176

왜 @Enumerated 타입 디폴트값이 ORDINAL 일까요?

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

말씀대로 ORDINAL일 때 이점이 될 경우가 거의 없을거 같은데 왜 디폴트값이 이걸로 설정되있는지 궁금하네요 실무에서도 일일히 Enum 타입을 STRING으로 지정해야 하는게 은근히 불편할것 같은데 혹시 추후에 바뀔 가능성은 없을까요? ㅋㅋ

  • java
  • JPA
KoorunG 댓글 1 좋아요 0 조회수 359

http 요청을 보낼때마다 request, response 객체의 주소값이 변하지 않는 이유?

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

안녕하세요 강의 정말로 잘 듣고 있습니다! 정말 별거 아닌 질문일 수 있는데 궁금해서 질문 남겨봅니다. 서블릿에서 Request 객체와 Response 객체는 HTTP 요청이 들어올때마다 새로 생성한다고 했는데, 왜 요청을 줄때마다 같은 주소값이 찍히는건가요? 한번 요청 - 응답 하고나면 끝이고 다시 페이지 새로고침을 하면 새로운 HTTP 요청이 가서 새로운 response, request 객체가 생성되야 하는게 아닌지 궁금합니다!! 그냥 WAS에 구현체가 싱글톤으로 있어서 요청이 올때마다 덮어써서 보내주는 방식?? 그런건가요? 스프링, HTTP 지식이 부족해서 나온 너무 이상한 질문이었을지도 모르겠네요 ㅠㅠㅠ..

  • http
  • spring
  • MVC
초코우유 댓글 1 좋아요 4 조회수 617

An error happened during template parsing (template: "class path resource [templates/order/orderList.html]") 에러 문의

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요. 상품 주문 시 에러 관련해서 문의드립니다. 시간되실 때 확인 한번 부탁드립니다.. 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 @RequiredArgsConstructor public 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 ) @RequiredArgsConstructor public 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 @Setter public 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 @Setter public 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 @Setter public 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 @Setter public 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]

  • spring-boot
  • java
  • JPA
  • spring
  • 웹앱
Real 댓글 2 좋아요 0 조회수 2500

프리젠테이션 질문

미해결

작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지

안녕하세요 너무 좋은 강의 감사합니다. 관련 전공은 아니지만 이번 강의 덕분에 멋진 사이트가 하나하나 만들어져 가는 데 희열을 느낍니다. 더불의 강의 중 심플하면서 눈에 쏙쏙 들어오는 프리젠테이션도 참 좋은 데요 그냥 일반 PPT로 만드신건가요? 아님 다른 프로그램으로 만드신건가요? 그리고 색감같은 것은 따로 공부를 하신건가요? 저도 강의할 때 한번 사용해보고 싶어서요... 꼭 답변 부탁드립니다!

  • 프리젠테이션
  • python
  • docker
  • django
최병규 댓글 1 좋아요 0 조회수 254

image 전송과 함께 데이터는 json으로 보내고 싶은 경우

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

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 옵션을 주었는데도 에러가 떴는데, 더블쿼터 에러를 해결할 수 있는 방법이 있을까요? 답변주시면 감사드리겠습니다. 항상 좋은 강의해주셔서 감사합니다

  • spring
  • MVC
유승현 댓글 3 좋아요 2 조회수 9157

Controller service

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

1.아키텍처 중 service와 contrioller의 차이는 무엇인가? 혹시 api개발이 되는곳이 controller 인가요? 2. Mvc 라고할때 model에 해당하는 부분이 아키텍처에서는 domain인가요? 감사합니다

  • 웹앱
  • spring
  • java
  • spring-boot
  • JPA
신진 댓글 1 좋아요 0 조회수 180

res 안에 status

미해결

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

const res 객체안에 status 를 jest.fn() 이 아닌 jest.fn(() => res) 를 넣어주는 이유가 뭔가요?? 그리고 안의 res의 의미도 궁금합니다.

  • mongodb
  • mysql
  • nodejs
  • Sequelize
bbcc8417 댓글 1 좋아요 1 조회수 185

스프링 플라스크 질문

미해결

풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]

안녕하세요, 다름이 아니라 실무에서 플라스크 스프링의 차이점이 궁금합니다. 아무래도 스프링의 범용성이 더 넓은 것으로 알고 있는데.. 실무에서는 두 프레임워크가 어떠한 면에서 어떤 차이점이 존재하는지 감이 잘 안오네요... 어떤 개발자 커리어를 지향하느냐에 따라서 프레임워크의 선택도 달라질거라 생각이 되는데... 감이 잘 안옵니다! 항상 훌륭한 강의 잘 수강하고 있습니다. 감사합니다!

  • docker
  • linux
  • network
Data_E 댓글 1 좋아요 0 조회수 514

리액트 네이티브 웹뷰 질문입니다

미해결

iOS/Android 앱 개발을 위한 실전 React Native - Basic

리액트네이티브를 가지고 프로젝트를 진행중입니다. 리액트로 웹을 만드는것은 어느정도 익숙한데요. 이번에 앱을 만드는 것은 처음입니다. 그러던중 webview 라는 것을 알게 되었습니다. react 환경에서 웹앱을 만들고 리액트 네이티브 webview 를 이용해서 앱 개발 배포로 어플리케이션 프로젝트 진행이 가능할까요?

  • react-native
  • es6
  • react
eamon3481 댓글 0 좋아요 0 조회수 371

AmazonS3FileInterceptor의 dynamicPath 에러

해결됨

탄탄한 백엔드 NestJS, 기초부터 심화까지

수업 내용의 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를 참고 해주세요!

  • mongodb
  • express
  • nodejs
  • NestJS
  • ssr
GroundP 댓글 1 좋아요 1 조회수 286

선생님 문의드립니다.

미해결

[비전공자 대환영] 제로베이스도 쉽게 입문하는 파이썬 데이터 분석 - 캐글입문기

안녕하십니까. 선생님 수업을 듣다가 궁금한 점이 생겨서 질문드립니다. 진짜 재난뉴스 분류 대회 강의를 수강하면서 다른 대회에도 참여해보고 싶다는 생각이 들었습니다. 혹시 이 대회 이후에 kaggle에 있는 텍스트 기초, 꼭하면 좋을 것 같다는 대회가 있다면 추천 가능할까요?

  • numpy
  • pandas
  • kaggle
  • 머신러닝 배워볼래요?
  • python
  • matplotlib
  • scikit-learn
문성일 댓글 2 좋아요 1 조회수 444

th:field의 의미

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

addForm 에서 등록 지역 선택 버튼을 만들 때 th:field = "*{regions}"라고 하면 넘어오는 item의 regions는 비어있는 list이지 않나요? 근데 왜 regions라는 id가 생성되는 거죠?? th:field의 정확한 기능이 무엇인가요?

  • spring
  • MVC
주니어백엔드 댓글 1 좋아요 0 조회수 323

인기 태그

인프런 TOP Writers

주간 인기글