학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요? 스프링 부트 & JPA 강의 듣고 있는 수강생입니다. MemberRepository 테스트 중 SQLGrammarException이 발생하여 테스트가 실패합니다. MemberRepository의 save 메서드 아래 em.persist(member) 부분 때문에 발생한 것으로 보이는데 그 이유를 잘 모르겠습니다. 영한님의 야생형 루트에 따라 JPA 수업을 아직 안듣고, 바로 실전으로 들어와서 그런제 jpa에 대한 기초가 약합니다. 로그 남깁니다. 도움 부탁드리겠습니다. 2023-02-06 11:19:45.353 INFO 10204 --- [ main] o.s.t.c.transaction.TransactionContext : Began transaction (1) for test context [DefaultTestContext@6d167f58 testClass = MemberRepositoryTest, testInstance = jpabook.jpashop.MemberRepositoryTest@7682bf66, testMethod = testMember@MemberRepositoryTest, testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@3403e2ac testClass = MemberRepositoryTest, locations = '{}', classes = '{class jpabook.jpashop.JpashopApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@38102d01, org.springframework.boot.test.autoconfigure.properties .PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@610f7aa, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@2118cddf, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@76ed1b7c, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@1d8bd0de, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@293a5bf6], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.populatedRequestContextHolder' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.resetRequestContextHolder' -> true]]; transaction manager [org.springframework.orm.jpa.JpaTransactionManager@78b8f818]; rollback [false] 2023-02-06 11:19:45.625 DEBUG 10204 --- [ main] org.hibernate.SQL : call next value for hibernate_sequence 2023-02-06 11:19:45.627 WARN 10204 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 90036, SQLState: 90036 2023-02-06 11:19:45.628 ERROR 10204 --- [ main] o.h.engine.jdbc.spi.SqlExceptionHelper : Sequence "HIBERNATE_SEQUENCE" not found; SQL statement: call next value for hibernate_sequence [90036-200] 2023-02-06 11:19:45.666 WARN 10204 --- [ main] o.s.test.context.TestContextManager : Caught exception while invoking 'afterTestMethod' callback on TestExecutionListener [org.springframework.test.context.transaction.TransactionalTestExecutionListener@20435c40] for test method [public void jpabook.jpashop.MemberRepositoryTest.testMember()] and test instance [jpabook.jpashop.MemberRepositoryTest@7682bf66] org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back because it has been marked as rollback-only at org.springframework.transaction.support .AbstractPlatformTransactionManager.processCommit( AbstractPlatformTransactionManager.java:752 ) ~[spring-tx-5.3.2.jar:5.3.2] at org.springframework.transaction.support .AbstractPlatformTransactionManager.commit( AbstractPlatformTransactionManager.java:711 ) ~[spring-tx-5.3.2.jar:5.3.2] at org.springframework.test.context.transaction.TransactionContext.endTransaction( TransactionContext.java:131 ) ~[spring-test-5.3.2.jar:5.3.2] at org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod( TransactionalTestExecutionListener.java:255 ) ~[spring-test-5.3.2.jar:5.3.2] at org.springframework.test.context.TestContextManager.afterTestMethod( TestContextManager.java:441 ) ~[spring-test-5.3.2.jar:5.3.2] at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate( RunAfterTestMethodCallbacks.java:94 ) ~[spring-test-5.3.2.jar:5.3.2] at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate( SpringRepeat.java:84 ) ~[spring-test-5.3.2.jar:5.3.2] at org.junit.runners.ParentRunner.runLeaf( ParentRunner.java:366 ) ~[junit-4.13.1.jar:4.13.1] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:251 ) ~[spring-test-5.3.2.jar:5.3.2] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:97 ) ~[spring-test-5.3.2.jar:5.3.2] at org.junit.runners.ParentRunner$4.run( ParentRunner.java:331 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner$1.schedule( ParentRunner.java:79 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner.runChildren( ParentRunner.java:329 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner.access$100( ParentRunner.java:66 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner$2.evaluate( ParentRunner.java:293 ) ~[junit-4.13.1.jar:4.13.1] at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate( RunBeforeTestClassCallbacks.java:61 ) ~[spring-test-5.3.2.jar:5.3.2] at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate( RunAfterTestClassCallbacks.java:70 ) ~[spring-test-5.3.2.jar:5.3.2] at org.junit.runners.ParentRunner$3.evaluate( ParentRunner.java:306 ) ~[junit-4.13.1.jar:4.13.1] at org.junit.runners.ParentRunner.run ( ParentRunner.java:413 ) ~[junit-4.13.1.jar:4.13.1] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run ( SpringJUnit4ClassRunner.java:190 ) ~[spring-test-5.3.2.jar:5.3.2] at org.junit.runner.JUnitCore.run ( JUnitCore.java:137 ) ~[junit-4.13.1.jar:4.13.1] at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs( JUnit4IdeaTestRunner.java:69 ) ~[junit-rt.jar:na] at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute( IdeaTestRunner.java:38 ) ~[junit-rt.jar:na] at com.intellij.rt.execution.junit.TestsRepeater.repeat( TestsRepeater.java:11 ) ~[idea_rt.jar:na] at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs( IdeaTestRunner.java:35 ) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart( JUnitStarter.java:235 ) ~[junit-rt.jar:na] at com.intellij.rt.junit.JUnitStarter.main( JUnitStarter.java:54 ) ~[junit-rt.jar:na] org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement; SQL [call next value for hibernate_sequence]; nested exception is org.hibernate.exception.SQLGrammarException: could not prepare statement at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException( HibernateJpaDialect.java:259 ) at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible( HibernateJpaDialect.java:233 ) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible( AbstractEntityManagerFactoryBean.java:551 ) at org.springframework.dao.support .ChainedPersistenceExceptionTranslator.translateExceptionIfPossible( ChainedPersistenceExceptionTranslator.java:61 ) at org.springframework.dao.support .DataAccessUtils.translateIfNecessary( DataAccessUtils.java:242 ) at org.springframework.dao.support .PersistenceExceptionTranslationInterceptor.invoke( PersistenceExceptionTranslationInterceptor.java:152 ) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( ReflectiveMethodInvocation.java:186 ) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed( CglibAopProxy.java:749 ) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept( CglibAopProxy.java:691 ) at jpabook.jpashop.MemberRepository$$EnhancerBySpringCGLIB$$2b302b5c.save(<generated>) at jpabook.jpashop.MemberRepositoryTest.testMember( MemberRepositoryTest.java:26 ) 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.junit.runners.model.FrameworkMethod$1.runReflectiveCall( FrameworkMethod.java:59 ) at org.junit.internal.runners.model.ReflectiveCallable.run ( ReflectiveCallable.java:12 ) at org.junit.runners.model.FrameworkMethod.invokeExplosively( FrameworkMethod.java:56 ) at org.junit.internal.runners.statements.InvokeMethod.evaluate( InvokeMethod.java:17 ) at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate( RunBeforeTestExecutionCallbacks.java:74 ) at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate( RunAfterTestExecutionCallbacks.java:84 ) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate( RunBeforeTestMethodCallbacks.java:75 ) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate( RunAfterTestMethodCallbacks.java:86 ) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate( SpringRepeat.java:84 ) at org.junit.runners.ParentRunner.runLeaf( ParentRunner.java:366 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:251 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:97 ) at org.junit.runners.ParentRunner$4.run( ParentRunner.java:331 ) at org.junit.runners.ParentRunner$1.schedule( ParentRunner.java:79 ) at org.junit.runners.ParentRunner.runChildren( ParentRunner.java:329 ) at org.junit.runners.ParentRunner.access$100( ParentRunner.java:66 ) at org.junit.runners.ParentRunner$2.evaluate( ParentRunner.java:293 ) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate( RunBeforeTestClassCallbacks.java:61 ) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate( RunAfterTestClassCallbacks.java:70 ) at org.junit.runners.ParentRunner$3.evaluate( ParentRunner.java:306 ) at org.junit.runners.ParentRunner.run ( ParentRunner.java:413 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run ( SpringJUnit4ClassRunner.java:190 ) at org.junit.runner.JUnitCore.run ( JUnitCore.java:137 ) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs( JUnit4IdeaTestRunner.java:69 ) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute( IdeaTestRunner.java:38 ) at com.intellij.rt.execution.junit.TestsRepeater.repeat( TestsRepeater.java:11 ) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs( IdeaTestRunner.java:35 ) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart( JUnitStarter.java:235 ) at com.intellij.rt.junit.JUnitStarter.main( JUnitStarter.java:54 ) Caused by: org.hibernate.exception.SQLGrammarException: could not prepare statement at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert( SQLExceptionTypeDelegate.java:63 ) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert( StandardSQLExceptionConverter.java:42 ) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert( SqlExceptionHelper.java:113 ) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement( StatementPreparerImpl.java:186 ) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareStatement( StatementPreparerImpl.java:75 ) at org.hibernate.id .enhanced.SequenceStructure$1.getNextValue( SequenceStructure.java:93 ) at org.hibernate.id .enhanced.NoopOptimizer.generate( NoopOptimizer.java:40 ) at org.hibernate.id .enhanced.SequenceStyleGenerator.generate( SequenceStyleGenerator.java:523 ) at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId( AbstractSaveEventListener.java:115 ) at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient( DefaultPersistEventListener.java:185 ) at org.hibernate.event.internal.DefaultPersistEventListener.onPersist( DefaultPersistEventListener.java:128 ) at org.hibernate.event.internal.DefaultPersistEventListener.onPersist( DefaultPersistEventListener.java:55 ) at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener( EventListenerGroupImpl.java:102 ) at org.hibernate.internal.SessionImpl.firePersist( SessionImpl.java:720 ) at org.hibernate.internal.SessionImpl.persist( SessionImpl.java:706 ) 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.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke( SharedEntityManagerCreator.java:311 ) at com.sun.proxy.$Proxy86.persist(Unknown Source) at jpabook.jpashop.MemberRepository.save ( MemberRepository.java:16 ) at jpabook.jpashop.MemberRepository$$FastClassBySpringCGLIB$$a3e1a60b.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke( MethodProxy.java:218 ) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint( CglibAopProxy.java:771 ) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( ReflectiveMethodInvocation.java:163 ) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed( CglibAopProxy.java:749 ) at org.springframework.dao.support .PersistenceExceptionTranslationInterceptor.invoke( PersistenceExceptionTranslationInterceptor.java:137 ) ... 38 more Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Sequence "HIBERNATE_SEQUENCE" not found; SQL statement: call next value for hibernate_sequence [90036-200] at org.h2.message.DbException.getJdbcSQLException( DbException.java:576 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:429 ) at org.h2.message.DbException.get( DbException.java:205 ) at org.h2.message.DbException.get( DbException.java:181 ) at org.h2.command.Parser.readSequence( Parser.java:7678 ) at org.h2.command.Parser.readTermWithIdentifier( Parser.java:4593 ) at org.h2.command.Parser.readTerm( Parser.java:4311 ) at org.h2.command.Parser.readFactor( Parser.java:3343 ) at org.h2.command.Parser.readSum( Parser.java:3330 ) at org.h2.command.Parser.readConcat( Parser.java:3305 ) at org.h2.command.Parser.readCondition( Parser.java:3108 ) at org.h2.command.Parser.readExpression( Parser.java:3059 ) at org.h2.command.Parser.parseCall( Parser.java:6480 ) at org.h2.command.Parser.parsePrepared( Parser.java:905 ) at org.h2.command.Parser.parse( Parser.java:843 ) at org.h2.command.Parser.parse( Parser.java:815 ) at org.h2.command.Parser.prepareCommand( Parser.java:738 ) at org.h2.engine.Session.prepareLocal( Session.java:657 ) at org.h2.server.TcpServerThread.process( TcpServerThread.java:278 ) at org.h2.server.TcpServerThread.run ( TcpServerThread.java:183 ) at java.base/java.lang.Thread.run( Thread.java:834 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:576 ) at org.h2.engine.SessionRemote.done( SessionRemote.java:611 ) at org.h2.command.CommandRemote.prepare( CommandRemote.java:85 ) at org.h2.command.CommandRemote.<init>( CommandRemote.java:51 ) at org.h2.engine.SessionRemote.prepareCommand( SessionRemote.java:481 ) at org.h2.jdbc.JdbcConnection.prepareCommand( JdbcConnection.java:1235 ) at org.h2.jdbc.JdbcPreparedStatement.<init>( JdbcPreparedStatement.java:76 ) at org.h2.jdbc.JdbcConnection.prepareStatement( JdbcConnection.java:352 ) at com.zaxxer.hikari.pool.ProxyConnection.prepareStatement( ProxyConnection.java:337 ) at com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement( HikariProxyConnection.java ) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$1.doPrepare( StatementPreparerImpl.java:90 ) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement( StatementPreparerImpl.java:176 ) ... 62 more org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back because it has been marked as rollback-only at org.springframework.transaction.support .AbstractPlatformTransactionManager.processCommit( AbstractPlatformTransactionManager.java:752 ) at org.springframework.transaction.support .AbstractPlatformTransactionManager.commit( AbstractPlatformTransactionManager.java:711 ) at org.springframework.test.context.transaction.TransactionContext.endTransaction( TransactionContext.java:131 ) at org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod( TransactionalTestExecutionListener.java:255 ) at org.springframework.test.context.TestContextManager.afterTestMethod( TestContextManager.java:441 ) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate( RunAfterTestMethodCallbacks.java:94 ) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate( SpringRepeat.java:84 ) at org.junit.runners.ParentRunner.runLeaf( ParentRunner.java:366 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:251 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:97 ) at org.junit.runners.ParentRunner$4.run( ParentRunner.java:331 ) at org.junit.runners.ParentRunner$1.schedule( ParentRunner.java:79 ) at org.junit.runners.ParentRunner.runChildren( ParentRunner.java:329 ) at org.junit.runners.ParentRunner.access$100( ParentRunner.java:66 ) at org.junit.runners.ParentRunner$2.evaluate( ParentRunner.java:293 ) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate( RunBeforeTestClassCallbacks.java:61 ) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate( RunAfterTestClassCallbacks.java:70 ) at org.junit.runners.ParentRunner$3.evaluate( ParentRunner.java:306 ) at org.junit.runners.ParentRunner.run ( ParentRunner.java:413 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run ( SpringJUnit4ClassRunner.java:190 ) at org.junit.runner.JUnitCore.run ( JUnitCore.java:137 ) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs( JUnit4IdeaTestRunner.java:69 ) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute( IdeaTestRunner.java:38 ) at com.intellij.rt.execution.junit.TestsRepeater.repeat( TestsRepeater.java:11 ) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs( IdeaTestRunner.java:35 ) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart( JUnitStarter.java:235 ) at com.intellij.rt.junit.JUnitStarter.main( JUnitStarter.java:54 )
안녕하세요. 토비님 강의 너무 잘듣고 있습니다. 강의를 듣다가 궁금한점이 생겨서 질문남깁니다. 우선 저는 독립형 스프링 애플리케이션까지 들었습니다. 강의를 들으면서 스프링과 스프링 부트의 차이점과 이점은 이해가 쉽게 됐습니다. 하지만 서블릿 웹서버와 스프링 웹서버의 차이점에 대해서는 명확하게 이해하지 못했습니다. 독립 실행형 서블릿 애플리케이션으로 웹 서버를 띄우는 것보다 독립 실행형 스프링 애플리케이션으로 웹 서버를 구성하는 것이 어떤 장점이 있는지 궁금합니다. 제가 이해한 바로는 서블릿 웹서버는 HTTP요청이 들어오면 컨테이너가 서블릿을 Mapping하고 서블릿이 요청을 처리하는 것이고 스프링 웹서버는 서블릿에서 스프링 컨테이너를 이용해서 요청을 처리하는 것입니다. 혹여나 개념을 잘못 이해하고 있거나 뒷 내용에 이것에 대한 내용이 나온다면 알려주시면 감사하겠습니다.
토비님. 안녕하세요! 다름이 아니라 '스프링부트의 @Conditional' 항목을 공부하던 중에 conditional() 테스트 코드가 어떻게 동작할지 생각해보았습니다. 저는 true과 false가 1번씩 호출될 것이라고 추측을 했었는데, true가 3번이 호출되어서 생각과는 다른 결과를 확인하였습니다. 제가 무언가를 잘못 알고 있는 것 같아서 확인해보고 싶습니다. 어떠한 키워드로 알아보면 이것에 대해서 알 수 있을까요? 잘려서 보이지 않는 윗부분의 소스 코드는 강의 내용과 다른 점이 없이 작성되어있습니다.
안녕하세요. 전체 흐름을 보려고 소스를 실행하려고 공유해주신 수업자료를 내려받아서 실행해 보니 실행되지 않습니다. Intellij Ultiamte 에서 열어서 실행했습니다. 클래스가 작성되어 있지 않다고 나옵니다. import com.studyolle.modules.account.QAccount; import com.studyolle.modules.tag.QTag; import com.studyolle.modules.zone.QZone; 이 세 개의 클래스들이 작성되어있지 않습니다. 그리고, QStudy 는 import 구문도 없습니다. 다시 공유해 주시면 좋겠습니다.
addStock, removeStock의 동시성에 대해서 궁금해서 질문글을 찾아보니 동시성 문제가 당연히 발생할 수 있다는 글을 본적이 있습니다. 제가 궁금한 점은 order 클래스내에서 cancel() 메소드를 호출하게 되면, order와 연관된 orderItem 클래스로 들어가서 cancel() 메소드를 호출하게 되고, orderItem과 연관된 Item 클래스로 들어가서 다시 addStock() 메소드를 호출하게 됩니다. 여기서 서로 다른 스레드가 DB에서 같은 데이터(같은 레코드)를 가져오는 것은 알겠지만, 서로 다른 스레드가 똑같은 orderItem 인스턴스를 가져와 공유하게 되서 동시성 문제가 발생하는 것인가요? 영속성 컨텍스트는 각각의 스레드가 지연 로딩으로 서로 다른 EntityManager를 사용하여 서로 다른 트랜잭션을 사용하기 때문에, 같은 레코드를 DB로부터 가져오지만, 1차 캐시에서 인스턴스 생성시 내부 값만 같은 서로 다른 인스턴스로 생성하지 않을까 하는 추측이 생겨 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. gradle실행시 A web-based, searchable dependency report is available by adding the --scan option. Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. See https://docs.gradle.org/7.6/userguide/command_line_interface.html#sec:command_line_warnings BUILD SUCCESSFUL in 678ms 1 actionable task: 1 executed 3:07:08 AM: Execution finished 'dependencies'. 알림이 뜨는데 해결방법이 무엇일까요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 회원 관리 예제 웹 MVC 개발> 회원 웹 기능 - 조회 이 강의에서 선생님의 결과와 제 결과가 다르게 나와서 질문 드립니다. [회원 가입]을 눌러서 spring1, spring2를 등록하시고 [회원 목록] 탭에서 2개의 회원이 등록됨을 보이시는데, 저는 spring1을 등록하고 회원 목록을 들어 가보면 이렇게 1하고 공백으로 나오고 여기서 spring2를 등록하면 이런 페이지가 나오며 인텔리제이에서도 잘 돌아가던 서버의 Run 창에서 오류가 죽 뜹니다. 짧은 지식으로 보기에는 뭐 어디가 null값이다 라는 오류들이 많이 뜨는데 제 선에서는 어디부터 어떻게 만져야 할지 잘 모르겠습니다 ㅠㅠ 아래는 인텔리 Run창에서 뜨는 오류입니다 캡처로 잘리는 부분들을 사진 중간에 남기겠습니다. 2023-02-05T22:19:39.413+09:00 ERROR 2956 --- [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because the return value of "hello.hellospring.domain.Member.getName()" is null] with root cause 2023-02-05T22:26:18.541+09:00 ERROR 2956 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because the return value of "hello.hellospring.domain.Member.getName()" is null] with root cause 2023-02-05T22:27:45.238+09:00 ERROR 2956 --- [nio-8080-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because the return value of "hello.hellospring.domain.Member.getName()" is null] with root cause 참고하셔야 할 파일들의 코드가 있으시면 바로바로 캡처해서 올리겠습니다. '컴포넌트 스캔으로 빈 등록'에서 '자바 코드로 빈 등록'으로 넘어가는 강의에서 직접 코딩을 하다보니 거기에서 오류가 났을지도 모르겠다는 생각도 드네요
안녕하세요 강의 수강 중 프로젝트 폴더를 다른 폴더에 저장하고 싶어서 이동시켰습니다. 그 후 인텔리제이로 프로젝트를 열어보니 폴더가 보이지 않는 오류가 있어 구글링해서 오류를 해결하고자 했는데요. ( 참고했던 블로그: https://solbel.tistory.com/2712) 그 후 다시 확인해 보니 디렉토리 구조도 정상적으로 다 뜨지 않는 것 같고 스프링 프레임워크도 사라진 것 같습니다...ㅠ 일반 자바 프로젝트는 폴더 위치를 옮겨도 문제가 생기지 않았는데 스프링 프로젝트만 이런것인지.. 혹시 해결할 수 있는 방법이 있을까요?
이니셜라이저는 다음처럼 구성했고 인텔리제이 커뮤니티 에디션을 사용해서 프로젝트를 열고 -Ddebug 를 주고 실행했을 때 콘솔 결과는 다음과 같습니다. 오전 8:52:26: Executing ':SpringbootAcApplication.main()'... > Task :compileJava UP-TO-DATE > Task :processResources UP-TO-DATE > Task :classes UP-TO-DATE > Task :SpringbootAcApplication.main() . ____ _ /\\ / ___'_ __ (_)_ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.8) 2023-02-05 08:52:27.975 INFO 28856 --- [ main] c.e.s.SpringbootAcApplication : Starting SpringbootAcApplication using Java 11.0.18 on DESKTOP-010ET15 with PID 28856 (G:\Workspace_2023\Server\springboot-ac\build\classes\java\main started by doseon in G:\Workspace_2023\Server\springboot-ac) 2023-02-05 08:52:27.978 INFO 28856 --- [ main] c.e.s.SpringbootAcApplication : No active profile set, falling back to 1 default profile: "default" 2023-02-05 08:52:27.978 DEBUG 28856 --- [ main] o.s.boot.SpringApplication : Loading source class com.example.springbootac.SpringbootAcApplication 2023-02-05 08:52:28.628 DEBUG 28856 --- [ main] ConditionEvaluationReportLoggingListener : ============================ CONDITIONS EVALUATION REPORT ============================ Positive matches: ----------------- AopAutoConfiguration matched: - @ConditionalOnProperty (spring.aop.auto=true) matched (OnPropertyCondition) AopAutoConfiguration.ClassProxyingConfiguration matched: - @ConditionalOnMissingClass did not find unwanted class 'org.aspectj.weaver.Advice' (OnClassCondition) - @ConditionalOnProperty (spring.aop.proxy-target-class=true) matched (OnPropertyCondition) GenericCacheConfiguration matched: - Cache org.springframework.boot.autoconfigure.cache.GenericCacheConfiguration automatic cache type (CacheCondition) LifecycleAutoConfiguration#defaultLifecycleProcessor matched: - @ConditionalOnMissingBean (names: lifecycleProcessor; SearchStrategy: current) did not find any beans (OnBeanCondition) NoOpCacheConfiguration matched: - Cache org.springframework.boot.autoconfigure.cache.NoOpCacheConfiguration automatic cache type (CacheCondition) PropertyPlaceholderAutoConfiguration#propertySourcesPlaceholderConfigurer matched: - @ConditionalOnMissingBean (types: org.springframework.context.support.PropertySourcesPlaceholderConfigurer; SearchStrategy: current) did not find any beans (OnBeanCondition) SimpleCacheConfiguration matched: - Cache org.springframework.boot.autoconfigure.cache.SimpleCacheConfiguration automatic cache type (CacheCondition) SqlInitializationAutoConfiguration matched: - @ConditionalOnProperty (spring.sql.init.enabled) matched (OnPropertyCondition) - NoneNestedConditions 0 matched 1 did not; NestedCondition on SqlInitializationAutoConfiguration.SqlInitializationModeCondition.ModeIsNever @ConditionalOnProperty (spring.sql.init.mode=never) did not find property 'mode' (SqlInitializationAutoConfiguration.SqlInitializationModeCondition) TaskExecutionAutoConfiguration matched: - @ConditionalOnClass found required class 'org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor' (OnClassCondition) TaskExecutionAutoConfiguration#applicationTaskExecutor matched: - @ConditionalOnMissingBean (types: java.util.concurrent.Executor; SearchStrategy: all) did not find any beans (OnBeanCondition) TaskExecutionAutoConfiguration#taskExecutorBuilder matched: - @ConditionalOnMissingBean (types: org.springframework.boot.task.TaskExecutorBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition) TaskSchedulingAutoConfiguration matched: - @ConditionalOnClass found required class 'org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler' (OnClassCondition) TaskSchedulingAutoConfiguration#taskSchedulerBuilder matched: - @ConditionalOnMissingBean (types: org.springframework.boot.task.TaskSchedulerBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition) Negative matches: ----------------- ActiveMQAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.jms.ConnectionFactory' (OnClassCondition) AopAutoConfiguration.AspectJAutoProxyingConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.aspectj.weaver.Advice' (OnClassCondition) ArtemisAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.jms.ConnectionFactory' (OnClassCondition) BatchAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.batch.core.launch.JobLauncher' (OnClassCondition) Cache2kCacheConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.cache2k.Cache2kBuilder' (OnClassCondition) CacheAutoConfiguration: Did not match: - @ConditionalOnBean (types: org.springframework.cache.interceptor.CacheAspectSupport; SearchStrategy: all) did not find any beans of type org.springframework.cache.interceptor.CacheAspectSupport (OnBeanCondition) Matched: - @ConditionalOnClass found required class 'org.springframework.cache.CacheManager' (OnClassCondition) CacheAutoConfiguration.CacheManagerEntityManagerFactoryDependsOnPostProcessor: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean' (OnClassCondition) - Ancestor org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration did not match (ConditionEvaluationReport.AncestorsMatchedCondition) CaffeineCacheConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.github.benmanes.caffeine.cache.Caffeine' (OnClassCondition) CassandraAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.datastax.oss.driver.api.core.CqlSession' (OnClassCondition) CassandraDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.datastax.oss.driver.api.core.CqlSession' (OnClassCondition) CassandraReactiveDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.datastax.oss.driver.api.core.CqlSession' (OnClassCondition) CassandraReactiveRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.cassandra.ReactiveSession' (OnClassCondition) CassandraRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.datastax.oss.driver.api.core.CqlSession' (OnClassCondition) ClientHttpConnectorAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.function.client.WebClient' (OnClassCondition) CodecsAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.http.codec.CodecConfigurer' (OnClassCondition) CouchbaseAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Cluster' (OnClassCondition) CouchbaseCacheConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Cluster' (OnClassCondition) CouchbaseDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Bucket' (OnClassCondition) CouchbaseReactiveDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Cluster' (OnClassCondition) CouchbaseReactiveRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Cluster' (OnClassCondition) CouchbaseRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.couchbase.client.java.Bucket' (OnClassCondition) DataSourceAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition) DataSourceInitializationConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.jdbc.datasource.init.DatabasePopulator' (OnClassCondition) DataSourceTransactionManagerAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.jdbc.core.JdbcTemplate' (OnClassCondition) DispatcherServletAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.web.servlet.DispatcherServlet' (OnClassCondition) EhCacheCacheConfiguration: Did not match: - @ConditionalOnClass did not find required class 'net.sf.ehcache.Cache' (OnClassCondition) ElasticsearchDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate' (OnClassCondition) ElasticsearchRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.elasticsearch.client.Client' (OnClassCondition) ElasticsearchRestClientAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.elasticsearch.client.RestClientBuilder' (OnClassCondition) EmbeddedLdapAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.unboundid.ldap.listener.InMemoryDirectoryServer' (OnClassCondition) EmbeddedMongoAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.mongodb.MongoClientSettings' (OnClassCondition) EmbeddedWebServerFactoryCustomizerAutoConfiguration: Did not match: - @ConditionalOnWebApplication did not find reactive or servlet web application classes (OnWebApplicationCondition) ErrorMvcAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.servlet.Servlet' (OnClassCondition) ErrorWebFluxAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.config.WebFluxConfigurer' (OnClassCondition) FlywayAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.flywaydb.core.Flyway' (OnClassCondition) FreeMarkerAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'freemarker.template.Configuration' (OnClassCondition) GraphQlAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GraphQlQueryByExampleAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GraphQlQuerydslAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GraphQlRSocketAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GraphQlReactiveQueryByExampleAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GraphQlReactiveQuerydslAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GraphQlWebFluxAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GraphQlWebFluxSecurityAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GraphQlWebMvcAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GraphQlWebMvcSecurityAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) GroovyTemplateAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'groovy.text.markup.MarkupTemplateEngine' (OnClassCondition) GsonAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.google.gson.Gson' (OnClassCondition) H2ConsoleAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.h2.server.web.WebServlet' (OnClassCondition) HazelcastAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.hazelcast.core.HazelcastInstance' (OnClassCondition) HazelcastCacheConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.hazelcast.core.HazelcastInstance' (OnClassCondition) HazelcastJpaDependencyAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.hazelcast.core.HazelcastInstance' (OnClassCondition) HibernateJpaAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.persistence.EntityManager' (OnClassCondition) HttpEncodingAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.web.filter.CharacterEncodingFilter' (OnClassCondition) HttpHandlerAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.http.server.reactive.HttpHandler' (OnClassCondition) HttpMessageConvertersAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.http.converter.HttpMessageConverter' (OnClassCondition) HypermediaAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.hateoas.EntityModel' (OnClassCondition) InfinispanCacheConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.infinispan.spring.embedded.provider.SpringEmbeddedCacheManager' (OnClassCondition) InfluxDbAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.influxdb.InfluxDB' (OnClassCondition) IntegrationAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.integration.config.EnableIntegration' (OnClassCondition) JCacheCacheConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.cache.Caching' (OnClassCondition) JacksonAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.fasterxml.jackson.databind.ObjectMapper' (OnClassCondition) JdbcRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.jdbc.repository.config.AbstractJdbcConfiguration' (OnClassCondition) JdbcTemplateAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.jdbc.core.JdbcTemplate' (OnClassCondition) JerseyAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.servlet.ServletRegistration' (OnClassCondition) JmsAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.jms.Message' (OnClassCondition) JmxAutoConfiguration: Did not match: - @ConditionalOnProperty (spring.jmx.enabled=true) did not find property 'enabled' (OnPropertyCondition) Matched: - @ConditionalOnClass found required class 'org.springframework.jmx.export.MBeanExporter' (OnClassCondition) JndiConnectionFactoryAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.jms.core.JmsTemplate' (OnClassCondition) JndiDataSourceAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition) JooqAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.jooq.DSLContext' (OnClassCondition) JpaRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.jpa.repository.JpaRepository' (OnClassCondition) JsonbAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.json.bind.Jsonb' (OnClassCondition) JtaAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.transaction.Transaction' (OnClassCondition) KafkaAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.kafka.core.KafkaTemplate' (OnClassCondition) LdapAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.ldap.core.ContextSource' (OnClassCondition) LdapRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.ldap.repository.LdapRepository' (OnClassCondition) LiquibaseAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'liquibase.change.DatabaseChange' (OnClassCondition) MailSenderAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.activation.MimeType' (OnClassCondition) MailSenderValidatorAutoConfiguration: Did not match: - @ConditionalOnSingleCandidate did not find required type 'org.springframework.mail.javamail.JavaMailSenderImpl' (OnBeanCondition) MessageSourceAutoConfiguration: Did not match: - ResourceBundle did not find bundle with basename messages (MessageSourceAutoConfiguration.ResourceBundleCondition) MongoAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.mongodb.client.MongoClient' (OnClassCondition) MongoDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.mongodb.client.MongoClient' (OnClassCondition) MongoReactiveAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.mongodb.reactivestreams.client.MongoClient' (OnClassCondition) MongoReactiveDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.mongodb.reactivestreams.client.MongoClient' (OnClassCondition) MongoReactiveRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.mongodb.reactivestreams.client.MongoClient' (OnClassCondition) MongoRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.mongodb.client.MongoClient' (OnClassCondition) MultipartAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.servlet.MultipartConfigElement' (OnClassCondition) MustacheAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.samskivert.mustache.Mustache' (OnClassCondition) Neo4jAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.neo4j.driver.Driver' (OnClassCondition) Neo4jDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.neo4j.driver.Driver' (OnClassCondition) Neo4jReactiveDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.neo4j.driver.Driver' (OnClassCondition) Neo4jReactiveRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.neo4j.driver.Driver' (OnClassCondition) Neo4jRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.neo4j.driver.Driver' (OnClassCondition) NettyAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'io.netty.util.NettyRuntime' (OnClassCondition) OAuth2ClientAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.security.config.annotation.web.configuration.EnableWebSecurity' (OnClassCondition) OAuth2ResourceServerAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.security.oauth2.server.resource.BearerTokenAuthenticationToken' (OnClassCondition) PersistenceExceptionTranslationAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor' (OnClassCondition) ProjectInfoAutoConfiguration#buildProperties: Did not match: - @ConditionalOnResource did not find resource '${spring.info.build.location:classpath:META-INF/build-info.properties}' (OnResourceCondition) ProjectInfoAutoConfiguration#gitProperties: Did not match: - GitResource did not find git info at classpath:git.properties (ProjectInfoAutoConfiguration.GitResourceAvailableCondition) QuartzAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.quartz.Scheduler' (OnClassCondition) R2dbcAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'io.r2dbc.spi.ConnectionFactory' (OnClassCondition) R2dbcDataAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.r2dbc.core.R2dbcEntityTemplate' (OnClassCondition) R2dbcInitializationConfiguration: Did not match: - @ConditionalOnClass did not find required classes 'io.r2dbc.spi.ConnectionFactory', 'org.springframework.r2dbc.connection.init.DatabasePopulator' (OnClassCondition) R2dbcRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'io.r2dbc.spi.ConnectionFactory' (OnClassCondition) R2dbcTransactionManagerAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.r2dbc.connection.R2dbcTransactionManager' (OnClassCondition) RSocketGraphQlClientAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'graphql.GraphQL' (OnClassCondition) RSocketMessagingAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'io.rsocket.RSocket' (OnClassCondition) RSocketRequesterAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'io.rsocket.RSocket' (OnClassCondition) RSocketSecurityAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.security.rsocket.core.SecuritySocketAcceptorInterceptor' (OnClassCondition) RSocketServerAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'io.rsocket.core.RSocketServer' (OnClassCondition) RSocketStrategiesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'io.netty.buffer.PooledByteBufAllocator' (OnClassCondition) RabbitAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.rabbitmq.client.Channel' (OnClassCondition) ReactiveElasticsearchRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient' (OnClassCondition) ReactiveElasticsearchRestClientAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'reactor.netty.http.client.HttpClient' (OnClassCondition) ReactiveMultipartAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.http.codec.multipart.DefaultPartHttpMessageReader' (OnClassCondition) ReactiveOAuth2ClientAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'reactor.core.publisher.Flux' (OnClassCondition) ReactiveOAuth2ResourceServerAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity' (OnClassCondition) ReactiveSecurityAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'reactor.core.publisher.Flux' (OnClassCondition) ReactiveUserDetailsServiceAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.security.authentication.ReactiveAuthenticationManager' (OnClassCondition) ReactiveWebServerFactoryAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.http.ReactiveHttpInputMessage' (OnClassCondition) RedisAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.redis.core.RedisOperations' (OnClassCondition) RedisCacheConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.redis.connection.RedisConnectionFactory' (OnClassCondition) RedisReactiveAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'reactor.core.publisher.Flux' (OnClassCondition) RedisRepositoriesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.redis.repository.configuration.EnableRedisRepositories' (OnClassCondition) RepositoryRestMvcAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration' (OnClassCondition) RestTemplateAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.web.client.RestTemplate' (OnClassCondition) Saml2RelyingPartyAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistrationRepository' (OnClassCondition) SecurityAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.security.authentication.DefaultAuthenticationEventPublisher' (OnClassCondition) SecurityFilterAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.security.config.http.SessionCreationPolicy' (OnClassCondition) SendGridAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'com.sendgrid.SendGrid' (OnClassCondition) ServletWebServerFactoryAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.servlet.ServletRequest' (OnClassCondition) SessionAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.session.Session' (OnClassCondition) SolrAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.apache.solr.client.solrj.impl.CloudSolrClient' (OnClassCondition) SpringApplicationAdminJmxAutoConfiguration: Did not match: - @ConditionalOnProperty (spring.application.admin.enabled=true) did not find property 'enabled' (OnPropertyCondition) SpringDataWebAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.data.web.PageableHandlerMethodArgumentResolver' (OnClassCondition) TaskSchedulingAutoConfiguration#scheduledBeanLazyInitializationExcludeFilter: Did not match: - @ConditionalOnBean (names: org.springframework.context.annotation.internalScheduledAnnotationProcessor; SearchStrategy: all) did not find any beans named org.springframework.context.annotation.internalScheduledAnnotationProcessor (OnBeanCondition) TaskSchedulingAutoConfiguration#taskScheduler: Did not match: - @ConditionalOnBean (names: org.springframework.context.annotation.internalScheduledAnnotationProcessor; SearchStrategy: all) did not find any beans named org.springframework.context.annotation.internalScheduledAnnotationProcessor (OnBeanCondition) ThymeleafAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.thymeleaf.spring5.SpringTemplateEngine' (OnClassCondition) TransactionAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.transaction.PlatformTransactionManager' (OnClassCondition) UserDetailsServiceAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.security.authentication.AuthenticationManager' (OnClassCondition) ValidationAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.validation.executable.ExecutableValidator' (OnClassCondition) WebClientAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.function.client.WebClient' (OnClassCondition) WebFluxAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.config.WebFluxConfigurer' (OnClassCondition) WebMvcAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.servlet.Servlet' (OnClassCondition) WebServiceTemplateAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.oxm.Marshaller' (OnClassCondition) WebServicesAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.ws.transport.http.MessageDispatcherServlet' (OnClassCondition) WebSessionIdResolverAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'reactor.core.publisher.Mono' (OnClassCondition) WebSocketMessagingAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer' (OnClassCondition) WebSocketReactiveAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.servlet.Servlet' (OnClassCondition) WebSocketServletAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.servlet.Servlet' (OnClassCondition) XADataSourceAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'javax.transaction.TransactionManager' (OnClassCondition) Exclusions: ----------- None Unconditional classes: ---------------------- org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration org.springframework.boot.autoconfigure.context.LifecycleAutoConfiguration org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration 2023-02-05 08:52:28.659 INFO 28856 --- [ main] c.e.s.SpringbootAcApplication : Started SpringbootAcApplication in 1.188 seconds (JVM running for 1.655) 2023-02-05 08:52:28.666 DEBUG 28856 --- [ main] o.s.b.a.ApplicationAvailabilityBean : Application availability state LivenessState changed to CORRECT 2023-02-05 08:52:28.670 DEBUG 28856 --- [ main] o.s.b.a.ApplicationAvailabilityBean : Application availability state ReadinessState changed to ACCEPTING_TRAFFIC Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. See https://docs.gradle.org/7.6/userguide/command_line_interface.html#sec:command_line_warnings BUILD SUCCESSFUL in 2s 3 actionable tasks: 1 executed, 2 up-to-date 오전 8:52:28: Execution finished ':SpringbootAcApplication.main()'.