안녕하세요. 공부를 하다가 궁금한 점이 생겨서 질문 남깁니다. @Async 어노테이션에 대한 질문입니다. 현재 부모(게시글) - 자식(댓글) 의 1대다 단방향 연관관계를 가지는 상황에서 cascade.REMOVE 같은 기능을 사용하면 부모가 삭제될 때 자식을 함께 삭제해 주지만, 부모 우선 삭제하여 응답을 내어주고 자식은 비동기적으로 삭제 처리를 하면 좋지 않을까 생각하여 구현을 해보았는데 에러가 발생하여 질문 드립니다. 연관관계가 맺어져 있는 부모 자식 객체간에 삭제를 할 때는 자식객체가 무조건 먼저 삭제된 후에 부모 객체의 삭제를 진행하는 것이 올바른 서순일까요?
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
(위에 사진은 3d 방향 및 이동 동기화를 성공해서, 뿌듯해서 같이 올려요 ㅎ..ㅎ) 멀티환경에서 3D이동 및 회전을 동기화를 구현할 때, 이전 위치와 현재 위치의 Vector3.magnitude의 차이가 0.1이 나면 이동패킷을 보내줄수있도록 설계를 해서 구현을 했습니다. 혹시 0.1f 차이마다 패킷을 계속 보내는 것도 패킷을 너무 많이 보내는 편인가요? (유저 수는 10명정도가 같은 room에 있도록 만들예정입니다) 항상 감사합니다! 강의를 들으면서 조금씩 바꿔보는데 정말 뿌듯하네요 하하하하하 강의가 너무 유익해요^^
고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
안녕하세요 강사님, ProcessPoolExecutor를 이용해서 아래와 같이 코드를 작성했는데요, return된 pid를 출력해보면 계속 증가하는 모습을 보이는데, python에서 할당받은 pid range 내에서만 반복되는 걸까요??? 이렇게 계속 증가하는게 별다른 문제는 되지 않을까요? try: while True: with ProcessPoolExecutor(max_workers=6) as ex: processes = {} # submit tasks to the pool processes.update({ex.submit(self.hello, time)}) for future in as_completed(processes, timeout=3): # check for a failure if future.exception(): # report progress LOG.error("Failed get %s", processes[future]) data = future.result() module = processes[future] pid = data
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 이러한 말이 뜨는데 뭐가 잘못됐는지 해결이 안되네요. > 작업:compileJava 최신 버전 > 작업:processResources > 작업:classes > 작업:compileTestJava > 작업:processTestResources NO-SOURCE > 작업:testClasses > 작업:test 15:22:54.067 [테스트 작업자] INFO org.springframework. test.context.support .AnnotationConfigContextLoaderUtils -- 테스트 클래스 [jpabook.jpashop.MemberRepositoryTest]에 대한 기본 구성 클래스를 감지할 수 없습니다. MemberRepositoryTest는 @Configuration 주석이 달린 정적, 비공개, 최종 중첩 클래스를 선언하지 않습니다. 15:22:54.231 [테스트 작업자] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- 테스트 클래스 jpabook.jpashop.MemberRepositoryTest에 대한 @SpringBootConfiguration jpabook.jpashop.JpashopApplication을 찾았습니다. ____ _ \\ ___'_ __ ( _)_ \ \ \ \ ( ( )\ __ | '_ | '_| | '_ \ ` | \ \ \ \ \\ __ )| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | =======|_|================|___=___ :: 스프링 부트 :: (v3.1.1) 2023-07-06T15:22:54.935 +09:00 정보 20312 --- [ 테스트 작업자] jpabook.jpashop.MemberRepositoryTest : PID 20312와 함께 Java 17.0.4.1을 사용하여 MemberRepositoryTest 시작(C:\JAPEx\jpashop에서 82103으로 시작) 2023-07-06T15:22:54.937 +09:00 정보 20312 --- [ 테스트 작업자] jpabook.jpashop.MemberRepositoryTest : 활성 프로파일 세트 없음, 기본 프로파일 1개로 대체: "default" 2023-07-06T15:22:55.909+09:00 WARN 20312 - -- [ 테스트 작업자] o.s.w.c.s.GenericWebApplicationContext : 컨텍스트 초기화 중 예외 발생 - 새로 고침 시도 취소: org.springframework.beans.factory.BeanCreationException: 이름이 'memberRepository'인 빈 생성 오류: 지속성 종속성 삽입 실패 2023-07-06T15:22 :55.922+09:00 정보 20312 --- [ 테스트 작업자] .s.b.a.l.ConditionEvaluationReportLogger: ApplicationContext를 시작하는 동안 오류가 발생했습니다. 상태 평가 보고서를 표시하려면 '디버그'를 활성화한 상태에서 응용 프로그램을 다시 실행하십시오. 2023-07-06T15:22:55.945+09:00 ERROR 20312 --- [ Test worker] o.s.b.d.LoggingFailureAnalysisReporter : APPLICATION FAILED TO START 설명: 구성 요소에 찾을 수 없는 'jakarta.persistence.EntityManagerFactory' 유형의 Bean이 필요했습니다. . 조치: 구성에서 'jakarta.persistence.EntityManagerFactory' 유형의 bean 정의를 고려하십시오. ============================ 조건 평가 보고서 =================== ========= 긍정 일치: ----------------- 없음 부정 일치: ----------------- 없음 제외: ----------- 없음 무조건 수업: ---------------------- 없음 2023-07-06T15:22:55.954 +09:00 오류 20312 --- [ 테스트 작업자] o.s.test.context.TestContextManager : TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener]가 테스트 인스턴스 [jpabook.jpashop.MemberRepositoryTest@f1266c6]를 준비하도록 허용하는 동안 예외가 발생했습니다. > Task :compileJava UP-TO-DATE > Task :processResources UP-TO-DATE > Task :classes UP-TO-DATE > Task :compileTestJava > Task :processTestResources NO-SOURCE > Task :testClasses > Task :test 15:36:31.711 [Test worker] INFO org.springframework.test.context.support .AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [jpabook.jpashop.MemberRepositoryTest]: MemberRepositoryTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. 15:36:31.850 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration jpabook.jpashop.JpashopApplication for test class jpabook.jpashop.MemberRepositoryTest . ____ _ /\\ / ___'_ __ ( _)_ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.1.1) 2023-07-06T15:36:32.512+09:00 INFO 24456 --- [ Test worker] jpabook.jpashop.MemberRepositoryTest : Starting MemberRepositoryTest using Java 17.0.4.1 with PID 24456 (started by 82103 in C:\JAPEx\jpashop) 2023-07-06T15:36:32.514+09:00 INFO 24456 --- [ Test worker] jpabook.jpashop.MemberRepositoryTest : No active profile set, falling back to 1 default profile: "default" 2023-07-06T15:36:33.493+09:00 WARN 24456 --- [ Test worker] o.s.w.c.s.GenericWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'memberRepository': Injection of persistence dependencies failed 2023-07-06T15:36:33.505+09:00 INFO 24456 --- [ Test worker] .s.b.a.l.ConditionEvaluationReportLogger : Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2023-07-06T15:36:33.525+09:00 ERROR 24456 --- [ Test worker] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: A component required a bean of type 'jakarta.persistence.EntityManagerFactory' that could not be found. Action: Consider defining a bean of type 'jakarta.persistence.EntityManagerFactory' in your configuration. ============================ CONDITIONS EVALUATION REPORT ============================ Positive matches: ----------------- None Negative matches: ----------------- None Exclusions: ----------- None Unconditional classes: ---------------------- None 2023-07-06T15:36:33.536+09:00 ERROR 24456 --- [ Test worker] o.s.test.context.TestContextManager : Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener] to prepare test instance [jpabook.jpashop.MemberRepositoryTest@64f9f455] java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@7b2ccba5 testClass = jpabook.jpashop.MemberRepositoryTest, locations = [], classes = [jpabook.jpashop.JpashopApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceLocations = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties .PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@79179359, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@4eb386df, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@5a18cd76, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@6d1ef78d, org.springframework.boot.test.context.SpringBootTestAnnotation@cd291c7b], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:143 ) ~[spring-test-6.0.10.jar:6.0.10] at org.springframework.test.context.support .DefaultTestContext.getApplicationContext( DefaultTestContext.java:127 ) ~[spring-test-6.0.10.jar:6.0.10] at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary( ServletTestExecutionListener.java:191 ) ~[spring-test-6.0.10.jar:6.0.10] at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance( ServletTestExecutionListener.java:130 ) ~[spring-test-6.0.10.jar:6.0.10] at org.springframework.test.context.TestContextManager.prepareTestInstance( TestContextManager.java:241 ) ~[spring-test-6.0.10.jar:6.0.10] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest( SpringJUnit4ClassRunner.java:228 ) ~[spring-test-6.0.10.jar:6.0.10] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall( SpringJUnit4ClassRunner.java:289 ) ~[spring-test-6.0.10.jar:6.0.10] at org.junit.internal.runners.model.ReflectiveCallable.run ( ReflectiveCallable.java:12 ) ~[junit-4.13.2.jar:4.13.2] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock( SpringJUnit4ClassRunner.java:291 ) ~[spring-test-6.0.10.jar:6.0.10] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:247 ) ~[spring-test-6.0.10.jar:6.0.10] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:97 ) ~[spring-test-6.0.10.jar:6.0.10] at org.junit.runners.ParentRunner$4.run( ParentRunner.java:331 ) ~[junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner$1.schedule( ParentRunner.java:79 ) ~[junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner.runChildren( ParentRunner.java:329 ) ~[junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner.access$100( ParentRunner.java:66 ) ~[junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner$2.evaluate( ParentRunner.java:293 ) ~[junit-4.13.2.jar:4.13.2] at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate( RunBeforeTestClassCallbacks.java:61 ) ~[spring-test-6.0.10.jar:6.0.10] at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate( RunAfterTestClassCallbacks.java:70 ) ~[spring-test-6.0.10.jar:6.0.10] at org.junit.runners.ParentRunner$3.evaluate( ParentRunner.java:306 ) ~[junit-4.13.2.jar:4.13.2] at org.junit.runners.ParentRunner.run ( ParentRunner.java:413 ) ~[junit-4.13.2.jar:4.13.2] at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run ( SpringJUnit4ClassRunner.java:191 ) ~[spring-test-6.0.10.jar:6.0.10] at org.junit.runner.JUnitCore.run ( JUnitCore.java:137 ) ~[junit-4.13.2.jar:4.13.2] at org.junit.runner.JUnitCore.run ( JUnitCore.java:115 ) ~[junit-4.13.2.jar:4.13.2] at org.junit.vintage.engine.execution.RunnerExecutor.execute( RunnerExecutor.java:42 ) ~[junit-vintage-engine-5.9.3.jar:5.9.3] at org.junit.vintage.engine.VintageTestEngine.executeAllChildren( VintageTestEngine.java:80 ) ~[junit-vintage-engine-5.9.3.jar:5.9.3] at org.junit.vintage.engine.VintageTestEngine.execute( VintageTestEngine.java:72 ) ~[junit-vintage-engine-5.9.3.jar:5.9.3] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:107 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:88 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0( EngineExecutionOrchestrator.java:54 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams( EngineExecutionOrchestrator.java:67 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:52 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:114 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:86 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute( DefaultLauncherSession.java:86 ) ~[junit-platform-launcher-1.8.2.jar:1.8.2] at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses( JUnitPlatformTestClassProcessor.java:110 ) ~[na:na] at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000( JUnitPlatformTestClassProcessor.java:90 ) ~[na:na] at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop( JUnitPlatformTestClassProcessor.java:85 ) ~[na:na] at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop( SuiteTestClassProcessor.java:62 ) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:77 ) ~[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:568 ) ~[na:na] at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:36 ) ~[na:na] at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:24 ) ~[na:na] at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch( ContextClassLoaderDispatch.java:33 ) ~[na:na] at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke( ProxyDispatchAdapter.java:94 ) ~[na:na] at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run( TestWorker.java:193 ) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName( TestWorker.java:129 ) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute( TestWorker.java:100 ) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute( TestWorker.java:60 ) ~[na:na] at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute( ActionExecutionWorker.java:56 ) ~[na:na] at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call ( SystemApplicationClassLoaderWorker.java:113 ) ~[na:na] at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call ( SystemApplicationClassLoaderWorker.java:65 ) ~[na:na] at worker.org.gradle.process.internal.worker.GradleWorkerMain.run ( GradleWorkerMain.java:69 ) ~[gradle-worker.jar:na] at worker.org .gradle.process.internal.worker.GradleWorkerMain.main( GradleWorkerMain.java:74 ) ~[gradle-worker.jar:na] Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'memberRepository': Injection of persistence dependencies failed at org.springframework.orm.jpa.support .PersistenceAnnotationBeanPostProcessor.postProcessProperties( PersistenceAnnotationBeanPostProcessor.java:388 ) ~[spring-orm-6.0.10.jar:6.0.10] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.populateBean( AbstractAutowireCapableBeanFactory.java:1416 ) ~[spring-beans-6.0.10.jar:6.0.10] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:597 ) ~[spring-beans-6.0.10.jar:6.0.10] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:520 ) ~[spring-beans-6.0.10.jar:6.0.10] at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:326 ) ~[spring-beans-6.0.10.jar:6.0.10] at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) ~[spring-beans-6.0.10.jar:6.0.10] at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:324 ) ~[spring-beans-6.0.10.jar:6.0.10] at org.springframework.beans.factory.support .AbstractBeanFactory.getBean( AbstractBeanFactory.java:200 ) ~[spring-beans-6.0.10.jar:6.0.10] at org.springframework.beans.factory.support .DefaultListableBeanFactory.preInstantiateSingletons( DefaultListableBeanFactory.java:973 ) ~[spring-beans-6.0.10.jar:6.0.10] at org.springframework.context.support .AbstractApplicationContext.finishBeanFactoryInitialization( AbstractApplicationContext.java:941 ) ~[spring-context-6.0.10.jar:6.0.10] at org.springframework.context.support .AbstractApplicationContext.refresh( AbstractApplicationContext.java:608 ) ~[spring-context-6.0.10.jar:6.0.10] at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:734 ) ~[spring-boot-3.1.1.jar:3.1.1] at org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:436 ) ~[spring-boot-3.1.1.jar:3.1.1] at org.springframework.boot.SpringApplication.run ( SpringApplication.java:312 ) ~[spring-boot-3.1.1.jar:3.1.1] at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3( SpringBootContextLoader.java:137 ) ~[spring-boot-test-3.1.1.jar:3.1.1] at org.springframework.util.function.ThrowingSupplier.get( ThrowingSupplier.java:58 ) ~[spring-core-6.0.10.jar:6.0.10] at org.springframework.util.function.ThrowingSupplier.get( ThrowingSupplier.java:46 ) ~[spring-core-6.0.10.jar:6.0.10] at org.springframework.boot.SpringApplication.withHook( SpringApplication.java:1406 ) ~[spring-boot-3.1.1.jar:3.1.1] at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run( SpringBootContextLoader.java:545 ) ~[spring-boot-test-3.1.1.jar:3.1.1] at org.springframework.boot.test.context.SpringBootContextLoader.loadContext( SpringBootContextLoader.java:137 ) ~[spring-boot-test-3.1.1.jar:3.1.1] at org.springframework.boot.test.context.SpringBootContextLoader.loadContext( SpringBootContextLoader.java:108 ) ~[spring-boot-test-3.1.1.jar:3.1.1] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal( DefaultCacheAwareContextLoaderDelegate.java:187 ) ~[spring-test-6.0.10.jar:6.0.10] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:119 ) ~[spring-test-6.0.10.jar:6.0.10] ... 55 common frames omitted Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'jakarta.persistence.EntityManagerFactory' available at org.springframework.beans.factory.support .DefaultListableBeanFactory.resolveNamedBean( DefaultListableBeanFactory.java:1247 ) ~[spring-beans-6.0.10.jar:6.0.10] at org.springframework.orm.jpa.support .PersistenceAnnotationBeanPostProcessor.findDefaultEntityManagerFactory( PersistenceAnnotationBeanPostProcessor.java:593 ) ~[spring-orm-6.0.10.jar:6.0.10] at org.springframework.orm.jpa.support .PersistenceAnnotationBeanPostProcessor.findEntityManagerFactory( PersistenceAnnotationBeanPostProcessor.java:557 ) ~[spring-orm-6.0.10.jar:6.0.10] at org.springframework.orm.jpa.support .PersistenceAnnotationBeanPostProcessor$PersistenceElement.resolveEntityManager( PersistenceAnnotationBeanPostProcessor.java:724 ) ~[spring-orm-6.0.10.jar:6.0.10] at org.springframework.orm.jpa.support .PersistenceAnnotationBeanPostProcessor$PersistenceElement.getResourceToInject( PersistenceAnnotationBeanPostProcessor.java:697 ) ~[spring-orm-6.0.10.jar:6.0.10] at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject( InjectionMetadata.java:270 ) ~[spring-beans-6.0.10.jar:6.0.10] at org.springframework.beans.factory.annotation.InjectionMetadata.inject( InjectionMetadata.java:145 ) ~[spring-beans-6.0.10.jar:6.0.10] at org.springframework.orm.jpa.support .PersistenceAnnotationBeanPostProcessor.postProcessProperties( PersistenceAnnotationBeanPostProcessor.java:385 ) ~[spring-orm-6.0.10.jar:6.0.10] ... 77 common frames omitted Failed to load ApplicationContext for [WebMergedContextConfiguration@7b2ccba5 testClass = jpabook.jpashop.MemberRepositoryTest, locations = [], classes = [jpabook.jpashop.JpashopApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceLocations = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties .PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@79179359, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@4eb386df, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@5a18cd76, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@6d1ef78d, org.springframework.boot.test.context.SpringBootTestAnnotation@cd291c7b], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@7b2ccba5 testClass = jpabook.jpashop.MemberRepositoryTest, locations = [], classes = [jpabook.jpashop.JpashopApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceLocations = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties .PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@79179359, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@4eb386df, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@5a18cd76, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@6d1ef78d, org.springframework.boot.test.context.SpringBootTestAnnotation@cd291c7b], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:143 ) at org.springframework.test.context.support .DefaultTestContext.getApplicationContext( DefaultTestContext.java:127 ) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary( ServletTestExecutionListener.java:191 ) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance( ServletTestExecutionListener.java:130 ) at org.springframework.test.context.TestContextManager.prepareTestInstance( TestContextManager.java:241 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest( SpringJUnit4ClassRunner.java:228 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall( SpringJUnit4ClassRunner.java:289 ) at org.junit.internal.runners.model.ReflectiveCallable.run ( ReflectiveCallable.java:12 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock( SpringJUnit4ClassRunner.java:291 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:247 ) 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:191 ) at org.junit.runner.JUnitCore.run ( JUnitCore.java:137 ) at org.junit.runner.JUnitCore.run ( JUnitCore.java:115 ) at org.junit.vintage.engine.execution.RunnerExecutor.execute( RunnerExecutor.java:42 ) at org.junit.vintage.engine.VintageTestEngine.executeAllChildren( VintageTestEngine.java:80 ) at org.junit.vintage.engine.VintageTestEngine.execute( VintageTestEngine.java:72 ) 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.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses( JUnitPlatformTestClassProcessor.java:110 ) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000( JUnitPlatformTestClassProcessor.java:90 ) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop( JUnitPlatformTestClassProcessor.java:85 ) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop( SuiteTestClassProcessor.java:62 ) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:77 ) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) at java.base/java.lang.reflect.Method.invoke( Method.java:568 ) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:36 ) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:24 ) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch( ContextClassLoaderDispatch.java:33 ) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke( ProxyDispatchAdapter.java:94 ) at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run( TestWorker.java:193 ) at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName( TestWorker.java:129 ) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute( TestWorker.java:100 ) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute( TestWorker.java:60 ) at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute( ActionExecutionWorker.java:56 ) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call ( SystemApplicationClassLoaderWorker.java:113 ) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call ( SystemApplicationClassLoaderWorker.java:65 ) at worker.org.gradle.process.internal.worker.GradleWorkerMain.run ( GradleWorkerMain.java:69 ) at worker.org .gradle.process.internal.worker.GradleWorkerMain.main( GradleWorkerMain.java:74 ) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'memberRepository': Injection of persistence dependencies failed at app//org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessProperties( PersistenceAnnotationBeanPostProcessor.java:388 ) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean( AbstractAutowireCapableBeanFactory.java:1416 ) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:597 ) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:520 ) at app//org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:326 ) at app//org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) at app//org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:324 ) at app//org.springframework.beans.factory.support.AbstractBeanFactory.getBean( AbstractBeanFactory.java:200 ) at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons( DefaultListableBeanFactory.java:973 ) at app//org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization( AbstractApplicationContext.java:941 ) at app//org.springframework.context.support.AbstractApplicationContext.refresh( AbstractApplicationContext.java:608 ) at app//org.springframework.boot.SpringApplication.refresh( SpringApplication.java:734 ) at app//org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:436 ) at app//org.springframework.boot.SpringApplication.run( SpringApplication.java:312 ) at app//org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3( SpringBootContextLoader.java:137 ) at app//org.springframework.util.function.ThrowingSupplier.get( ThrowingSupplier.java:58 ) at app//org.springframework.util.function.ThrowingSupplier.get( ThrowingSupplier.java:46 ) at app//org.springframework.boot.SpringApplication.withHook( SpringApplication.java:1406 ) at app//org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run( SpringBootContextLoader.java:545 ) at app//org.springframework.boot.test.context.SpringBootContextLoader.loadContext( SpringBootContextLoader.java:137 ) at app//org.springframework.boot.test.context.SpringBootContextLoader.loadContext( SpringBootContextLoader.java:108 ) at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal( DefaultCacheAwareContextLoaderDelegate.java:187 ) at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:119 ) ... 55 more Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'jakarta.persistence.EntityManagerFactory' available at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean( DefaultListableBeanFactory.java:1247 ) at app//org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findDefaultEntityManagerFactory( PersistenceAnnotationBeanPostProcessor.java:593 ) at app//org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findEntityManagerFactory( PersistenceAnnotationBeanPostProcessor.java:557 ) at app//org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.resolveEntityManager( PersistenceAnnotationBeanPostProcessor.java:724 ) at app//org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.getResourceToInject( PersistenceAnnotationBeanPostProcessor.java:697 ) at app//org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject( InjectionMetadata.java:270 ) at app//org.springframework.beans.factory.annotation.InjectionMetadata.inject( InjectionMetadata.java:145 ) at app//org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessProperties( PersistenceAnnotationBeanPostProcessor.java:385 ) ... 77 more MemberRepositoryTest > testMember FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:143 Caused by: org.springframework.beans.factory.BeanCreationException at PersistenceAnnotationBeanPostProcessor.java:388 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException at DefaultListableBeanFactory.java:1247 1 test completed, 1 failed > Task :test FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///C:/JAPEx/jpashop/build/reports/tests/test/index.html * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 4s 4 actionable tasks: 2 executed, 2 up-to-date
수고가 많으십니다. 좋은 플랫폼에서 질 좋은 많은 수의 강의를 잘 듣고 있습니다. 항상 감사하게 생각하고 있지만서도, 한 가지 아쉬운 점이 있습니다. 현재 많은 지식이 홍수처럼 범람하고, 매순간 새로운 지식들이 태동하고, 기존의 지식들이 급변하는 이때에 수많은 수의 강의를 수강하려는데 동영상 재생 배속이 2배까지 밖에 지원 되지 않아서 지식의 학습 속도가 더뎌지고 있습니다. 항상 감사합니다만, 3배, 4배로 재생할 수 있는 기능을 만들어 주셨으면 좋겠어요. 무료 강의 들어보고, 유료 강의도 결제할까 고민하고 있는데 바쁜 직장인으로 유료 강의를 다 수강하기에는 시간이 많이 부족합니다. 만드실 생각이 없으시면 제가 코드 드리겠습니다. 제발 기능 추가해주세요. 간절한 마음으로 읍소합니다. 기능이 추가되면 눈물을 머금고 유료 강의도 기쁜 마음으로 결제하겠습니다. 항상 고생이 많으십니다. 감사합니다.
선생님 안녕하세요. 색션9 한 파일에 있는 분리된 시트 자동 취합하기 강의내용 실습시 쿼리로 취합표를 만든 뒤 원본데이터에 내용을 추가한 뒤 저장하려고 하면 "공유 위반 때문에 변경내용을 '파일명.xlsx'에 저장할 수 없습니다. 다른 파일에 저장해보십시오. 라는 문구가 뜨고 저장이 되질 않습니다. 혹시 해결방법이 있을까요?
메모리를 페이지 단위로 관리하신다고 하셨는데 VirtualAlloc을 통해서 int를 따로 2번을 요청하게 되면 위에 그림처럼 int가 연속적으로 배치되는게 아니라 페이지 단위만큼 떨어지게 메모리가 배치가 되는건가요?? 만약에 저렇게 배치가 된다면 size를 그대로 넣지 않고 직접 구해서 넣는 이유가 뭔가요??
셀레니움 최신 버전에서 service를 쓸 수 없는데, 이제 다음과 같은 코드에서 option 기능은 어떻게 코드를 짜면 될까요? 아래 코드에서 service 부분을 빼야할까요? 셀레니움 버전 업그레이드와 함께 코드에서 수정할 부분이 있을까요? 위는 코드랑 출력 결과이고 아래는 코드만 따로 옮긴 것입니다. from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager import time user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" options = Options() options.add_experimantal_option("detach", True) options.add_argument(f"user-agent={user_agent}") # options.add_argument("--start-maximized") # options.add_argument("--start-fullscreen") options.add_argument("window-size=500, 500") # driver = webdriver.Chrome("../driver/chromedriver.exe") service = Service(ChromeDriverManager().install()) driver = webdriver.Chrome(service=service, options=options) url = "https://naver.com" driver.get(url)
안녕하세요. 관계 연산자 3번 예시를 공부하다 문자를 입력받으면 무한루프에 빠지는 정확한 이유가 뭔지 궁금해서 질문드립니다. 변수 guess는 double type이기 때문에 문자를 받을 수 없는 것은 이해했습니다. 그런데 왜 문자를 넣으면 무한루프에 빠지는지 모르겠습니다. 디버깅을 해보니 guess는 처음 입력된 '3'이 계속 저장돼 있는데, 이것과 관련이 있는 걸까요?
[질문 내용] 상품주문_재고수량초과 테스트할 때 Junit5 사용해서 expected가 없습니다. import static org.junit.jupiter.api.Assertions.*; @Test public void 상품주문_재고수량초과() throws Exception { //given Member member = createMember(); Item item = createBook("시골", 10000, 10); int orderCount = 11; //when //then assertThrows(NotEnoughStockException.class, ()-> orderService.order(member.getId(), item.getId(), orderCount)); } 그래서 이렇게 작성해서 초록불은 떴는데 적절하게 작성했는지 궁금합니다. 더 좋은 예시가 있는 지 궁금합니다.
셀레니움과 크롬 실치를 했는데 실행하려고 하니 오류 페이지가 뜹니다 C:\Users\USER\miniconda3\python.exe C:\Users\USER\PycharmProjects\pythonProject1\video.py Traceback (most recent call last): File "C:\Users\USER\PycharmProjects\pythonProject1\video.py", line 3, in <module> driver = webdriver.Chrome("./chromedriver") File "C:\Users\USER\miniconda3\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 73, in __init__ self.service.start() File "C:\Users\USER\miniconda3\lib\site-packages\selenium\webdriver\common\service.py", line 72, in start self.process = subprocess.Popen(cmd, env=self.env, File "C:\Users\USER\miniconda3\lib\subprocess.py", line 971, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "C:\Users\USER\miniconda3\lib\subprocess.py", line 1456, in _execute_child hp, ht, pid, tid = _winapi.CreateProcess(executable, args, OSError: [WinError 193] %1은(는) 올바른 Win32 응용 프로그램이 아닙니다 종료 코드 1(으)로 완료된 프로세스
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] JAVA_HOME 도 설정했고 다른 답변들 보고 하라는대로 설정했는데도 build가 안돼요 ㅠ 뭐가 문제일까요 <에러화면> <각종 설정들>
리눅스 노베이스 수강생입니다. Ubuntu에서 redis와 mysql을 띄워보는 명령어를 사용할때, redis와 mysql이 설치되면서(?) 로컬(하드드라이브) 용량을 엄청 많이 잡아먹고있는거 같아요(pull된것들?) 처음 도커,우분투를 깔았을때 하드가 95기가 이상 남아있었던것으로 기억하는데, 이것,저것 깔리고 난 후 85기가남았습니다. 거의 한 10기가 이상이 설치된거같은데... 명령어 실행 이후 설치된 이미지?라이브러리? 들을 모두 다 지우고 DOCKER를 처음 깔았을 때 당시의 초기세팅으로 수정하고싶습니다.. 어떤명령어들로 처리해야하나요? 도커 데스크탑에서 모든 리소스를 다 제거해도... 하드드라이브 용량을 계속 잡아먹고있어요 도와주세요... (노트북이라 용량이별로없음 85/250) 명령어든, 직접 경로가서 삭제하는거든 뭐든 알려주십쇼... + 윈도우 11에 설치해서 강의를 따라했습니다. ubuntu를 실행할때 뜨는 프롬프트창에 명령어를 입력했습니다. root@사용자명:~# 이 상태로 명령어를 쳤는데 ~가 어디경론지 모르겠네요
안녕하세요. LoadXml 메서드를 보면 각종 Loader 클래스들이 활용되고 있는 것 같고, ILoader 인터페이스를 상속받고 있는 것으로 보입니다. 근데 에셋 폴더 어디서도 이 Loader 클래스들을 찾을 수가 없어 문의드립니다. 어디 가야 찾을 수 있나요? 어떻게 작동하는 건지도 간략히 힌트 주시면 감사하겠습니다.
고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
여러개의 process를 ProcessPoolExecutor 로 돌리거나 multiprocessing.Process 로 만들었을때, 특정 Process에서 문제가 발생하여 죽거나 zombie 가 되었을 때 보통 어떻게 처리하시나요? > 예를 들면 여러 process를 이용해서 컴퓨터를 monitoring 하는 프로그램을 짠다고 했을 때, 특정 monitoring process중 하나가 문제가 생겼을 때 해당 process를 살리거나 다시 실행하거나? 여러 process들을 사용하고 있을 때 해당 process들이 잘 돌고 있는지, Queue와 Process를 모니터링할때는 어떤 방법을 사용하시나요?