p6spy releases를 확인해보면 1.9.0부터 Spring boot 3을 지원한다고 되어있고 테스트시 로그가 안뜹니다. 다른 질문에서보니 해당 버전이 메이븐에서만 지원되어서 그런 듯 합니다. 그래서 바로 아래 버전인 1.8.1을 사용해서 정상적으로 로그가 뜨는 것을 확인했습니다. 그래서 앞으로 최신 버전으로 했을때 안뜬다면 버전을 내려보시면 좋을 것 같습니다.
아래와 같은 에러가 나서 질문 드립니다. Performing hot restart... Syncing files to device iPhone 13 Pro... Restarted application in 234ms. [VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: Bad state: Tried to read a provider that threw during the creation of its value. The exception occurred during the creation of type HomeViewModel. ══╡ EXCEPTION CAUGHT BY PROVIDER ╞═══════════════════════════════ The following ProviderNotFoundException was thrown: Error: Could not find the correct Provider<PhotoApiRepositoryImpl> above this _InheritedProviderScope<GetPhotosUseCase?> Widget This happens because you used a `BuildContext` that does not include the provider of your choice. There are a few common scenarios: - You added a new provider in your `main.dart` and performed a hot-reload. To fix, perform a hot-restart. - The provider you are trying to read is in a different route. Providers are "scoped". So if you insert of provider inside a route, then other routes will not be able to access that provider. - You used a `BuildContext` that is an ancestor of<…> ======== Exception caught by widgets library ======================================================= The following ProviderNotFoundException was thrown building HomeScreen(dirty, dependencies: [_InheritedProviderScope<HomeViewModel?>], state: _HomeScreenState#f4eba): Error: Could not find the correct Provider<PhotoApiRepositoryImpl> above this _InheritedProviderScope<GetPhotosUseCase?> Widget This happens because you used a `BuildContext` that does not include the provider of your choice. There are a few common scenarios: - You added a new provider in your `main.dart` and performed a hot-reload. To fix, perform a hot-restart. - The provider you are trying to read is in a different route. Providers are "scoped". So if you insert of provider inside a route, then other routes will not be able to access that provider. - You used a `BuildContext` that is an ancestor of the provider you are trying to read. Make sure that _InheritedProviderScope<GetPhotosUseCase?> is under your MultiProvider/Provider<PhotoApiRepositoryImpl>. This usually happens when you are creating a provider and trying to read it immediately. For example, instead of: ``` Widget build(BuildContext context) { return Provider<Example>( create: (_) => Example(), // Will throw a ProviderNotFoundError, because `context` is associated // to the widget that is the parent of `Provider<Example>` child: Text(context.watch<Example>().toString()), ); } ``` consider using `builder` like so: ``` Widget build(BuildContext context) { return Provider<Example>( create: (_) => Example(), // we use `builder` to obtain a new `BuildContext` that has access to the provider builder: (context, child) { // No longer throws return Text(context.watch<Example>().toString()); } ); } ``` If none of these solutions work, consider asking for help on StackOverflow: https://stackoverflow.com/questions/tagged/flutter The relevant error-causing widget was: HomeScreen HomeScreen:file:///Users/seongjin/Desktop/oliver/programming/Flutter/image_search/lib/main.dart:32:19 When the exception was thrown, this was the stack: #0 Provider._inheritedElementOf (package:provider/src/provider.dart:343:7) #1 Provider.of (package:provider/src/provider.dart:293:30) #2 new ProxyProvider.<anonymous closure> (package:provider/src/proxy_provider.dart:162:22) #3 _CreateInheritedProviderState.value (package:provider/src/inherited_provider.dart:767:36) #4 _InheritedProviderScopeElement.value (package:provider/src/inherited_provider.dart:590:33) #5 Provider.of (package:provider/src/provider.dart:303:37) #6 ReadContext.read (package:provider/src/provider.dart:649:21) #7 viewModels.<anonymous closure> (package:image_search/data/di/provider_setup.dart:40:50) #8 _CreateInheritedProviderState.value (package:provider/src/inherited_provider.dart:736:36) #9 _InheritedProviderScopeElement.value (package:provider/src/inherited_provider.dart:590:33) #10 Provider.of (package:provider/src/provider.dart:303:37) #11 WatchContext.watch (package:provider/src/provider.dart:693:21) #12 _HomeScreenState.build (package:image_search/presentation/home/home_screen.dart:44:31) #13 StatefulElement.build (package:flutter/src/widgets/framework.dart:5198:27) #14 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5086:15) #15 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11) #16 Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7) #17 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5068:5) #18 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5242:11) #19 ComponentElement.mount (package:flutter/src/widgets/framework.dart:5062:5) ... Normal element mounting (24 frames) #43 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3971:16) #44 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6570:36) #45 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6582:32) ... Normal element mounting (178 frames) #223 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3971:16) #224 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6570:36) #225 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6582:32) ... Normal element mounting (472 frames) #697 _InheritedProviderScopeElement.mount (package:provider/src/inherited_provider.dart:411:11) ... Normal element mounting (7 frames) #704 SingleChildWidgetElementMixin.mount (package:nested/nested.dart:222:11) ... Normal element mounting (7 frames) #711 _NestedHookElement.mount (package:nested/nested.dart:187:11) ... Normal element mounting (7 frames) #718 _InheritedProviderScopeElement.mount (package:provider/src/inherited_provider.dart:411:11) ... Normal element mounting (7 frames) #725 SingleChildWidgetElementMixin.mount (package:nested/nested.dart:222:11) ... Normal element mounting (7 frames) #732 _NestedHookElement.mount (package:nested/nested.dart:187:11) ... Normal element mounting (7 frames) #739 _InheritedProviderScopeElement.mount (package:provider/src/inherited_provider.dart:411:11) ... Normal element mounting (7 frames) #746 SingleChildWidgetElementMixin.mount (package:nested/nested.dart:222:11) ... Normal element mounting (7 frames) #753 _NestedHookElement.mount (package:nested/nested.dart:187:11) ... Normal element mounting (7 frames) #760 _InheritedProviderScopeElement.mount (package:provider/src/inherited_provider.dart:411:11) ... Normal element mounting (7 frames) #767 SingleChildWidgetElementMixin.mount (package:nested/nested.dart:222:11) ... Normal element mounting (7 frames) #774 _NestedHookElement.mount (package:nested/nested.dart:187:11) ... Normal element mounting (7 frames) #781 _InheritedProviderScopeElement.mount (package:provider/src/inherited_provider.dart:411:11) ... Normal element mounting (7 frames) #788 SingleChildWidgetElementMixin.mount (package:nested/nested.dart:222:11) ... Normal element mounting (7 frames) #795 _NestedHookElement.mount (package:nested/nested.dart:187:11) ... Normal element mounting (7 frames) #802 SingleChildWidgetElementMixin.mount (package:nested/nested.dart:222:11) ... Normal element mounting (27 frames) #829 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3971:16) #830 Element.updateChild (package:flutter/src/widgets/framework.dart:3708:18) #831 RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1240:16) #832 RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:1209:5) #833 RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:1156:18) #834 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2720:19) #835 RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:1155:13) #836 WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:988:7) #837 WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:968:7) #841 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:189:12) (elided 3 frames from class _Timer and dart:async-patch) ==================================================================================================== ======== Exception caught by Flutter framework ===================================================== The following StateError was thrown during a service extension callback for "ext.flutter.platformOverride": Bad state: Tried to read a provider that threw during the creation of its value. The exception occurred during the creation of type HomeViewModel. ══╡ EXCEPTION CAUGHT BY PROVIDER ╞═══════════════════════════════ The following ProviderNotFoundException was thrown: Error: Could not find the correct Provider<PhotoApiRepositoryImpl> above this _InheritedProviderScope<GetPhotosUseCase?> Widget This happens because you used a `BuildContext` that does not include the provider of your choice. There are a few common scenarios: - You added a new provider in your `main.dart` and performed a hot-reload. To fix, perform a hot-restart. - The provider you are trying to read is in a different route. Providers are "scoped". So if you insert of provider inside a route, then other routes will not be able to access that provider. - You used a `BuildContext` that is an ancestor of the provider you are trying to read. Make sure that _InheritedProviderScope<GetPhotosUseCase?> is under your MultiProvider/Provider<PhotoApiRepositoryImpl>. This usually happens when you are creating a provider and trying to read it immediately. For example, instead of: ``` Widget build(BuildContext context) { return Provider<Example>( create: (_) => Example(), // Will throw a ProviderNotFoundError, because `context` is associated // to the widget that is the parent of `Provider<Example>` child: Text(context.watch<Example>().toString()), ); } ``` consider using `builder` like so: ``` Widget build(BuildContext context) { return Provider<Example>( create: (_) => Example(), // we use `builder` to obtain a new `BuildContext` that has access to the provider builder: (context, child) { // No longer throws return Text(context.watch<Example>().toString()); } ); } ``` If none of these solutions work, consider asking for help on StackOverflow: https://stackoverflow.com/questions/tagged/flutter When the exception was thrown, this was the stack: #0 Provider._inheritedElementOf (package:provider/src/provider.dart:343:7) #1 Provider.of (package:provider/src/provider.dart:293:30) #2 new ProxyProvider.<anonymous closure> (package:provider/src/proxy_provider.dart:162:22) #3 _CreateInheritedProviderState.value (package:provider/src/inherited_provider.dart:767:36) #4 _InheritedProviderScopeElement.value (package:provider/src/inherited_provider.dart:590:33) #5 Provider.of (package:provider/src/provider.dart:303:37) #6 ReadContext.read (package:provider/src/provider.dart:649:21) #7 viewModels.<anonymous closure> (package:image_search/data/di/provider_setup.dart:40:50) #8 _CreateInheritedProviderState.value (package:provider/src/inherited_provider.dart:736:36) #9 _InheritedProviderScopeElement.value (package:provider/src/inherited_provider.dart:590:33) #10 Provider.of (package:provider/src/provider.dart:303:37) #11 WatchContext.watch (package:provider/src/provider.dart:693:21) #12 _HomeScreenState.build (package:image_search/presentation/home/home_screen.dart:44:31) #13 StatefulElement.build (package:flutter/src/widgets/framework.dart:5198:27) #14 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5086:15) #15 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11) #16 Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7) #17 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5068:5) #18 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5242:11) #19 ComponentElement.mount (package:flutter/src/widgets/framework.dart:5062:5) ... Normal element mounting (24 frames) #43 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3971:16) #44 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6570:36) #45 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6582:32) ... Normal element mounting (178 frames) #223 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3971:16) #224 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6570:36) #225 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6582:32) ... Normal element mounting (472 frames) #697 _InheritedProviderScopeElement.mount (package:provider/src/inherited_provider.dart:411:11) ... Normal element mounting (7 frames) #704 SingleChildWidgetElementMixin.mount (package:nested/nested.dart:222:11) ... Normal element mounting (7 frames) #711 _NestedHookElement.mount (package:nested/nested.dart:187:11) ... Normal element mounting (7 frames) #718 _InheritedProviderScopeElement.mount (package:provider/src/inherited_provider.dart:411:11) ... Normal element mounting (7 frames) #725 SingleChildWidgetElementMixin.mount (package:nested/nested.dart:222:11) ... Normal element mounting (7 frames) #732 _NestedHookElement.mount (package:nested/nested.dart:187:11) ... Normal element mounting (7 frames) #739 _InheritedProviderScopeElement.mount (package:provider/src/inherited_provider.dart:411:11) ... Normal element mounting (7 frames) #746 SingleChildWidgetElementMixin.mount (package:nested/nested.dart:222:11) ... Normal element mounting (7 frames) #753 _NestedHookElement.mount (package:nested/nested.dart:187:11) ... Normal element mounting (7 frames) #760 _InheritedProviderScopeElement.mount (package:provider/src/inherited_provider.dart:411:11) ... Normal element mounting (7 frames) #767 SingleChildWidgetElementMixin.mount (package:nested/nested.dart:222:11) ... Normal element mounting (7 frames) #774 _NestedHookElement.mount (package:nested/nested.dart:187:11) ... Normal element mounting (7 frames) #781 _InheritedProviderScopeElement.mount (package:provider/src/inherited_provider.dart:411:11) ... Normal element mounting (7 frames) #788 SingleChildWidgetElementMixin.mount (package:nested/nested.dart:222:11) ... Normal element mounting (7 frames) #795 _NestedHookElement.mount (package:nested/nested.dart:187:11) ... Normal element mounting (7 frames) #802 SingleChildWidgetElementMixin.mount (package:nested/nested.dart:222:11) ... Normal element mounting (27 frames) #829 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3971:16) #830 Element.updateChild (package:flutter/src/widgets/framework.dart:3708:18) #831 RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1240:16) #832 RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:1209:5) #833 RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:1156:18) #834 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2720:19) #835 RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:1155:13) #836 WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:988:7) #837 WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:968:7) #841 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:189:12) (elided 3 frames from class _Timer and dart:async-patch) ═════════════════════════════════════════════════════════════════ When the exception was thrown, this was the stack: #0 _CreateInheritedProviderState.value (package:provider/src/inherited_provider.dart:709:7) #1 _InheritedProviderScopeElement.reassemble (package:provider/src/inherited_provider.dart:422:60) #2 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #3 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #4 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #5 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #6 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #7 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #8 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #9 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #10 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #11 _InheritedProviderScopeElement.reassemble (package:provider/src/inherited_provider.dart:420:11) #12 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #13 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #14 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #15 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #16 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #17 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #18 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #19 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #20 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #21 _InheritedProviderScopeElement.reassemble (package:provider/src/inherited_provider.dart:420:11) #22 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #23 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #24 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #25 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #26 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #27 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #28 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #29 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #30 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #31 _InheritedProviderScopeElement.reassemble (package:provider/src/inherited_provider.dart:420:11) #32 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #33 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #34 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #35 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #36 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #37 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #38 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #39 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #40 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #41 _InheritedProviderScopeElement.reassemble (package:provider/src/inherited_provider.dart:420:11) #42 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #43 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #44 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #45 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #46 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #47 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #48 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #49 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #50 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #51 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #52 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #53 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #54 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #55 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #56 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #57 StatefulElement.reassemble (package:flutter/src/widgets/framework.dart:5213:11) #58 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #59 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #60 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #61 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #62 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #63 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #64 Element.reassemble.<anonymous closure> (package:flutter/src/widgets/framework.dart:3434:13) #65 RenderObjectToWidgetElement.visitChildren (package:flutter/src/widgets/binding.dart:1194:14) #66 Element.reassemble (package:flutter/src/widgets/framework.dart:3432:5) #67 BuildOwner.reassemble (package:flutter/src/widgets/framework.dart:3162:12) #68 WidgetsBinding.performReassemble (package:flutter/src/widgets/binding.dart:1008:19) #69 BindingBase.lockEvents (package:flutter/src/foundation/binding.dart:652:41) #70 BindingBase.reassembleApplication (package:flutter/src/foundation/binding.dart:691:12) #71 BindingBase.initServiceExtensions.<anonymous closure>.<anonymous closure> (package:flutter/src/foundation/binding.dart:587:19) #72 BindingBase.registerServiceExtension.<anonymous closure> (package:flutter/src/foundation/binding.dart:936:32) <asynchronous suspension> ==================================================================================================== ======== Exception caught by scheduler library ===================================================== The following _TypeError was thrown during a scheduler callback: type 'Null' is not a subtype of type 'GetPhotosUseCase' in type cast When the exception was thrown, this was the stack: #0 _CreateInheritedProviderState.value (package:provider/src/inherited_provider.dart:789:19) #1 _CreateInheritedProviderState.debugFillProperties (package:provider/src/inherited_provider.dart:806:44) #2 _InheritedProviderScopeElement.debugFillProperties (package:provider/src/inherited_provider.dart:631:20) #3 _InheritedProviderElement.debugFillProperties.<anonymous closure> (package:provider/src/inherited_provider.dart:180:28) #4 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:5138:14) #5 _InheritedProviderElement.debugFillProperties (package:provider/src/inherited_provider.dart:180:5) #6 DiagnosticableNode.builder.<anonymous closure> (package:flutter/src/foundation/diagnostics.dart:2891:17) #7 DiagnosticableNode.builder (package:flutter/src/foundation/diagnostics.dart:2894:8) #8 DiagnosticableNode.getProperties (package:flutter/src/foundation/diagnostics.dart:2908:105) #9 DiagnosticsProperty.toJsonMap (package:flutter/src/foundation/diagnostics.dart:2613:57) #10 DiagnosticsNode.toJsonList.<anonymous closure> (package:flutter/src/foundation/diagnostics.dart:1675:19) #11 MappedListIterable.elementAt (dart:_internal/iterable.dart:415:31) #12 ListIterator.moveNext (dart:_internal/iterable.dart:344:26) #13 new _GrowableList._ofEfficientLengthIterable (dart:core-patch/growable_array.dart:189:27) #14 new _GrowableList.of (dart:core-patch/growable_array.dart:150:28) #15 new List.of (dart:core-patch/array_patch.dart:47:28) #16 ListIterable.toList (dart:_internal/iterable.dart:214:7) #17 DiagnosticsNode.toJsonList (package:flutter/src/foundation/diagnostics.dart:1676:8) #18 DiagnosticsNode.toJsonMap.<anonymous closure> (package:flutter/src/foundation/diagnostics.dart:1637:25) #19 DiagnosticsNode.toJsonMap (package:flutter/src/foundation/diagnostics.dart:1650:6) #20 WidgetInspectorService._nodeToJson (package:flutter/src/widgets/widget_inspector.dart:1652:18) #21 WidgetInspectorService._reportStructuredError (package:flutter/src/widgets/widget_inspector.dart:929:44) #22 FlutterError.reportError (package:flutter/src/foundation/assertions.dart:1185:14) #23 _reportException (package:flutter/src/widgets/framework.dart:6628:16) #24 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2782:11) #25 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:903:21) #26 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:358:5) #27 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1284:15) #28 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1214:9) #29 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1072:5) #30 _invoke (dart:ui/hooks.dart:142:13) #31 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:359:5) #32 _drawFrame (dart:ui/hooks.dart:112:31) ====================================================================================================
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
bottomnavigatorbar만 사용할때와 bottomnavigatorbar와 tabbarview를 사용하는데 physics: NeverScrollableScrollPhysics() 이 조건을 추가하는거랑 어차피 bottomnavigatorbar로만 화면 이동이 가능한데 두개의 차이점이 무엇인지 궁금합니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 카운트 쿼리 분리 부분을 듣는 도중에 카운트 쿼리에 LEFT JOIN이 사용되는 결과를 확인하기 위해 다음처럼 코드를 작성하였습니다. public interface MemberRepository extends JpaRepository<Member, Long> { @Query(value = "select m from Member m left join m.team t") Page<Member> findByAge(int age, Pageable pageable); ... } @Test public void paging() throws Exception { //given memberRepository.save(new Member("member1", 10)); memberRepository.save(new Member("member2", 10)); memberRepository.save(new Member("member3", 10)); memberRepository.save(new Member("member4", 10)); memberRepository.save(new Member("member5", 10)); //when PageRequest pageRequest = PageRequest.of(0, 3, Sort.by(Sort.Direction.ASC, "username")); Page<Member> page = memberRepository.findByAge(10, pageRequest); //then List<Member> content = page.getContent(); assertThat(content.size()).isEqualTo(3); assertThat(page.getTotalElements()).isEqualTo(5); assertThat(page.getNumber()).isEqualTo(0); assertThat(page.getTotalPages()).isEqualTo(2); assertThat(page.isFirst()).isTrue(); assertThat(page.hasNext()).isTrue(); } 그런데 결과는 강의와는 달리 카운트 쿼리에 LEFT JOIN 이 사용되지 않았고, 심지어 JPQL select m from Member m left join m.team t 을 @Query에 작성했음에도 조회 쿼리도 LEFT JOIN을 사용하지 않은 것을 확인했습니다. 이후 스프링 부트 3 이하 버전에서 동일한 코드로 실행해보니 강의와 동일한 결과를 얻을 수 있었습니다. 스프링 부트 3 부터 적용된 스프링 데이터 JPA 에서는 이러한 부분의 최적화를 자동으로 제공하는 것일까요?
안녕하세요. 백엔드 개발자 희망하고 있습니다. 자바 독학 공부 시작했는데 기본문법 예제들은 혼자 짤 수 있는데 객체지향/3 로또 부분부터 어렵네요. 구구단, 별찍기 하다가 로또 구현할 수 있을때까지 공부 방법이 궁금합니다. ㅠ.ㅠ 자바 공부 방법 알려주세요 ㅠㅠㅠ 지금은 강사님 강의 보고 이해가 부족하다는 부분 이론서 보면서 나가고있습니다. 이론서에 나와있는 문제들도 타이핑 하면서 진행하구 있습니다. 길게 코드 작성할 수 있을때까지 자바 공부 방법 알려주세요.
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
table_calendar에서 onRangeSelected를 사용하다가 시작일과 종료일이 2일 이상이 아니라 하루로 기간을 설정하고 싶을 땐 어떻게 해야할지 궁금해서 질문드립니다. 선택한 기간의 시작일과 종료일의 날짜를 다른 페이지로 전달하려고 할 때 시작일만 선택하고 전달해주면 되는 것일까요?
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
provider로 pagination을 하는데 이렇게 전체 데이터를 불러오는 경우를 제외한 카테고리 별로 불러오기 검색으로 불러오기 위의 경우가 있을 때 보통 어떻게 하나요 같은 provider를 쓴다면 state를 초기화하고 prameter를 다르게 하여 불러오나요 아니면 카테고리별 검색 별 provider를 따로 만들어서 불러오나요?
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요. 강사님 페이스북 sns 로그인 기능을 추가하여 앱 사용하고 있었습니다. 현재 안드로이드는 페이스북 로그인 사용 가능하도록, ios는 로그인 아이콘을 숨김 처리하여 사용 하지 못하게 막아 놓은 상태입니다. 이런 sns 로그인 기능의 경우 안드로이드, ios 동일하게 사용하도록 아이콘을 오픈해야하는지와 플랫폼 정책이 있는지 궁금합니다. 감사합니다.
강의 마지막 부분에 StreamSubscription 해제 관련해서 질문드립니다. dispose에서 _subscription?.cancel(); 해주는데 다시 화면에 들어가면 오류가 발생하여 StreamController 의 속성을 boradcast 로 주어 오류를 해결하셧는데 stream 을 해제해야 StreamSubscription 이 해제되어야 할 것 같은데 broadcast 에서는 이전에 구독한게 계속 남아있지 않을까요??
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Authentication 마무리하기 편에서 onPressed: () async { ref .read(userMeProvider.notifier) .login(username: username, password: password); userMeProvider 프로바이더를 쓰고 나서 로그인 하면 로그인이 안되고 에러 메세지에 WRONG_VERSION_NUMBER(tls_record.cc:242)) 이렇게 뜨는데 그냥 작성한 코드 중 어디가 틀린걸까요 ? ㅠㅠ
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
typedef ColorIdSetter = void Function(int id); 정의를 해서 ColorIdSetter는 int id값을 받는 함수라고 이해했습니다. 그리고 아래 코드에서 색상을 누르면 해당 색상의 id 값을 넘겨주는 것까지 이해했습니다 GestureDetector( onTap: () { colorIdSetter(e.id); }, 잘 이해가 되지 않는 부분은, final ColorIdSetter colorIdSetter; 위 코드 처럼 외부에서 받게 되면 아래 코드를 입력할때 (int id) 값을 어떻게 받아 와서 selectedColorId에 id를 넘겨줄 수가 있는 건지 잘 이해가 되지 않습니다. colorIdSetter: (int id) { setState(() { selectedColorId = id; }); }, onTap 메소드 안에서 colorIdSetter( e.id )로 넣어준 id 값이 colorIdSetter: (int id) {} 의 id로 들어가게 되는건가요? 어떻게 그렇게 되는지 몇번을 봐도 이해가 되지 않아서 질문 남깁니다 ㅠㅠㅠ 코드를 계속 보고 있으니까 점점 미궁으로 들어가는 거 같네요,,
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] plugins { id 'org.springframework.boot' version '2.6.5' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' ext["hibernate.version"] = " 5.6.5.Final " configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'javax.validation:validation-api' implementation 'com.fasterxml.jackson.datatype:jackson-datatype-hibernate5' //JdbcTemplate 추가 //implementation 'org.springframework.boot:spring-boot-starter-jdbc' //MyBatis 추가 implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0' //JPA, 스프링 데이터 JPA 추가 implementation 'org.springframework.boot:spring-boot-starter-data-jpa' //Querydsl 추가 implementation 'com.querydsl:querydsl-jpa' annotationProcessor "com.querydsl:querydsl-apt:$ { dependencyManagement.importedProperties['querydsl.version'] } :jpa" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" //H2 데이터베이스 추가 runtimeOnly 'com.h2database:h2' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' //테스트에서 lombok 사용 testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' } tasks.named('test') { useJUnitPlatform() } //querydsl 추가 //def querydslDir = '$buildDir/generated' def querydslDir = "src/main/generated" //clean { // delete file(generated) //} querydsl { library = "com.querydsl:querydsl-apt" jpa = true querydslSourcesDir = querydslDir } sourceSets { main { java { srcDirs = ['src/main/java', querydslDir] } } } compileQuerydsl { options.annotationProcessorPath = configurations.querydsl } configurations { querydsl.extendsFrom compileClasspath } 강사님이 올려주신 내용 + 구글링 + 직접 수정했습니다. 간혹, 빌드는 되는데 generated 파일에 QClass 안보이시는 분들은 queryDsl 저장되는 경로에 $buildDir 대신 'src/main/'으로 해보세요