학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 문제 : @Transactional 를 주석처리하면 정상적으로 회원가입이 되서 h2 DB에 입력됩니다... 그런데 다시 DB데이터 삭제 하고 @Transactional 어노테이션 설정을하면 아래와같이 java.lang.IllegalStateException: java.sql.SQLException: Connection is closed 뜹니다.. 정상적으로 지금까지 다된거같은데 갑자기 이러네요.
[질문 내용] 안녕하세요 항상 강의 잘 듣고있습니다! 제가 복습을 하던 중 궁금한게 생겼는데 제가 이해한 것이 맞는 지 확인하고 싶어요! 질문 1. MemberServiceImpl의 경우 AppConfig를 사용했을 때 위와 같은 구조를 갖게 되는데 만약에 이때 스프링으로 전환하지 않고 사용한다고 가정한다면, 클라이언트의 요청이 100번 들어오면 마찬가지로 AppConfig객체도 100번 생성해야 하는 문제점이 발생하게 되는 것이 맞나요? 질문 2. 만약에 스프링 컨테이너를 사용하게 된다면 스프링 컨테이너에 AppConfig를 등록하고 필요할 때 마다 쓰게 되니까 싱글톤으로 공유해서 사용하게 되는 것이 맞나요??
강의 내용 중에 타임리프에서 include style보다 Hierarchical style이 중복 제거도 할 수 있고 실용적이라고 하셔서 제가 공부를 하려고 찾아보는데 궁금한게 몇가지 있어서 질문드립니다. 강의에서 예제들이 많다고 하셨는데 타임리프 홈페이지에 들어가서 찾아보니 Hierarchical style에 대한 설명이 있는 홈페이지에 2. Example Application에 들어가면 예제들이 있는 것 인가요?? 제가 또 Hierarchical style에 대해서 찾아보다 보니 Thymeleaf Layout Dialect 에 대한 설명들이 많이 나오던데 혹시 Hierarchical style layout이랑 Layout Dialect랑 같은 의미인가요? 아니면 Hierarachical이 Layout Dialect를 쓴다는 의미인건가요...? 언제나 친절하게 답변해주셔서 감사합니다!
[질문 내용] @PostMapping("/request-body-string-v2") public void requestBodyStringV2(InputStream inputStream) throws IOException { String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8); log.info ("messageBody = {}", messageBody); } HTTP 요청 메시지 - 단순 텍스트 강의에서 v2를 똑같이 따라서 작성하다가 제가 Writer는 생략하고 inputStream만 받아서 바이트 코드를 String 값으로 변환한 뒤 로그 출력만 하려 했는데 inputStream만 받고 포스트맨으로 v2 url에 post로 요청을 보냈더니 에러가 발생했습니다. 아무리 생각해 봐도 writer를 뺀 것 말고는 다 똑같아서 에러가 날 이유가 없다고 생각했는데, 이상하게 에러가 발생했습니다. 그래서 혹시나 하는 마음에 영상과 완전히 똑같이 Writer를 넣어서 서버를 다시 시작하고 요청을 보냈더니 제대로 작동했습니다. 이상한 건, writer 뿐만 아니라 다른 아무 argument resolver에 등록된 객체를 함께 받으면 문제 없이 동작한다는 것이었습니다. 에러 내용을 확인해 보니 타임리프 템플릿 오류인 것 같은데 inputStream이랑 관련이 없어 보여서 어느 부분이 문제인 지 알 수가 없었습니다..ㅠ inputStream을 단일로 받으면 문제가 있는 것인 지 질문 남겨봅니다! 밑은 에러 내용입니다. org.thymeleaf.exceptions.TemplateInputException: Error resolving template [request-body-string-v2], template might not exist or might not be accessible by any of the configured Template Resolvers at org.thymeleaf.engine.TemplateManager.resolveTemplate( TemplateManager.java:869 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.TemplateManager.parseAndProcess( TemplateManager.java:607 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.TemplateEngine.process( TemplateEngine.java:1098 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.TemplateEngine.process( TemplateEngine.java:1072 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.renderFragment( ThymeleafView.java:366 ) ~[thymeleaf-spring5-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.render( ThymeleafView.java:190 ) ~[thymeleaf-spring5-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.springframework.web.servlet.DispatcherServlet.render( DispatcherServlet.java:1405 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.DispatcherServlet.processDispatchResult( DispatcherServlet.java:1149 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.DispatcherServlet.doDispatch( DispatcherServlet.java:1088 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.DispatcherServlet.doService( DispatcherServlet.java:964 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.FrameworkServlet.processRequest( FrameworkServlet.java:1006 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.FrameworkServlet.doPost( FrameworkServlet.java:909 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at javax.servlet.http.HttpServlet.service( HttpServlet.java:681 ) ~[tomcat-embed-core-9.0.65.jar: 4.0.FR ] at org.springframework.web.servlet.FrameworkServlet.service( FrameworkServlet.java:883 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at javax.servlet.http.HttpServlet.service( HttpServlet.java:764 ) ~[tomcat-embed-core-9.0.65.jar: 4.0.FR ] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:227 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.websocket.server.WsFilter.doFilter( WsFilter.java:53 ) ~[tomcat-embed-websocket-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:189 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.web.filter.RequestContextFilter.doFilterInternal( RequestContextFilter.java:100 ) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.23.jar:5.3.23] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:189 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.web.filter.FormContentFilter.doFilterInternal( FormContentFilter.java:93 ) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.23.jar:5.3.23] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:189 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal( CharacterEncodingFilter.java:201 ) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.23.jar:5.3.23] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:189 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardWrapperValve.invoke( StandardWrapperValve.java:197 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardContextValve.invoke( StandardContextValve.java:97 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.authenticator.AuthenticatorBase.invoke( AuthenticatorBase.java:541 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:135 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.valves.ErrorReportValve.invoke( ErrorReportValve.java:92 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardEngineValve.invoke( StandardEngineValve.java:78 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.connector.CoyoteAdapter.service( CoyoteAdapter.java:360 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.http11.Http11Processor.service( Http11Processor.java:399 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.AbstractProcessorLight.process( AbstractProcessorLight.java:65 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process( AbstractProtocol.java:890 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.net .NioEndpoint$SocketProcessor.doRun( NioEndpoint.java:1789 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.net.SocketProcessorBase.run ( SocketProcessorBase.java:49 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1191 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:659 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( TaskThread.java:61 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
return new Result(collect); Result<T> 리절트에 <>안해주고 위에처럼 그냥 써도 상관없나요? 어느 블로그에서 "간혹가다 책에서 Object형을 암시적으로 받는다고 적혀있는 경우가 있는데 단언컨데 Object형을 받지 않습니다."라고 나와있는데 굳이 이렇게 코드를 짠 이유가 뭘까요??
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
안녕하세요 강사님~!! 항상 감사한 마음으로 수업 잘 듣고 있습니다 ㅎㅎ 테스트 픽스쳐 관련해서 궁금한 점이 있어 질문 드립니다. 엔티티에 fixture 함수를 정의하게 되면 테스트에 필요한 내용이 실제 운영 코드로 전파되거나, 반대로 (운영 코드인) 엔티티의 정적함수가 테스트 환경에만 종속되는 문제가 있을 것 같은데 어떻게 생각하시는지 궁금합니다!!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강사님 쉽고 깔끔한 강의 감사드립니다 다른 좋은 강의 부탁드립니다 강의 듣고 난후 궁금한 사항 질문 드립니다.. 1.레디스 레튜스, 레디슨 사용시 서버가 장애 발생으로 갑자기 죽었을때는 락을잡고 관리하던 항목들은 자동으로 사라지는건가요 어떻게 되나요? 2.강사님이 경험하신 레디스 레튜스, 레디슨 를 실무 사례에 적용할때 어떤경우에 적용해보셨는지 사례 몇가지를 예시로 알려주세요..
translate() 메서드의 첫번째 파라미터는 읽을 수 있는 설명이고, 두번째는 실행한 sql, 마지막은 발생된 SQLException 을 전달하면 된다. 이 부분에서 어떤 파라미터가 DB의 Error Code를 전달받게되나요? 그리고 스프링이 자체제공하는 추상화된 예외는 DB접근 예외 말고 다른 종류의 예외들은 없나요?
안녕하세요 정말 기초적인? 질문이 있습니다...구글링을 해도 원하는 내용이 잘 안보여서 질문을 드립니다!!! 다름이 아니라 강의의 9분 9초쯤부터 말씀하시는 커맨드 성이여서 거의 쓰기만 있다고 한다에서 쓰기만 있는 코드는 무슨 뜻인지 알겠는데 커맨드성이라는게 어떤 것을 뜻하는 건지 궁금해서 질문 드립니다. 혹시 커맨드라는 것이 제가 아는 특정한 기능을 실행하려고 보내는 신호? 코드? 그것을 뜻하는 건가요??? 그리고 제가 질문이 좀 많은데 매번 답변 잘해주셔서 너무 감사드립니다ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. build 성공 후 jar 실행 했는데 무반응 입니다. 에러도 안 뜨고 아무 반응이 없어요ㅠ
엔티티로 직접 요청을 처리하지말고 별도의 dto를 만들어서 요청을 처리하는게 좋다고말씀해주셨는데! 실무의 경우 api별로 dto를 만들때 내부클래스로 선언해서 사용할까요? 아님 패키지에 따로 dto를 만들어서사용할까요!! 그리고 추가적으로 혹시 선생님 spring mvc강좌 restapi관련된 강좌가있을까요!?