비밀번호를 해시 할 때 스프링 시큐리티의 패스워드 인코더가 해시를 하는데 랜덤한 솔트값을 주어서 해시를 한다고 알고있습니다. 그렇다면 해시할때마다 값이 달라지는데 matches 함수로 어떻게 비교를 하는 것 인가용? 정확한 matches의 내부 동작이 궁금합니다. 랜덤한 솔트값 자체를 해시된 비밀번호가 가지고 있어 잘라서 확인하는지? 아니면 다른 것인지 궁금합니다. 고수님들의 답변을 부탁드립니다.
인스턴스 클릭 후 보안 탭에서 보안그룹 설정 을 바꿔줘야 합니다. 기본 설정이 인바운드 규칙에 TCP만 오픈되어있습니다. Actions 보안> 보안 그룹 id 클릭 > >인바운드 규칙 > 인바운드 규칙 편집 > 규칙 추가 >HTTP, HTTPS 추가 : 소스 -> 사용자지정 : 내IP >규칙 저장
안녕하세요 강사님!! RxJava 강의 열심히 듣고있습니다. 다름이 아니라 Merge 함수를 실행할 때 Observable을 merge() 결합할 때 interval로 설정한 시간만큼 통지시점에 따라 순차적으로 데이터가 통지된다고 하셨는데 제 코드에서는 정상적으로 동작하지 않는 것 같아서 질문 드립니다. 1.결과값을 보면 스레드 할당이 제대로 안되는 것 같은데 merge말고 다른 부분에 문제가 있는 건가요?? 결과값도 실행할 때마다 바뀝니다.. 2. 저는 RxJava3 으로 설정해서 사용 중인데 변경된 부분이 있어서 그럴까요?? 공식문서를 찾아봐도 merge에 관한 변경점은 못찾았습니다ㅠㅠ
발단은 MemberRepository 의 테스트 입니다. Test 로직을 작성후 실행하니 IllegalStateException 에러 , BeanCreationException 에러 , ServiceException 에러 , HibernateException 에러가 발생했고, Test 뿐아니라 Application.run 을 작동시켜도 동일한 문제가 발생됩니다. H2 연결 문제인것같은데 H2 는 무료강의인 Spring 입문편에서 한번 사용해본적이 있습니다. 이때는 문제없이 잘 사용되었구요, 이번에는 콘솔을 실행까지는 잘 됬는데 연결을 끊고 다시 접속할 때 작동이 안되고, 콘솔창을 꺼버리고 터미널에서 다시 접속하니 url 의 key 값이 사라져버리는 문제가 생겼습니다.. 이후로 아무리 접속해봐도 key 값이 나타나지 않아서 h2 를 삭제하고 다시 다운로드를 했는데 이번에는 파일이 test로 생성이되고, jpashop.mv .db 로 파일명을 바꾸면 된다고 예전 질문을 봐서 이 방법을 수없이 해보며 재부팅을 했습니다 ㅜㅜ 결과적으로 파일 이름을 바꾸면 콘솔페이지에 접속이 안되고 localhost 의 key 값도 없어지더라구요. 그래서 application.yml 의 url 을 test url 로 변경했고 h2 문제는 해결됬지만 Test 를 실행할때의 에러는 동일하게 발생되네요.. <에러> java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:98 ) at org.springframework.test.context.support .DefaultTestContext.getApplicationContext( DefaultTestContext.java:124 ) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary( ServletTestExecutionListener.java:190 ) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance( ServletTestExecutionListener.java:132 ) at org.springframework.test.context.TestContextManager.prepareTestInstance( TestContextManager.java:248 ) at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance( SpringExtension.java:138 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8( ClassBasedTestDescriptor.java:363 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable( ClassBasedTestDescriptor.java:368 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9( ClassBasedTestDescriptor.java:363 ) at java.base/java.util.stream.ReferencePipeline$3$1.accept( ReferencePipeline.java:195 ) at java.base/java.util.stream.ReferencePipeline$2$1.accept( ReferencePipeline.java:177 ) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining( ArrayList.java:1655 ) at java.base/java.util.stream.AbstractPipeline.copyInto( AbstractPipeline.java:484 ) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto( AbstractPipeline.java:474 ) at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining( StreamSpliterators.java:312 ) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining( Streams.java:735 ) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining( Streams.java:734 ) at java.base/java.util.stream.ReferencePipeline$Head.forEach( ReferencePipeline.java:658 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors( ClassBasedTestDescriptor.java:362 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6( ClassBasedTestDescriptor.java:283 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance( ClassBasedTestDescriptor.java:282 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4( ClassBasedTestDescriptor.java:272 ) at java.base/java.util.Optional.orElseGet( Optional.java:369 ) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5( ClassBasedTestDescriptor.java:271 ) at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances( TestInstancesProvider.java:31 ) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0( TestMethodTestDescriptor.java:102 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare( TestMethodTestDescriptor.java:101 ) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare( TestMethodTestDescriptor.java:66 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$prepare$2( NodeTestTask.java:123 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.prepare( NodeTestTask.java:123 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:90 ) at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.submit( SameThreadHierarchicalTestExecutorService.java:35 ) at org.junit.platform.engine.support .hierarchical.HierarchicalTestExecutor.execute( HierarchicalTestExecutor.java:57 ) at org.junit.platform.engine.support .hierarchical.HierarchicalTestEngine.execute( HierarchicalTestEngine.java:54 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:107 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:88 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0( EngineExecutionOrchestrator.java:54 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams( EngineExecutionOrchestrator.java:67 ) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:52 ) at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:114 ) at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:86 ) at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute( DefaultLauncherSession.java:86 ) at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute( SessionPerRequestLauncher.java:53 ) at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs( JUnit5IdeaTestRunner.java:57 ) 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.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1804 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:620 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:335 ) at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:333 ) at org.springframework.beans.factory.support .AbstractBeanFactory.getBean( AbstractBeanFactory.java:208 ) at org.springframework.context.support .AbstractApplicationContext.getBean( AbstractApplicationContext.java:1154 ) at org.springframework.context.support .AbstractApplicationContext.finishBeanFactoryInitialization( AbstractApplicationContext.java:908 ) at org.springframework.context.support .AbstractApplicationContext.refresh( AbstractApplicationContext.java:583 ) at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:731 ) at org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:408 ) at org.springframework.boot.SpringApplication.run ( SpringApplication.java:307 ) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext( SpringBootContextLoader.java:136 ) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal( DefaultCacheAwareContextLoaderDelegate.java:141 ) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:90 ) ... 71 more Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService( AbstractServiceRegistryImpl.java:275 ) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService( AbstractServiceRegistryImpl.java:237 ) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService( AbstractServiceRegistryImpl.java:214 ) at org.hibernate.id .factory.internal.DefaultIdentifierGeneratorFactory.injectServices( DefaultIdentifierGeneratorFactory.java:175 ) at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies( AbstractServiceRegistryImpl.java:286 ) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService( AbstractServiceRegistryImpl.java:243 ) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService( AbstractServiceRegistryImpl.java:214 ) at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>( InFlightMetadataCollectorImpl.java:173 ) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete( MetadataBuildingProcess.java:127 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata( EntityManagerFactoryBuilderImpl.java:1460 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:1494 ) at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory( SpringHibernateJpaPersistenceProvider.java:58 ) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory( LocalContainerEntityManagerFactoryBean.java:365 ) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory( AbstractEntityManagerFactoryBean.java:409 ) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet( AbstractEntityManagerFactoryBean.java:396 ) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet( LocalContainerEntityManagerFactoryBean.java:341 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.invokeInitMethods( AbstractAutowireCapableBeanFactory.java:1863 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1800 ) ... 86 more Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect( DialectFactoryImpl.java:100 ) at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect( DialectFactoryImpl.java:54 ) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService( JdbcEnvironmentInitiator.java:138 ) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService( JdbcEnvironmentInitiator.java:35 ) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService( StandardServiceRegistryImpl.java:101 ) at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService( AbstractServiceRegistryImpl.java:263 ) ... 103 more <Member> <Member Repository> <application> <MemberRepositoryTest>
ModelViewSet APIView urls 현재 유저페이지를 구현하고있습니다. 프로필 수정과 프로필의 디테일 정보를 보여주는 APIView를 만들고 로그인한 유저가 작성한 게시글을 보여주는 PostList view도 따로 만들얻는데 문득 이런 생각이 들더라고요 "ModelView을 커스텀하면 한번에 끝나는거 아닌가??" 그래서 수정해보려는데 문제가 생깁니다. 정규표현화한 username을 파라미터로 viewSet에 넘겨야 하는데 그 방법을 모르겠어요. 또 get_queryset에서도 username을 인자로 받아서 queryset.filter(author=username) 처럼 활용가능한지도 알고싶습니다.
■ 질문 남기실 때 꼭! 참고해주세요. - 먼저 유사한 질문이 있었는지 검색해주세요. - 궁금한 부분이 있으시면 해당 강의의 타임라인 부분을 표시해주시면 좋습니다. - HTML, CSS, JQUERY 코드 소스를 텍스트 형태로 첨부해주시고 스크린샷도 첨부해주세요. - 다운로드가 필요한 파일은 해당 강의의 마지막 섹션에 모두 있습니다. 13분대 쯤에 이해가 되지 않는 부분이 있어 질문 드립니다. .gnb a 에 relative를 주고, .gnb a span 에 absolute를 주면 a와 span의 넓이 높이 값이 같으니까 기본으로 딱 left: 0 top: 0 에 붙잖아요. 왜 span에 text-align을 주는게 아니라 a 에 text-align을 줘서 span이 함께 정렬되어 삐져나가게 하고 다시 position을 left:0;, top:0; 으로 맞춰주는 걸까요????
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. List의 반복문 강의 4분에 int 형 변수의 범위가 잘못된거 같습니다 -2^31 ~ 2^31 + 1 이 아니라 -1이지 않나요???
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 저희가 만든 회원가입 페이지에서 새로운 멤버를 등록하면 아래와 같은 오류가 발생합니다. insert into member(name) values(?) [23502-200] at org.h2.message.DbException.getJdbcSQLException( DbException.java:459 ) 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.table.Column.validateConvertUpdateSequence( Column.java:374 ) at org.h2.table.Table.validateConvertUpdateSequence( Table.java:845 ) at org.h2.command.dml.Insert.insertRows( Insert.java:187 ) at org.h2.command.dml.Insert.update( Insert.java:151 ) at org.h2.command.CommandContainer.executeUpdateWithGeneratedKeys( CommandContainer.java:272 ) at org.h2.command.CommandContainer.update( CommandContainer.java:191 ) at org.h2.command.Command.executeUpdate( Command.java:251 ) at org.h2.server.TcpServerThread.process( TcpServerThread.java:406 ) at org.h2.server.TcpServerThread.run ( TcpServerThread.java:183 ) at java.base/java.lang.Thread.run( Thread.java:834 ) ] with root cause org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: NULL not allowed for column "ID"; SQL statement: insert into member(name) values(?) [23502-214] at org.h2.message.DbException.getJdbcSQLException( DbException.java:508 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.engine.SessionRemote.readException( SessionRemote.java:637 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.engine.SessionRemote.done( SessionRemote.java:606 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.command.CommandRemote.executeUpdate( CommandRemote.java:227 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal( JdbcPreparedStatement.java:209 ) ~[h2-2.1.214.jar:2.1.214] at org.h2.jdbc.JdbcPreparedStatement.executeUpdate( JdbcPreparedStatement.java:169 ) ~[h2-2.1.214.jar:2.1.214] at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate( ProxyPreparedStatement.java:61 ) ~[HikariCP-4.0.3.jar:na] at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate( HikariProxyPreparedStatement.java ) ~[HikariCP-4.0.3.jar:na] at hello.hellospring.repository.JdbcMemberRepository.save ( JdbcMemberRepository.java:31 ) ~[classes/:na] at hello.hellospring.service.MemberService.join( MemberService.java:24 ) ~[classes/:na] at hello.hellospring.controller.MemberController.create( MemberController.java:31 ) ~[classes/: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:205 ) ~[spring-web-5.3.24.jar:5.3.24] at org.springframework.web.method.support .InvocableHandlerMethod.invokeForRequest( InvocableHandlerMethod.java:150 ) ~[spring-web-5.3.24.jar:5.3.24] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle( ServletInvocableHandlerMethod.java:117 ) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod( RequestMappingHandlerAdapter.java:895 ) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal( RequestMappingHandlerAdapter.java:808 ) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle( AbstractHandlerMethodAdapter.java:87 ) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.DispatcherServlet.doDispatch( DispatcherServlet.java:1071 ) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.DispatcherServlet.doService( DispatcherServlet.java:964 ) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.FrameworkServlet.processRequest( FrameworkServlet.java:1006 ) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.FrameworkServlet.doPost( FrameworkServlet.java:909 ) ~[spring-webmvc-5.3.24.jar:5.3.24] at javax.servlet.http.HttpServlet.service( HttpServlet.java:696 ) ~[tomcat-embed-core-9.0.70.jar: 4.0.FR ] at org.springframework.web.servlet.FrameworkServlet.service( FrameworkServlet.java:883 ) ~[spring-webmvc-5.3.24.jar:5.3.24] at javax.servlet.http.HttpServlet.service( HttpServlet.java:779 ) ~[tomcat-embed-core-9.0.70.jar: 4.0.FR ] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:227 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.websocket.server.WsFilter.doFilter( WsFilter.java:53 ) ~[tomcat-embed-websocket-9.0.70.jar:9.0.70] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:189 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.springframework.web.filter.RequestContextFilter.doFilterInternal( RequestContextFilter.java:100 ) ~[spring-web-5.3.24.jar:5.3.24] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.24.jar:5.3.24] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:189 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.springframework.web.filter.FormContentFilter.doFilterInternal( FormContentFilter.java:93 ) ~[spring-web-5.3.24.jar:5.3.24] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.24.jar:5.3.24] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:189 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal( CharacterEncodingFilter.java:201 ) ~[spring-web-5.3.24.jar:5.3.24] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.24.jar:5.3.24] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:189 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.catalina.core.StandardWrapperValve.invoke( StandardWrapperValve.java:177 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.catalina.core.StandardContextValve.invoke( StandardContextValve.java:97 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.catalina.authenticator.AuthenticatorBase.invoke( AuthenticatorBase.java:541 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:135 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.catalina.valves.ErrorReportValve.invoke( ErrorReportValve.java:92 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.catalina.core.StandardEngineValve.invoke( StandardEngineValve.java:78 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.catalina.connector.CoyoteAdapter.service( CoyoteAdapter.java:360 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.http11.Http11Processor.service( Http11Processor.java:399 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.AbstractProcessorLight.process( AbstractProcessorLight.java:65 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process( AbstractProtocol.java:891 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.net .NioEndpoint$SocketProcessor.doRun( NioEndpoint.java:1784 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.net.SocketProcessorBase.run ( SocketProcessorBase.java:49 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1191 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:659 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( TaskThread.java:61 ) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at java.base/java.lang.Thread.run( Thread.java:834 ) ~[na:na]
안녕하십니까, 스테킹 모델 강의를 듣던 중 최종적으로 예측을 하기 위한 모델 선정 기준이 궁굼하여 문의드립니다. 제가 논문을 읽던 중 논문에서는 릿지회귀나 라쏘를 많이 이용하던데 강의에서는 로지스틱 회귀를 사용한 것으로 기억합니다. 혹시 스테킹 모델을 만들 때 최종 메타모델을 선정하는 기준이 따로 있을까하여 문의드립니다.
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
안녕하세요 선생님, 또 물어볼 게 생겼어요 ㅠㅠ 강의에서 컨트롤러는 테스트를 별도로 작성하지 않았는데 해당 부분을 강의에서 제외하신 이유가 뭔지 궁금합니다. LibraryAppApplicationTest 자바 파일은 코틀린으로 굳이 안바꾸고 Java 빈 폴더를 main에 두고 둘 다 남겨둔 건 서로 호환이 되는 걸 보여주려고 하신 건가요? 지난 번에 제가 JPA 단점을 여쭤봤는데 선생님은 JPA를 안 쓰면 안 좋은 점을 알려주신 것 같아 찾아보니 ^^; 잘못 사용하면 데이터 손실이 발생할 수 있고 (persistence context), 성능에 문제 (n+1)가 생길 수 있다고 하네요. 그만큼 다루기 어려운 부분이 있어 복잡하지 않은 시스템에선 피하는 개발자들도 꽤나 있는 거겠죠? BookLoanRequest.kt에는 data class BookLoanRequest( val userName: String, val bookName: String )로 마지막 String 이후에 comma(,)를 안 찍으셨는데, BookRequest.kt에는 data class BookRequest( val name: String, val type: BookType, ) 마지막에 컴마를 찍어주셨어요. 어느게 더 바람직한 practice인가요? ExceptionUtils 파일 안에 fun <T, ID> CrudRepository<T, ID>.findByIdOrThrow(id: ID): T { 라고 T를 계속 넣어주셨는데, 그게 타입을 유연하게 받고 함수 사용을 하고자 하는 제네릭 개념인거죠? cascade = [CascadeType.ALL], orphanRemoval = true 이해하는 게 어려운 것 같아요.. MutableList<UserLoanHistory> = mutableListOf() 여기서 MutableList는 가변형으로 읽기 쓰기 둘 다 되고, List는 그 반대로 읽기만 되는 거로 확인했는데 그럼 대부분 데이터 POST/UPDATE/DELETE 등에 적용되면 mutable로 가는 거네요? 아직 fundamental를 잡고 있어서 양해 부탁드려요..선생님 설명 기다리겠습니다!