클린 아키텍처 10장 ISP 원칙 파트를 읽다가 이해가 가지 않는 부분이 생겨 질문드립니다. 정적 언어는 include 선언문 때문에 소스코드 의존성 발생 -> 재배포, 재컴파일 필요 동적 언어는 선언문이 없음. 런타임에 추론함. 따라서 소스코드 의존성 없음 -> 재배포, 재컴파일 필요 없음 이 부분이 헷갈립니다. 파이썬도 import를 쓰지 않나요? 그건 정적 언어의 include 선언문과 다른 건가요? 동적 언어는 변수 타입 말고도 외부 모듈도 동적으로 불러오나요?
sudo service nginx start 할때 마다 Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xeu nginx.service" for details. 이에러가 뜹니다 https://www.zerocho.com/category/NodeJS/post/5ef450a5701d8a001f84baeb 이블로그 보면서 했습니다 ㅠㅠ
db.pool.query(`CREATE TABLE list ( id INTEGER AUTO_INCREMENT, value TEXT, PRIMARY KEY (id))`, (err, results, fields) => { console.log('err: ', err); console.log('results: ', results); }); server.js 의 위 부분 실행시, 아래와 같은 오류가 출력되는데 어떤 부분을 수정해야될까요? 참고로 테이블명은 강의와 다르게 list로 했고, err 확인을 위해 console.log('err: ', err); 추가했습니다.
fetchResult() 가 5.0 부터 권장하지 않는다 해서 fetch().size()를 사용한다고 하는데 List<MemberTeamDto> content = queryFactory .select(new QMemberTeamDto( member.id.as("memberId"), member.username, member.age, team.id.as("teamId"), team.name.as("teamName") )) .from(member) .leftJoin(member.team, team) .where( usernameEq(condition.getUsername()), teamNameEq(condition.getTeamName()), ageGoe(condition.getAgeGoe()), ageLoe(condition.getAgeLoe()) ) .offset(pageable.getOffset()) .limit(pageable.getPageSize()) .fetch(); int total = queryFactory .selectFrom(member) .leftJoin(member.team, team) .where( usernameEq(condition.getUsername()), teamNameEq(condition.getTeamName()), ageGoe(condition.getAgeGoe()), ageLoe(condition.getAgeLoe()) ).fetch().size(); int size = content.size(); return new PageImpl<>(content, pageable, total); 아래처럼 count 쿼리를 날려서 구한 total 값과 위에 content 쿼리문의 size()값이 다르게 나오던데 이 size 값은 단지 PageRequet.of로 넣어준 size 값인가요?? 두 방식 중 total로 구하는 방식이 맞는건가요?
int x; x = 123; 이 상황에서 &x를 출력하면 16진수로 이루어진 x의 주소를 알 수 있습니다. 12:35 부근에서, 선생님께서 프로그래머가 123 숫자에 대한 주소를 갖고 오기가 어렵다고 하셨는데, 이것에 대한 질문을 해보았더니, 답변해주신 분께서 "literal을 할당한 변수의 주소 (&x)는 알아낼 수 있어도 literal 123의 주소를 직접적으로 알아낼 수 없습니다."라고 합니다.... 그런데 literal을 할당한 변수의 주소와 literal 123의 주소의 차이점을 모르겠습니다...ㅠㅠㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 반복문부터 html에 문제가있는지 오류가나오네요 org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "user.username" (template: "basic/condition" - line 17, col 13) at org.thymeleaf.spring5.expression.SPELVariableExpressionEvaluator.evaluate( SPELVariableExpressionEvaluator.java:292 ) ~[thymeleaf-spring5-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.standard.expression.VariableExpression.executeVariableExpression( VariableExpression.java:166 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.standard.expression.SimpleExpression.executeSimple( SimpleExpression.java:66 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.standard.expression.Expression.execute( Expression.java:109 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.standard.expression.Expression.execute( Expression.java:138 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.standard.processor.AbstractStandardExpressionAttributeTagProcessor.doProcess( AbstractStandardExpressionAttributeTagProcessor.java:144 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess( AbstractAttributeTagProcessor.java:74 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.processor.element.AbstractElementTagProcessor.process( AbstractElementTagProcessor.java:95 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process( ProcessorConfigurationUtils.java:633 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement( ProcessorTemplateHandler.java:1314 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.OpenElementTag.beHandled( OpenElementTag.java:205 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.Model.process( Model.java:282 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.Model.process( Model.java:290 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.IteratedGatheringModelProcessable.processIterationModel( IteratedGatheringModelProcessable.java:367 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.IteratedGatheringModelProcessable.process( IteratedGatheringModelProcessable.java:221 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.ProcessorTemplateHandler.handleCloseElement( ProcessorTemplateHandler.java:1640 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.CloseElementTag.beHandled( CloseElementTag.java:139 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.TemplateModel.process( TemplateModel.java:136 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.TemplateManager.parseAndProcess( TemplateManager.java:592 ) ~[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:1406 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.DispatcherServlet.processDispatchResult( DispatcherServlet.java:1150 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.DispatcherServlet.doDispatch( DispatcherServlet.java:1089 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.DispatcherServlet.doService( DispatcherServlet.java:965 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.FrameworkServlet.processRequest( FrameworkServlet.java:1006 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.FrameworkServlet.doGet( FrameworkServlet.java:898 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at javax.servlet.http.HttpServlet.service( HttpServlet.java:529 ) ~[tomcat-embed-core-9.0.74.jar: 4.0.FR ] at org.springframework.web.servlet.FrameworkServlet.service( FrameworkServlet.java:883 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at javax.servlet.http.HttpServlet.service( HttpServlet.java:623 ) ~[tomcat-embed-core-9.0.74.jar: 4.0.FR ] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:209 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.websocket.server.WsFilter.doFilter( WsFilter.java:51 ) ~[tomcat-embed-websocket-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:178 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.springframework.web.filter.RequestContextFilter.doFilterInternal( RequestContextFilter.java:100 ) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:178 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.springframework.web.filter.FormContentFilter.doFilterInternal( FormContentFilter.java:93 ) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:178 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal( CharacterEncodingFilter.java:201 ) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:178 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardWrapperValve.invoke( StandardWrapperValve.java:167 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardContextValve.invoke( StandardContextValve.java:90 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.authenticator.AuthenticatorBase.invoke( AuthenticatorBase.java:481 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:130 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.valves.ErrorReportValve.invoke( ErrorReportValve.java:93 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardEngineValve.invoke( StandardEngineValve.java:74 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.connector.CoyoteAdapter.service( CoyoteAdapter.java:343 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.coyote.http11.Http11Processor.service( Http11Processor.java:389 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.coyote.AbstractProcessorLight.process( AbstractProcessorLight.java:63 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process( AbstractProtocol.java:926 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.net .NioEndpoint$SocketProcessor.doRun( NioEndpoint.java:1791 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.net.SocketProcessorBase.run ( SocketProcessorBase.java:52 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1191 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:659 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( TaskThread.java:61 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at java.base/java.lang.Thread.run( Thread.java:834 ) ~[na:na] Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'username' cannot be found on object of type 'hello.thymeleaf.basic.BasicController$User' - maybe not public or not valid? at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty( PropertyOrFieldReference.java:223 ) ~[spring-expression-5.3.27.jar:5.3.27] at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal( PropertyOrFieldReference.java:106 ) ~[spring-expression-5.3.27.jar:5.3.27] at org.springframework.expression.spel.ast.PropertyOrFieldReference.access$000( PropertyOrFieldReference.java:53 ) ~[spring-expression-5.3.27.jar:5.3.27] at org.springframework.expression.spel.ast.PropertyOrFieldReference$AccessorLValue.getValue( PropertyOrFieldReference.java:412 ) ~[spring-expression-5.3.27.jar:5.3.27] at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal( CompoundExpression.java:93 ) ~[spring-expression-5.3.27.jar:5.3.27] at org.springframework.expression.spel.ast.SpelNodeImpl.getValue( SpelNodeImpl.java:114 ) ~[spring-expression-5.3.27.jar:5.3.27] at org.springframework.expression.spel.standard.SpelExpression.getValue( SpelExpression.java:338 ) ~[spring-expression-5.3.27.jar:5.3.27] at org.thymeleaf.spring5.expression.SPELVariableExpressionEvaluator.evaluate( SPELVariableExpressionEvaluator.java:265 ) ~[thymeleaf-spring5-3.0.15.RELEASE.jar:3.0.15.RELEASE] ... 64 common frames omitted 2023-05-02 23:47:29.787 ERROR 13660 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "user.username" (template: "basic/condition" - line 17, col 13)] with root cause org.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'username' cannot be found on object of type 'hello.thymeleaf.basic.BasicController$User' - maybe not public or not valid? at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty( PropertyOrFieldReference.java:223 ) ~[spring-expression-5.3.27.jar:5.3.27] at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal( PropertyOrFieldReference.java:106 ) ~[spring-expression-5.3.27.jar:5.3.27] at org.springframework.expression.spel.ast.PropertyOrFieldReference.access$000( PropertyOrFieldReference.java:53 ) ~[spring-expression-5.3.27.jar:5.3.27] at org.springframework.expression.spel.ast.PropertyOrFieldReference$AccessorLValue.getValue( PropertyOrFieldReference.java:412 ) ~[spring-expression-5.3.27.jar:5.3.27] at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal( CompoundExpression.java:93 ) ~[spring-expression-5.3.27.jar:5.3.27] at org.springframework.expression.spel.ast.SpelNodeImpl.getValue( SpelNodeImpl.java:114 ) ~[spring-expression-5.3.27.jar:5.3.27] at org.springframework.expression.spel.standard.SpelExpression.getValue( SpelExpression.java:338 ) ~[spring-expression-5.3.27.jar:5.3.27] at org.thymeleaf.spring5.expression.SPELVariableExpressionEvaluator.evaluate( SPELVariableExpressionEvaluator.java:265 ) ~[thymeleaf-spring5-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.standard.expression.VariableExpression.executeVariableExpression( VariableExpression.java:166 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.standard.expression.SimpleExpression.executeSimple( SimpleExpression.java:66 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.standard.expression.Expression.execute( Expression.java:109 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.standard.expression.Expression.execute( Expression.java:138 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.standard.processor.AbstractStandardExpressionAttributeTagProcessor.doProcess( AbstractStandardExpressionAttributeTagProcessor.java:144 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess( AbstractAttributeTagProcessor.java:74 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.processor.element.AbstractElementTagProcessor.process( AbstractElementTagProcessor.java:95 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process( ProcessorConfigurationUtils.java:633 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement( ProcessorTemplateHandler.java:1314 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.OpenElementTag.beHandled( OpenElementTag.java:205 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.Model.process( Model.java:282 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.Model.process( Model.java:290 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.IteratedGatheringModelProcessable.processIterationModel( IteratedGatheringModelProcessable.java:367 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.IteratedGatheringModelProcessable.process( IteratedGatheringModelProcessable.java:221 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.ProcessorTemplateHandler.handleCloseElement( ProcessorTemplateHandler.java:1640 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.CloseElementTag.beHandled( CloseElementTag.java:139 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.TemplateModel.process( TemplateModel.java:136 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.TemplateManager.parseAndProcess( TemplateManager.java:592 ) ~[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:1406 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.DispatcherServlet.processDispatchResult( DispatcherServlet.java:1150 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.DispatcherServlet.doDispatch( DispatcherServlet.java:1089 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.DispatcherServlet.doService( DispatcherServlet.java:965 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.FrameworkServlet.processRequest( FrameworkServlet.java:1006 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.FrameworkServlet.doGet( FrameworkServlet.java:898 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at javax.servlet.http.HttpServlet.service( HttpServlet.java:529 ) ~[tomcat-embed-core-9.0.74.jar: 4.0.FR ] at org.springframework.web.servlet.FrameworkServlet.service( FrameworkServlet.java:883 ) ~[spring-webmvc-5.3.27.jar:5.3.27] at javax.servlet.http.HttpServlet.service( HttpServlet.java:623 ) ~[tomcat-embed-core-9.0.74.jar: 4.0.FR ] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:209 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.websocket.server.WsFilter.doFilter( WsFilter.java:51 ) ~[tomcat-embed-websocket-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:178 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.springframework.web.filter.RequestContextFilter.doFilterInternal( RequestContextFilter.java:100 ) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:178 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.springframework.web.filter.FormContentFilter.doFilterInternal( FormContentFilter.java:93 ) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:178 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal( CharacterEncodingFilter.java:201 ) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:178 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardWrapperValve.invoke( StandardWrapperValve.java:167 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardContextValve.invoke( StandardContextValve.java:90 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.authenticator.AuthenticatorBase.invoke( AuthenticatorBase.java:481 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:130 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.valves.ErrorReportValve.invoke( ErrorReportValve.java:93 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardEngineValve.invoke( StandardEngineValve.java:74 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.connector.CoyoteAdapter.service( CoyoteAdapter.java:343 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.coyote.http11.Http11Processor.service( Http11Processor.java:389 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.coyote.AbstractProcessorLight.process( AbstractProcessorLight.java:63 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process( AbstractProtocol.java:926 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.net .NioEndpoint$SocketProcessor.doRun( NioEndpoint.java:1791 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.net.SocketProcessorBase.run ( SocketProcessorBase.java:52 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1191 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:659 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( TaskThread.java:61 ) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at java.base/java.lang.Thread.run( Thread.java:834 ) ~[na:na] users 에 문제가있는거같은데 아무리봐도 뭐가 문제인지 모르겠어요 똑같이 복붙해도 그대로이고
안녕하세요! 테스트 강의가 드문데 정말 친절하게 잘 알려주셔서 감사하게 듣고 있습니다 :) 아직 강의를 다 들은 것은 아니지만 강의 내용 중 궁금한 것이 있어 질문 드립니다. 제가 테스트를 제대로 공부해본 적이 없어 혼자서 독학을 하며 공부했던 단위테스트는 주로 Mock과 항상 연관지어 설명이 되어 있었습니다. 통합테스트(@SpringBootTest)는 스프링 컨테이너를 띄우고 bean으로 등록된 모든 빈을 가지고 테스트를 하는 것인데 반해, 단위테스트는 해당 계층(Layer)을 테스트할 때 꼭 필요한 bean만 가지고 와서 최소 단위(메서드나 클래스)로 테스트를 진행한다고 저는 알고 있었습니다. 그래서 예를 들어 Service 계층 테스트를 진행할 때면 Repository에 관련된 bean들은 Mockito 등을 사용해서 Mock을 만들고 InjectMocks를 해준다는 식으로 저는 공부를 하고 테스트 코드를 작성한 경험이 있습니다. 그런데 오늘 강의에서 강사님이 설명해주시는 내용을 듣다보니 @SpringBootTest 와 같은 어노테이션과 상관없이 단위테스트를 진행하시는 것 같다는 인상을 받았습니다. Order에 대한 테스트를 진행하실 때도 단위테스트라는 언급을 하셨고, OrderSerivice에 대한 테스트를 진행하실 때도 @SpringBootTest를 사용하고 있지만 단위테스트를 하신다고 표현을 하시더라구요. 혹시 통합테스트와 단위테스트를 구분하는 강사님만의 방법이 있는 것인지 궁금합니다! 장문 글 읽어주셔서 감사합니다!
안녕하세요 2번째 학습중인데 기존에 있던 docker-server는 알려주신 대로 docker pull edowon0623/docker:no_iptables 이미지로 정상적으로 잘 동작을 하는것을 확인하였습니다 그런데 ansible-server 같은 경우에는 기존과 같이 docker 기동이 안되고 있습니다 이부분도 수정된 이미지를 올려주실수 있으신가요??