묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결C# WPF .NET Core(7.0)
Image Source 관련 질문입니다.
Image Source 사용할때 인터넷 연결 상태에서 빌드한 다음 빌드한 파일을 오프라인 환경에서 실행하면 이미지가 그대로 출력 돼나요? 아니면 이미지 참조가 불가능하니 오류가 발생하나요?
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
예전코드도 배워야 할까요?
안녕하세요, 강의를 듣다가 궁금한점 생겨 문의드리려 합니다.2023년 후로 대거 전체적으로 바뀌었다고 강의에서 배웠는데요.그러면 취업해서 유지보수도 필요하다고 하면 예전 코드도 전체적으로 마스터 해야 취업하는데 큰 도움이 되거나 또는 필수적으로 해야할까요?
-
미해결Flutter 고급 - 현업 수준의 아키텍처
jdk 설정 및 오류
안녕하세요 질문이 2개있습니다. 강의 듣던중 에뮬레이터 실행하니FAILURE: Build failed with an exception.* Where:Build file 'C:\workspace\Flutter\android\app\build.gradle' line: 5* What went wrong:An exception occurred applying plugin request [id: 'dev.flutter.flutter-gradle-plugin']> Failed to apply plugin 'dev.flutter.flutter-gradle-plugin'. > No such property: source for class: java.lang.String* 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.orgBUILD FAILED in 590msError: Gradle task assembleDebug failed with exit code 1 에러가 났는데 뭐가문제일까요?plugins { id "com.android.application" id "kotlin-android" // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id "dev.flutter.flutter-gradle-plugin" } android { namespace = "com.survivalcoding.flutter_recipe_app_course" compileSdk = flutter.compileSdkVersion ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = JavaVersion.VERSION_1_8 } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId = "com.survivalcoding.flutter_recipe_app_course" // You can update the following values to match your application needs. // For more information, see: https://flutter.dev/to/review-gradle-config. minSdk = flutter.minSdkVersion targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName } buildTypes { release { // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, so `flutter run --release` works. signingConfig = signingConfigs.debug } } } flutter { source = "../.." } ============================================================ file > settings > build Tools > gradle 설정 부분에서 jdk 설정부분이 없습니다.PS C:\workspace\Flutter> flutter config --listAll Settings: enable-web: (Not set) enable-linux-desktop: (Not set) enable-macos-desktop: (Not set) enable-windows-desktop: (Not set) enable-android: (Not set) enable-ios: (Not set) enable-fuchsia: (Not set) (Unavailable) enable-custom-devices: (Not set) cli-animations: (Not set) enable-native-assets: (Not set) (Unavailable) enable-flutter-preview: (Not set) (Unavailable) enable-swift-package-manager: (Not set) (Unavailable) jdk-dir: C:\Program Files\Java\jdk-17PS C:\workspace\Flutter> flutter doctor -v[√] Flutter (Channel stable, 3.24.0, on Microsoft Windows [Version 10.0.26100.2314], locale ko-KR) • Flutter version 3.24.0 on channel stable at C:\flutter • Upstream repository https://github.com/flutter/flutter.git • Framework revision 80c2e84975 (8 months ago), 2024-07-30 23:06:49 +0700 • Engine revision b8800d88be • Dart version 3.5.0 • DevTools version 2.37.2[√] Windows Version (Installed version of Windows is version 10 or higher)[√] Android toolchain - develop for Android devices (Android SDK version 35.0.1) • Android SDK at C:\Users\hong\AppData\Local\Android\sdk • Platform android-35, build-tools 35.0.1 • Java binary at: C:\Program Files\Java\jdk-17\bin\java • Java version Java(TM) SE Runtime Environment (build 17.0.14+8-LTS-191) • All Android licenses accepted.[√] Chrome - develop for the web • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe[!] Visual Studio - develop Windows apps (Visual Studio Build Tools 2019 16.11.42) • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools • Visual Studio Build Tools 2019 version 16.11.35425.106 • Windows 10 SDK version 10.0.19041.0 X The current Visual Studio installation is incomplete. Please use Visual Studio Installer to complete the installation or reinstall Visual Studio.[√] Android Studio (version 2024.3) • Android Studio at C:\Program Files\Android\Android Studio • Flutter plugin can be installed from: https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 21.0.5+-12932927-b750.29)[√] VS Code (version 1.96.4) • VS Code at C:\Users\hong\AppData\Local\Programs\Microsoft VS Code • Flutter extension can be installed from: https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter[√] Connected device (4 available) • sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64 • Android 16 (API 36) (emulator) • Windows (desktop) • windows • windows-x64 • Microsoft Windows [Version 10.0.26100.2314] • Chrome (web) • chrome • web-javascript • Google Chrome 134.0.6998.89 • Edge (web) • edge • web-javascript • Microsoft Edge 132.0.2957.127[√] Network resources • All expected network resources are available.! Doctor found issues in 1 category.PS C:\workspace\Flutter> flutter config --list 명령어하면 jdk는 17이고 flutter doctor -v 하면 jdk가 21로잡혀있어서 버전이 다른데 jdk 설정하는부분이 없는데 어떻게하면 오류해결과 jdk 수동설정 가능하게 할 수 있을까요?
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
ProfileView에서 toolbar이용시 문제점 발생, 로직이 이해가 되지 않습니다.
var body: some View { NavigationStack { ScrollView { } } .navigationBarBackButtonHidden() .toolbar { ToolbarItem(placement: .topBarLeading) { Button { dismiss() } label: { Image(systemName: "arrow.backward") .tint(.black) } } } //:TOOLBAR위와 같이 ProfileView에서 body를 정의하셨는데,NavigationStack에 toolbar가 항상 나타나는 것으로 이해가 됩니다.그렇다면, 앱을 실행하고 바로 Profile tab을 누른다면, .toolbar가 자동으로 생성되면서 dismiss()가 작동하지 않는 toolbar가 생기는 상황이 발생했습니다.다시 FeedView로 돌아가면 기존 toolbar는 없어지지 않은채로 "<- : arrow.backward" 가 나타나고,FeedView에서 .overlay { } 로 정의된 NavigationLink를 클릭한다면 toolbar가 두개 생기는 것을 확인할 수 있었습니다. 두 개중 위의 버튼은 작동하지 않으며, 아래의 버튼을 누르면 dismiss()가 작동하여 Stack에 쌓인 ProfileView가 없어지면서 FeedView로 돌아가는 것을 확인할 수 있었습니다. 상황에 따라 toolbar가 보일 수 있도록 따로 설정을 해야하는 것일까요?다시 말해, ProfileView를 Profile을 tab하여 이동하는 경우는 .toolbar가 나타나지 않도록 해야하는 걸까요?
-
미해결Flutter 중급 3편 - 의존성 주입 가이드
DI 에 대해 문의 좀 드립니다.
di 관련해서 문의 좀 드리겠습니다.선생님 강의를 듣고 get_it, injectable 패키지를 사용해서 di 를 실 프로젝트에도 적용 하고 있습니다.여러 singleton 으로 생성 한 여러 usecace들을 한군데 모아 둔 usecases(OrderDetailUseCases) 를 만들어 viewModel 에 주입해서 사용하는 것을 보고 실 프로젝트에도 사용하고 있습니다.아래 처럼요.@singleton class OrderDetailUseCases { final GetOrderDetailUseCase getDetail; final GetGoodsForBasketUseCase getGoodsForBasket; final DeleteOrderUseCase deleteOrder; OrderDetailUseCases( this.getDetail, this.getGoodsForBasket, this.deleteOrder, ); } 그런데 나중에 새로운 usecase(AddOrderUseCase) 가 생겨서 위 OrderDetailUseCases 에 추가하면아래와 같은 오류가 뜹니다.Bad state: GetIt: Object/factory with type OrderDetailUseCases is not registered inside GetIt.(Did you accidentally do GetIt sl=GetIt.instance(); instead of GetIt sl=GetIt.instance;Did you forget to register it?) 기존에 추가 했던 getDetail, getGooodsForBasket usecase 는 잘 사용하고 있습니다분명 build runner 명령어를 실행 해 줬음에도 불구하구요.그래서 DeleteOrderUseCase 는 따로 가져와 viewModel 에 전달해주고 있습니다. 아래처럼요.final orderDetailViewModelProvier = StateNotifierProvider<OrderDetailViewModel, OrderDetailState>((ref) { final useCases = getIt<OrderDetailUseCases>(); final deleteOrderUc = getIt<DeleteOrderUseCase>(); return OrderDetailViewModel( useCases, deleteOrderUc, ); });전 하나의 useCases 에 다 넣고 싶거든요..ㅡ,.ㅡ이게 패키지가 좀 stable 하지 못한 거 같은 느낌인데 이런 경우를 못 보셨는지요?경우가 있다면 어떻게 해법이 있는지 들어보고 싶습니다.
-
미해결Flutter 고급 - 현업 수준의 아키텍처
텍스트 전체입력 후 검색 결과 조회
SearchInputField에서 onChanged를 onSubmitted로만 바꿔주면 키보드에서 return 버튼 눌렀을때 적용되더라구요^^
-
미해결Flutter 고급 - 현업 수준의 아키텍처
라이브 템플릿 링크 어디서 확인하나요?
1:44에 링크로 공유된다고 하셨는데 강의노트에 따로 올라와있는게 없어서요.. 어디서 확인하면 되나요?
-
미해결Flutter 고급 - 현업 수준의 아키텍처
ingredient view model의 _loadRecipe
ingredient view model 의 _loadRecipe 함수는 생성자에서실행이 안되는 이유에 대해서 궁금합니다.동일하게 _getDishesByCategoryUseCase.execute를 사용하는 _fetchDishesByCategory 는home view model에서 생성자에서 쓰이는데 어떤 차이가 있나요
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
62강 Follow, Unfollow기능구현에서,,
7:15까지 코드 따라하고, 구동하는데;;아래와 같이 에러가 뜹니다... Thread 3: Simultaneous accesses to 0x600003d332b0, but modification requires exclusive access 구동조차 안되고 바로 아래와 같이 떠버려요;; 이건 어떻게 해결할가요???
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
애구마선생님, 다음 프로젝트 강의는 언제 올려주세요???
선생님의 새로운 강의 듣고싶습니다,,이렇게, 자세한 강의는 처음입니다..명확하고 정확하고, 기초, 중급자는 물론이고1인개발에 관심있는 저에게는 거의 바이블입니다... 다른 강의도 듣고싶어요,,,너무 기대됩니다..
-
미해결Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
51강 10:22에서 이미지 여러장이 나오지 않아요;;
이런상황입니다 ㅠㅠ //// FeedView.swift// SUNGWON//// Created by SW KIM on 2/6/25.// import SwiftUI struct FeedView: View { @State var viewModel = FeedViewModel() var body: some View { // Text("FeedView") ScrollView { VStack{ HStack{ Image("instagramLogo2") .resizable() .scaledToFit() .frame(width: 110) Spacer() Image(systemName: "heart") .imageScale(.large) Image(systemName: "paperplane") .imageScale(.large) } .padding(.horizontal) ForEach(viewModel.posts) { post in let _ = print("post:", post) } Spacer() } } }} #Preview { FeedView()}
-
미해결Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
52강 post데이터가 불러와지지 않아요,,,
52강 11:06에서 #Preview{FeedCellview(post: Post(id: 등등의 내용을 써야하는데;;Post정보가 나오지 않아 막혔어요;; 아래와 같이 뜨는데요;;;무엇이 잘못된걸까요;; WARNING: All log messages before absl::InitializeLog() is called are written to STDERRI0000 00:00:1738937824.318841 984217 config.cc:230] gRPC experiments enabled: call_status_override_on_cancellation, http2_stats_fix, monitoring_experiment, pick_first_new, trace_record_callops, work_serializer_clears_time_cachenw_endpoint_flow_failed_with_error [C1 2404:f340:10:1801::200a.443 failed parent-flow (unsatisfied (No network route))] already failing, returningnw_connection_get_connected_socket_block_invoke [C1] Client called nw_connection_get_connected_socket on unconnected nw_connectionTCP Conn 0x6000033015e0 Failed : error 0:50 [50]I0000 00:00:1738937824.540463 984238 subchannel.cc:806] subchannel 0x103f0dca0 {address=ipv6:%5B2404:f340:10:1801::200a%5D:443, args={grpc.client_channel_factory=0x60000002b7d0, grpc.default_authority=firestore.googleapis.com, grpc.http2_scheme=https, grpc.internal.channel_credentials=0x600002638de0, grpc.internal.client_channel_call_destination=0x1066f45e8, grpc.internal.event_engine=0x60000000dcd0, grpc.internal.security_connector=0x600002c38080, grpc.internal.subchannel_pool=0x6000029332c0, grpc.keepalive_time_ms=30000, grpc.primary_user_agent=grpc-c++/1.65.1, grpc.resource_quota=0x600000c9b2d0, grpc.server_uri=dns:///firestore.googleapis.com}}: connect failed (UNKNOWN:(domain:NSPOSIXErrorDomain, code:50, description:The operation couldn’t be completed. Network is down) {file:"/var/folders/hn/5bx1f4_d4ds5vhwhkxc7vdcr0000gn/T/ZipRelease/2024-07-25T04-01-28/project-ios/Pods/gRPC-Core/src/core/lib/transport/error_utils.cc", file_line:150, created_time:"2025-02-07T23:17:04.540048+09:00", grpc_status:2}), backing off for 965 mscurrentUser: Optional(SUNGWON.User(id: "XCwZST2c1fNVwhu9ex77JnK7ThS2", email: "test1@naver.com", username: "222222", name: "111111", bio: nil, profileImageUrl: nil))Optional(["username": 222222, "id": XCwZST2c1fNVwhu9ex77JnK7ThS2, "email": test1@naver.com, "name": 111111])DEBUG: Failed to load user posts with errorThe data couldn’t be read because it is missing.
-
미해결MAUI [Cross-Platform Applications & C#]
Microsoft.Maui.Controls Update후 오류발생
The current .NET MAUI package version '9.0.30' requires the .NET MAUI workload version to be at least '9.0.0'. The current .NET MAUI workload version is '8.0.100'. Nuget 패키지 관리자에서 Microsoft.Maui.Controls를 9.0.30으로 Update후 위 오류가 발생하는데 어떻게 조치를 취해야할지 여쭈어봅니다.
-
미해결Flutter 고급 - 현업 수준의 아키텍처
BigButton 만들때.
BigButton 컴포넌트 만들때elevatedButton을 사용하지않고container위젯을 사용하는 이유가있을까요?
-
해결됨iOS Clean Architecture & MVVM: RxSwift 완전 정복
유즈케이스 프로토콜과 구현체의 분리 이유
덤벨로퍼님 안녕하세요! 덕분에 좋은 강의 잘 듣고 있습니다!!유즈케이스의 경우 프로토콜과 구현체를 분리해서 구현하셨고, 보통 다른 사람들도 분리해서 구현하더라구요.만약 기능 단위로 유즈케이스를 구현하게 된다면 굳이 프로토콜과 구현체를 분리안해도 될 것 같은데, 둘을 분리하여 얻을 수 있는 이점이 궁금합니다!의존성 관리 측면에서 이점이 있다고 생각은 되는데 잘 와닿지가 않아서요ㅠㅠ답변해주시면 감사하겠습니다 :)
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
ViewModel과 Model 구분 (30강)
안녕하세요. 강의 정말 잘 듣고 있습니다! 30강에서 회원정보 class 를 SignUpViewModel로 만드셨는데MVVM 아키텍처에서ViewModel은 비즈니스 로직을 처리하는 부분이고 데이터를 다루는 class나 struct의 경우에는 Model 파트가 맡는다고 이해를 하고 있었습니다. struct가 아닌 class의 경우에는 비즈니스 로직으로 봐야 하는건가요?
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
바인딩하는 이유
ProfileEditingView에서 뷰모델을 ProfileView에서 바인딩 받아서 사용하는데, 왜 바인딩을 받는 것일까요? ProfileEditingView에서 @State var viewModel = ProfileViewModel()로 새로 선언하지 않는 이유가 있을까요?
-
해결됨Flutter 중급 3편 - 의존성 주입 가이드
Bad state 에러
안녕하세요.아래와 같은 오류가 나서 해결을 하려고 했습니다.제공해주신 완성 본 코드와 비교하니 정확하게 일치했구요.E/flutter (22734): [ERROR:flutter/runtime/dart_vm_initializer.cc(40)] Unhandled Exception: Bad state: GetIt: Object/factory with type StoreRepository is not registered inside GetIt. E/flutter (22734): (Did you accidentally do GetIt sl=GetIt.instance(); instead of GetIt sl=GetIt.instance;이해가 안되어서 di_setup_config.dart파일을 보는데const String dev = 'dev'; const String prod = 'prod'; extension GetItInjectableX on i174.GetIt { // initializes the registration of main-scope dependencies inside of GetIt i174.GetIt init({ String? environment, i526.EnvironmentFilter? environmentFilter, }) { final gh = i526.GetItHelper( this, environment, environmentFilter, ); gh.singleton<_i149.LocationPermissionHandler>( () => i399.MockLocationPermissionHandler(), registerFor: {dev}, ); gh.singleton<_i872.StoreRepository>( () => i399.MockStoreRepositoryImpl(), registerFor: {dev}, ); gh.singleton<_i920.LocationRepository>( () => i399.MockLocationRepositoryImpl(), registerFor: {dev}, ); gh.singleton<_i716.GetNearByStoresUseCase>( () => i716.GetNearByStoresUseCase( storeRepository: gh<i872.StoreRepository>(), locationRepository: gh<_i920.LocationRepository>(), locationPermissionHandler: gh<_i149.LocationPermissionHandler>(), )); gh.singleton<_i920.LocationRepository>( () => i359.LocationRepositoryImpl(), registerFor: {prod}, ); gh.singleton<_i872.StoreRepository>( () => i303.StoreRepositoryImpl(), registerFor: {prod}, ); gh.singleton<_i149.LocationPermissionHandler>( () => i148.LocationPermissionHandlerImpl(), registerFor: {prod}, ); gh.factory<_i912.MainViewModel>( () => i912.MainViewModel(gh<i716.GetNearByStoresUseCase>())); return this; } }GetNearByStoresUseCase 코드가 prod버전의 코드들 보다 상위에 배치되어서 발생했습니다.di_setup_config.dart파일을 자동으로 생성되는 파일인데 매번 dart run build_runner build 할 때 마다 일일이 수동으로 수정을 해줘야 할까요?flutter pub run build_runner build --delete-conflicting-outputs를 해도 동일합니다.
-
미해결Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
75강 까지 마무리후 소스 오류 사항 문의
75강 마무리 후다른 사용자의 프로필 들어가서 팔로우 하면위에 팔로잉수가 실시간으로 변경되야 하는데안되네요.확인 부탁드립니다.강의 자료용 소스도 동일하게 작동 안합니다.Xcode16 / iOS18.2
-
해결됨Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)
SwiftUI main actor 관한 경고 계속 뜹니다.
참고로 제공해주신 소스도 동일하게 뜹니다. Objects stored in @StateObject properties must be isolated to the main actor. This warning will become a runtime crash in a future version of SwiftUI.