묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
auth 관련 에러
7강 마지막 들으면서 적용하는데분명 에뮬레이터도 정상동작인데 dio.dart의 onError함수에서 계속 401 auth에러가 발생한다고 표시가 돼서 콘솔로 디버깅을 했습니다. 그런데 마지막 resending하는 부분까지 정상 도달은 하지만 onResponse의 콘솔은 뜨지않고 재시작해서 accessToken을 다시 발급 받았음에도 계속 onError에서 401auth 에러가 발생합니다. 어떤 부분이 문제일까요[요약]토큰만료 =>홈 스크린에 데이터 사라짐 => 재시작 => 홈 스크린에 데이터 불러와짐 => 문제발생 데이터는 불러와지는데 디버그 콘솔에 REQ랑 ERROR표시남(401 AUTH 관련 에러) => 재시작 => 동일 에러 무한[에러 내용]I/flutter ( 4232): [REQ] [GET] http://10.0.2.2:3000/restaurant/I/flutter ( 4232): [ERROR] [GET] http://10.0.2.2:3000/restaurant/I/flutter ( 4232): [ERROR] [MESSAGE] This exception was thrown because the response has a status code of 401 and RequestOptions.validateStatus was configured to throw for this status code.I/flutter ( 4232): The status code of 401 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"I/flutter ( 4232): Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/StatusI/flutter ( 4232): In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.dio.dartimport 'package:dio/dio.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:section2/common/const/data.dart'; class CustomInterceptor extends Interceptor { final FlutterSecureStorage storage; CustomInterceptor({ required this.storage, }); /// 1) 요청 보낼 때 /// 요청이 보내질때마다 /// 만약에 요청의 Headers에 accessToken이 true 이면 /// 실제 토큰을 가져와서 기존 accessToken값을 삭제하고 { /// authorization : Beader $토큰} 값을 추가 @override void onRequest( RequestOptions options, RequestInterceptorHandler handler) async { print('[REQ] [${options.method}] ${options.uri}'); if (options.headers['accessToken'] == 'true') { options.headers.remove('accessToken'); final accessToken = await storage.read(key: ACCESS_TOKEN_KEY); options.headers.addAll( {'authorization': 'Bearer $accessToken'}, ); } if (options.headers['refreshToken'] == 'true') { options.headers.remove('refreshToken'); final refreshToken = await storage.read(key: REFRESH_TOKEN_KEY); options.headers.addAll( {'authorization': 'Bearer $refreshToken'}, ); } return super.onRequest(options, handler); } /// 2) 응답 받을 때 @override void onResponse(Response response, ResponseInterceptorHandler handler) { print( '[RES] [${response.requestOptions.method}] ${response.requestOptions.uri}'); super.onResponse(response, handler); } /// 3) 에러 났을 때 @override void onError(DioException err, ErrorInterceptorHandler handler) async { // 401에러 났을 때 (status code) // 토큰을 재발급 받는 시도를하고 토큰이 재발급되면 // 다시 새로운 토큰을 요청한다. print('[ERROR] [${err.requestOptions.method}] ${err.requestOptions.uri}'); print('[ERROR] [MESSAGE] ${err.message}'); // refreshToken이 없는 경우 final refreshToken = await storage.read(key: REFRESH_TOKEN_KEY); if (refreshToken == null) { // 에러 던질때는 handler.reject()사용 return handler.reject(err); } final isStatus401 = err.response?.statusCode == 401; final isPathRefresh = err.requestOptions.path == '/auth/token'; if (isStatus401 && !isPathRefresh) { final dio = Dio(); try { final res = await dio.post( 'http://$ip/auth/token', options: Options( headers: { 'authorization': 'Bearer $refreshToken', }, ), ); final accessToken = res.data['accessToken']; final options = err.requestOptions; //기존 토큰 변경 options.headers.addAll({ 'authorization': 'Bearer $accessToken', }); await storage.write(key: ACCESS_TOKEN_KEY, value: accessToken); // 에러난 요청options에 토큰값을 신규로 변경하여 재전송 final resending = await dio.fetch(options); return handler.resolve(resending); } on DioException catch (e) { return handler.reject(e); } } return handler.reject(err); } }
-
미해결Flutter 고급 - 현업 수준의 아키텍처
ingredient view model의 _loadRecipe
ingredient view model 의 _loadRecipe 함수는 생성자에서실행이 안되는 이유에 대해서 궁금합니다.동일하게 _getDishesByCategoryUseCase.execute를 사용하는 _fetchDishesByCategory 는home view model에서 생성자에서 쓰이는데 어떤 차이가 있나요
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
플러터 앱에서 dll이나 exe 파일을 사용해야 할 경우 어떤 경로에 위치시켜야 할까요?
이미지 같은 정적 리소스가 아닌 c로 빌드된 exe 파일이나 dll 같은 동적 라이브러리를 플러터 앱에서 사용해야할 경우에 이 파일들은 어디에 위치시켜야 할까요? assets 폴더 밑에 두어야 할까요 아니면 windows 밑에 두어야 할까요?플러터로 현업을 경험해보진 않아서 현업에선 어떻게 사용하는지 궁금합니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
강의 데이터베이스.,,,
이 강의 mySql이나 데이터베이스를 이용 하지는 않는건가요 ?. 로컬 데이터베이스만 사용하나요 ? [코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨Flutter 앱 개발 실전
const 커스텀클래스
안녕하세요 강사님 ! 수업 잘듣고 있습니다. 제 질문은 다트에서 커스텀클래스 안에 모든 속성에 final 키워드를 붙이면 생성자 앞에 const 키워드를 붙여서 const 커스텀 클래스를 만들수 있었잖아요~ 이제 여기서 궁금한점은 ! 모든 속성중에 리스트가 있다면 final 키워드를 붙여도 그 리스트는 add 같은 동작을 할수 있는데 가변객체가 포함된 커스텀 클래스에 const 키워드 붙일 수있나 하는 것입니다 !
-
해결됨[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Dart 강의 질문
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! TS강의 완료 후 Flutter 강의 시작하려 합니다. Dart 공부한지 2년정도가 되어 다시 공부하려는데무료 Dart 강의가 있고 Flutter 초급 강의에도 Dart 이론 강의들이 있더라구요두 강의가 동일한 강의인지 궁금합니다 :)
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
<군대에서 이 강의를 활용하는 방법>
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM 안녕하세요. 군대 사지방에서 인공지능과 앱 개발을 공부하는 군인 입니다.코드팩토리님의 강의를 더 많은(특히나 군인) 사람들이 어려움 없게 공부할 수 있도록 도와드리고자 이렇게 작성해봅니다.flutter 개발 환경에 대해 사지방에서 할 수 있는 것을 공유하고자 합니다.여기다가 환경설정을 자세히 쓸 수는 없으니(사실 필요하지도 않습니다) 이런 것들을 활용하면 된다고 말하고 싶어서 간단하게 작성해 봅니다.project idx를 사용해 flutter 워크스페이스를 만들면 됩니다. project idx를 이용하면 google id만 있다면 이용하실 수 있습니다. vscode 환경을 제공합니다. 다만, 현재 android 에뮬레이터는 잘 작동이 안되서 web view로 보셔야 합니다.(이걸로도 충분합니다) 각종 외부 패키지 사용은 호환이 안되는 경우가 있습니다만, pub.dev에 web으로 호환되는 것을 따로 설정하시면 됩니다.예를 들어, google map을 이용하고자 할 때 web/index.html에 아래와 같은 코드를 추가하시면 잘 작동됩니다. <script src="https://maps.googleapis.com/maps/api/js?key=Your API KEY"></script>또, 비디오 영상과 관련해서는 url로 받으시면 됩니다.관련된 정보는 stackoverflow나 이외의 블로그에 굉장히 많은 정보가 있으니 찾아보시면 됩니다.실제로 에뮬레이터 대신 web에서 작동하는 방식은 아래 사진처럼 작동합니다.(android는 버그가 좀 있는 것 같습니다.) 제가 이렇게 말씀드리는 이유는 다음과 같습니다.코드팩토리님의 강의가 그 정도로 들을만한 가치가 있다는 점.군인도 앱 개발을 충분히 공부할 수 있다는 점.그리고 환경설정이 하나도 어렵지 않다는 점.(저도 이 강의가 첫 앱 개발입니다. 인공지능 공부를 한 경험 때문에 더 쉬웠을 수도 있습니다.)코드팩토리님의 질문&답변에 이런 글을 달아 죄송합니다.여러 인사이트 댓글을 보면 "군인이 사지방에서 개발 공부하는 법"같은 것이 많이 나와있어서 이렇게 남겨봅니다.혹시라도 삭제를 원하시면 바로 삭제하겠습니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
앱 실행시 에러 발생 (맥북)
안녕하세요.맥북을 사용하고 있는 교육생입니다.android/gradle.properties에 org.gradle.java.home=/opt/homebrew/Cellar/openjdk@17/17.0.14/libexec/openjdk.jdk/Contents/Home이렇게 작성하고 실행하면* What went wrong:Execution failed for task ':agora_uikit:compileDebugKotlin'.> 'compileDebugJavaWithJavac' task (current target is 1.8) and 'compileDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version. Consider using JVM toolchain: https://kotl.in/gradle/jvm/toolchain해당 에러가 발생합니다.그래서 자바 버전을 1.8로 변경하고 gradle 버전도 낮춰서 해봤지만 실행이 되지 않습니다... 어떻게 해야할까요
-
해결됨Flutter 앱 개발 기초
Dart 문법 실습문제 풀고 있는데요
두 가지 여쭤볼 게 있습니다.(우선 저는 비전공자이고 대학교때 기초교양 과목으로 c언어,전산,아두이노 잠깐 해봤습니다.) 13 문제 중 초반 1~3문제처럼 간단한 건 풀었는데후반 10문제를 거의 다 제대로 풀 지를 못하고 결국 해답을 봤는데정상인지 아닌지 궁금해서 여쭤봅니다.만약 정상이 아니라면 공부 방법을 바꿔야 하나 싶어서요. 어떤 점에서 어려움을 느꼇냐면예를 들어 int totalPrice(List<Map<String, dynamic>> cart) { // 여기에 작성해 주세요. int result = 0; for (Map<String, dynamic> item in cart) { int price = item["price"] as int; // dynamic -> int로 변환 int count = item["count"] as int; // dynamic -> int로 변환 result += price * count; } return result;} 여기서 뜬금없이 선언하지도 않은 item이라는 변수를 가지고 오는 것이나,타입을 그자리에서 변환해주는 as , 그리고 cart라는 변수에서 item을 가져 오는 것,이 item의 타입은 자동으로 in cart 안의 타입에 종속된다는 것나름 5분강의 볼떄마다 30~50분을 공부해야 할 정도로 세부적으로 찾아보고 gpt도 활용해가면서 모르는 건 체크하면서 해봤습니다.2. 그래서 하나 더 여쭤보겠습니다.실습 문제의 의도가 궁금합니다.단지 사고력을 기르는 의미에서 생각을 한번 해보게끔 하고 해설을 보고 이해하라는 건지기본적인 틀만 알려주되 세세한 것들은 직접 찾아보고 공부해서 이 정도는 풀 수 있어야 한다.라는 의미인지 알려주세요. 진짜 진지하게 공부 하고싶고 개선해보고 싶어서 이렇게 질문 드립니다.
-
미해결플러터와 장고로 1시간만에 퀴즈 앱/서버 만들기 [무작정 풀스택]
emulator 실행오류
이렇게 빨간색으로 음영되어 있고..emulator를 실행하는데 Error fetching your Android emulators! Make sure your path is correct. Try running this command: "~\Library\Android\sdk\emulator\emulator" -list-avds 오류문구가 뜨면서 실행이 안되요
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Visual studio 설치했는데도 오류가 뜹니다.
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.이렇게 뜨는데 어떻게 해야할까요~?
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
애뮬레이터로 main.dart를 실행하면 컴퓨터가 멈춥니다.
running grade task 'assembleDebug'... ✔ Built build\app\outputs\flutter-apk\app-debug.apkInstalling build\app\outputs\flutter-apk\app-debug.apk 까지 나오고 안드로이드 애뮬레이터에서 flutter 아이콘이 나온뒤에 컴퓨터가 멈춰버립니다. 컴퓨터 스펙은 i5-12400F에 16GB, RTX 3060을 사용중입니다.애뮬레이터로 flutter를 실행시키지 않고, flutter run을 통해서 window로 실행하면 제대로 작동하는데, 애뮬레이터로 Run을 하면 멈춥니다.
-
해결됨Flutter로 만드는 LLM 챗봇 (feat. Gemini)
실전강의는 무엇인가요?
이 강의의 다음강의는 무엇인가요?? 실전강의에서 라우터랑 mvvm 배운다고 해주셔서요!!
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
firebase 연동시 문제입니다
알림 메세지가 필요해서 firebase 연동을 하던 중에* What went wrong:Plugin [id: 'com.google.gms.google-services'] was not found in any of the following sources:- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)- Included Builds (No included builds contain this plugin)- Plugin Repositories (plugin dependency must include a version number for this source)로 빌드가 안되는데 해결책을 봐도 어떻게 풀어가야할지 모르겠습니다. 해결할 수 있는 도움 말씀 주시면 힘이 날 것 같습니다.감사합니다.
-
해결됨Flutter 앱 개발 실전
강의 수강 기간 연장 요청드립니다.
안녕하세요.강의를 한번 더 기초부터 공부하고싶은데,만료시간이 다가와 혹시 시간이 부족하게 될까봐Flutter 앱 개발 기초 / 실전 강의 모두 기간 요청 드리고 싶습니다.
-
미해결Flutter 초입문 왕초보편
webview 영상처럼 3.0.4 버전으로 할경우 AGP 문제
webview 버전 3.0.4 진행중에 현재 영상처럼 지금 하고 있는데....agp 문제로 안된다고 하네요...어디에선 namespace가 잘못 잡혀 있다고 하기도 하고 ....수정 하고 접근하려고 하는데 .... 안되네요.. 어떻게 접근해야할지 모르겠네요.일단 flutter create . 명령어로 잘못된 부분을 수정했음에도 되지 동일한 로그로 고생중입니다.확인해주시면 감사하겠습니다.
-
미해결Flutter 응용 - 공공 API를 활용한 앱 만들기 (MVVM 패턴)
섹션1은 눈으로만 보면된다 하셨는데 섹션2만 봐도 되나요?
챕터 1은 눈으로만 보고 넘어가라하셨는데 챕터 1은 안보고 챕터2부터 봐도 되나요?
-
해결됨Flutter로 웹 서비스 개발하기 (1) - Responsive Web
seo 강의는 연기된걸까요?
커뮤니티 보니까 쭉 연기되어왔던데 , 마지막 답변에선 12월 등록예정이라 하셨는데 지금 이제 모래가 2월인데 아직 강의가 없네요..
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
pub dev 문제
'pubspec.yaml' 에서 알맞은 위치에 'webview_flutter: ^4.4.2' 라고 입력하고 pub get을 실행하였을 때 막 이상한 게 출력되면서 마지막에 'Process finished with exit code 65' 이렇게 뜹니다.
-
미해결Flutter 고급 - 현업 수준의 아키텍처
BigButton 만들때.
BigButton 컴포넌트 만들때elevatedButton을 사용하지않고container위젯을 사용하는 이유가있을까요?