묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
tailwinde-css
궁금한 점 : @apply 핑크로 변하지 않아도 실행은 됩니다! 상관 없는걸까요??styles.module.csstailwind.config
-
미해결React Native with Expo: 제로초에게 제대로 배우기
nativeAppKey가 없다는 오류가 뜹니다
yarn info react version19.1.0yarn info react-native version0.80.1yarn info expo version53.0.20제로초님 안녕하세요! 강의 내용과 똑같이 환경변수를 설정하고 ios eas build를 하는 과정에서 nativeAppKey 환경변수를 읽어오지 못하는 상황이 계속 발생합니다. expo 대시보드의 프로젝트 환경변수에도사진과 같이 등록해놓은 상태이고, eas build --profile development --platform ios 커맨드를 실행했을때 아래와 같이 에러나 나는 상황입니다. .env를 .gitIgnore에서 잠깐 제거하고 빌드해도 동일하게 에러가 납니다..!!Failed to read the app config from the project using "npx expo config" command: npx expo config --json exited with non-zero code: 1.Falling back to the version of "@expo/config" shipped with the EAS CLI.// app.config.js[ '@react-native-kakao/core', { nativeAppKey: process.env.KAKAO_APP_KEY, android: { authCodeHandlerActivity: true, }, ios: { handleKakaoOpenUrl: true, }, }, ], ... 생략 extra: { kakaoAppKey: process.env.KAKAO_APP_KEY, router: {}, eas: { projectId: '...생략', }, },// eas.json{ "cli": { "version": ">= 16.10.0", "appVersionSource": "remote" }, "build": { "development": { "developmentClient": true, "distribution": "internal", "ios": { "simulator": true } }, "preview": { "distribution": "internal" }, "production": { "autoIncrement": true } }, "submit": { "production": {} } } // src/app/_layout.tsxuseEffect(() => { initializeKakaoSDK(Constants.expoConfig?.extra?.kakaoAppKey as string); }, []); 도움 주시면 감사하겠습니다 🙏🏻
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
강의중 37.Dio onErrorInterceptor 작업하기 dio 관련 질문입니다.
안녕하세요 강사님 accessToken 만료시 refreshToken 으로 다시 발급받는과정에서 질문이 있습니다. dio.dart 소스에 onError 에서 print 로 로그를 호출하고 있는데요 @override void onError(DioException err, ErrorInterceptorHandler handler) async { print("[ERR] [${err.requestOptions.method}] ${err.requestOptions.uri}"); final refreshToken = await storage.read(key: REFRESH_TOKEN_KEY); if (refreshToken == null) { 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 resp = await dio.post( "http://$ip/auth/token", options: Options(headers: {"authorization": "Bearer $refreshToken"}), ); final accessToken = resp.data["accessToken"]; final options = err.requestOptions; options.headers.addAll({ "authorization": "Bearer $accessToken", }); await storage.write(key: ACCESS_TOKEN_KEY, value: accessToken); final response = await dio.fetch(options); return handler.resolve(response); } on DioException catch (e) { return handler.reject(e); } } // return handler.reject(err); super.onError(err, handler); } 호출하는 restaurant_detail_screen.dart 를 보면 Future<RestaurantDetailModel> getRestaurantDetail() async { final dio = Dio(); dio.interceptors.add( CustomInterceptor(storage: storage) ); final repository = RestaurantRepository(dio, baseUrl: "http://$ip/restaurant"); return repository.getRestaurantDetail(id: id); } 이런식으로 되어있거든요? 그래서 refreshToken 으로 토큰을 재발급 받고 storage에도 새로 저장하였으나 dio 가 매번 호출되는 방식입니다. 그러다 보니 매번 onError 가 호출이되고 에러 로그가 찍힐수 밖에 없는 구조입니다. 싱글톤 방식으로 수정이 되지 않으면 해당 에러는 계속 날것 같은데 혹시 이후에 해당부분이 수정이 되는 강의 부분이 있을까요?
-
미해결React Native with Expo: 제로초에게 제대로 배우기
수업 관련 질문
안녕하세요 제가 지금 토이프로젝트로 8월 말까지 앱의 mvp 기능을 만들고 싶어서 expo 강좌를 수강 신청 및 수강하게 되었습니다제가 웹, 앱에 대한 지식이 전혀 없어서 gpt한테 물어보면서 진행을 해도 잘 이해하면서 하고 있지는 않은 것 같습니다 핵심개념들이 없는 것 같습니다react, ts를 공부해야 이해가 될까요 ..?
-
미해결React Native with Expo: 제로초에게 제대로 배우기
TextInput 터치시 키패드에 인풋 가려짐
안녕하세요 제로초님! 모르는 부분 강의 참고하며 회사 서비스를 expo로 구현중입니다. TextInput를 터치하면 키보드에 인풋이 가려지는 현상이 있어서 해결중인 상황입니다. expo 공식문서에 나와있는 react-native-keyboard-controller 라이브러리를 사용하려고 했지만 사용하려면 pod install을 다시 해줘야돼서 prebuild가 필수적인데, ios 폴더가 생기면 네이티브 코드 관리를 잘 할 자신이 없어서.. development builds App 만으로 해결할 수 있는 방법이 있을까요?
-
해결됨React Native with Expo: 제로초에게 제대로 배우기
rimraf 이후 npm i 진행 하니 앱이 구동이 안됩니다.
재설치, eas build 를 다시해도 아래와 같은 에러 문구가 계속 나오네요..
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
04-02 Next 페이지 이동
useState(0) 부분에서 오류가 나 실행이 안됩니다. 오류를 못찾겠어요ㅠㅠ 알려주세요
-
미해결React Native with Expo: 제로초에게 제대로 배우기
인가 코드 관련 질문
제로초님 안녕하세요!const result = await kakaoLogin();로그인 했을때 받아오는 result 내부의 accessToken이 백엔드에 전달해야될 인가 코드라고 생각하면 될까요?? 백엔드 개발자분에게 인가 코드를 전해드려야하는데 저게 인가 코드인건지 궁금합니다..!!
-
미해결React Native with Expo: 제로초에게 제대로 배우기
구글 OAuth 오류 ...
추가로 npx expo start 해서 expo go 로 앱열면 이런 에러가나요.. 구글 OAuth 도전하다가 오류나는것 같은데.. 이제 메트로를 못쓰는건가요? development build로 들어가야하나요?›› Choose an app to open your project at http://192.168.10.54:8081/_expo/loading› Metro waiting on exp://192.168.10.54:8081› Scan the QR code above with Expo Go (Android) or the Camera app (iOS)› Web is waiting on http://localhost:8081› Using Expo Go› Press s │ switch to development build› Press a │ open Android› Press i │ open iOS simulator› Press w │ open web› Press j │ open debugger› Press r │ reload app› Press m │ toggle menu› shift+m │ more tools› Press o │ open project code in your editor› Press ? │ show all commandsiOS Bundled 539ms node_modules/expo-router/entry.js (1439 modules) WARN expo-notifications: Android Push notifications (remote notifications) functionality provided by expo-notifications was removed from Expo Go with the release of SDK 53. Use a development build instead of Expo Go. Read more at https://docs.expo.dev/develop/development-builds/introduction/. WARN expo-notifications functionality is not fully supported in Expo Go:We recommend you instead use a development build to avoid limitations. Learn more: https://expo.fyi/dev-client. WARN Require cycle: services/notificationService.ts -> services/firebaseService.ts -> services/notificationService.tsRequire cycles are allowed, but can result in uninitialized values. Consider refactoring to remove the need for a cycle. LOG Firebase Messaging not available in Expo Go LOG Firebase Messaging not available in Expo Go ERROR Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNGoogleSignin' could not be found. Verify that a module by this name is registered in the native binary., js engine: hermes WARN Route "./(auth)/login.tsx" is missing the required default export. Ensure a React component is exported as default. ERROR Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNGoogleSignin' could not be found. Verify that a module by this name is registered in the native binary., js engine: hermes WARN Route "./(auth)/signup.tsx" is missing the required default export. Ensure a React component is exported as default. ERROR Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNGoogleSignin' could not be found. Verify that a module by this name is registered in the native binary., js engine: hermes WARN Route "./(modals)/add-asset.tsx" is missing the required default export. Ensure a React component is exported as default. ERROR Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNGoogleSignin' could not be found. Verify that a module by this name is registered in the native binary., js engine: hermes WARN Route "./(modals)/add-book.tsx" is missing the required default export. Ensure a React component is exported as default. ERROR Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNGoogleSignin' could not be found. Verify that a module by this name is registered in the native binary., js engine: hermes WARN Route "./(modals)/add-category.tsx" is missing the required default export. Ensure a React component is exported as default. ERROR Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNGoogleSignin' could not be found. Verify that a module by this name is registered in the native binary., js engine: hermes WARN Route "./(modals)/add-transaction.tsx" is missing the required default export. Ensure a React component is exported as default. ERROR Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNGoogleSignin' could not be found. Verify that a module by this name is registered in the native binary., js engine: hermes WARN Route "./(modals)/advanced-stats.tsx" is missing the required default export. Ensure a React component is exported as default. ERROR Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNGoogleSignin' could not be found. Verify that a module by this name is registered in the native binary., js engine: hermes WARN Route "./(modals)/asset-detail.tsx" is missing the required default export. Ensure a React component is exported as default. ERROR Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNGoogleSignin' could not be found. Verify that a module by this name is registered in the native binary., js engine: hermes WARN Route "./(modals)/book-sharing.tsx" is missing the required default export. Ensure a React component is exported as default. ERROR Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNGoogleSignin' could not be found. Verify that a module by this name is registered in the native binary., js engine: hermes WARN Route "./(modals)/budget-settings.tsx" is missing the required default export. Ensure a React component is exported as default. ERROR Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNGoogleSignin' could not be found. Verify that a module by this name is registered in the native binary., js engine: hermes WARN Route "./(modals)/change-password.tsx" is missing the required default export. Ensure a React component is exported as default. ERROR Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNGoogleSignin' could not be found. Verify that a module by this name is registered in the native binary., js engine: hermes WARN Route "./(modals)/manage-categories.tsx" is missing the required default export. Ensure a React component is exported as default. ERROR Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNGoogleSignin' could not be found. Verify that a module by this name is registered in the native binary., js engine: hermes WARN Route "./(modals)/profile.tsx" is missing the required default export. Ensure a React component is exported as default. ERROR Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNGoogleSignin' could not be found. Verify that a module by this name is registered in the native binary., js engine: hermes WARN Route "./(modals)/select-book.tsx" is missing the required default export. Ensure a React component is exported as default. ERROR Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNGoogleSignin' could not be found. Verify that a module by this name is registered in the native binary., js engine: hermes WARN Route "./(modals)/user-id-code.tsx" is missing the required default export. Ensure a React component is exported as default. ERROR Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNGoogleSignin' could not be found. Verify that a module by this name is registered in the native binary., js engine: hermes WARN Route "./(onboarding)/create-first-book.tsx" is missing the required default export. Ensure a React component is exported as default. ERROR Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'RNGoogleSignin' could not be found. Verify that a module by this name is registered in the native binary., js engine: hermes WARN Route "./(tabs)/asset.tsx" is missing the required default export. Ensure a React component is exported as default. ERROR Invariant Violation: TurboModuleRegistry.getEnforcing(...): WARN [Layout children]: No route named "profile" exists in nested children: ["about", "book-settings", "help", "index", "invite-code", "join-book", "notifications", "settings", "book/[id]", "book/[id]/budget", "friends/requests", "ledger/[id]"] WARN [Layout children]: No route named "add-transaction" exists in nested children: ["about", "book-settings", "help", "index", "invite-code", "join-book", "notifications", "settings", "book/[id]", "book/[id]/budget", "friends/requests", "ledger/[id]"] WARN [Layout children]: No route named "add-book" exists in nested children: ["about", "book-settings", "help", "index", "invite-code", "join-book", "notifications", "settings", "book/[id]", "book/[id]/budget", "friends/requests", "ledger/[id]"] WARN [Layout children]: No route named "add-category" exists in nested children: ["about", "book-settings", "help", "index", "invite-code", "join-book", "notifications", "settings", "book/[id]", "book/[id]/budget", "friends/requests", "ledger/[id]"] WARN [Layout children]: No route named "select-book" exists in nested children: ["about", "book-settings", "help", "index", "invite-code", "join-book", "notifications", "settings", "book/[id]", "book/[id]/budget",
-
미해결React Native with Expo: 제로초에게 제대로 배우기
IOS 빌드 오류...
npm ls react npm ls react-nativenpm ls expo버전을 알려주시면 질문자분과 동일한 환경에서 답변 드릴 수 있습니다.이런 빌드 오류가 발생합니다.. 이유가 무엇일까요? ㅠㅠ
-
미해결React Native with Expo: 제로초에게 제대로 배우기
에뮬레이터 에서 오류
안녕하세요 푸쉬알림 카카오로그인 할때 엑스포 고우로 통해서 개발이 안되는걸로 아는데 그이후로부터는 빌드된 앱으로 들어가서 테스트 하는걸로 알고 있거든여 근데 빌든된 앱을 들어가서 ip주소 수동으로 쳐서 들어가려고 하는데 계속 에러가뜨네요 ping테스트 도 해보고 서버도 켜서 웹브라우저에서 번들 다운되는지도 확인했는데 에뮬레이터 접속이 안되네요
-
미해결React Native with Expo: 제로초에게 제대로 배우기
IOS 빌드 시 팀정보를 회사로 등록해버렸어요.
npm ls expo버전을 알려주시면 질문자분과 동일한 환경에서 답변 드릴 수 있습니다. IOS 빌드 시 팀정보를 회사로 등록해버렸어요.제 개인 애플 계정의 개인 personalteam으로 했어야하는데 회사 팀으로 해버렸어요 어떻게 수정해야할가요?
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
[CSS&JS 마스터]공부하는 속도, 코드 리뷰
현재 군대 사지방에서 공부하고 있는 군인입니다.지금 현재 [입중급]CSS&JS 마스터를 수강하고 있습니다.섹션1을 마치고 과제1을 모두 마치는 데에 총 4일이 소요됐습니다.매일 2시간 씩밖에 컴퓨터를 사용하지 못하는데 이정도 속도면 괜찮은지 여쭙고 싶습니다. 그리고 중간중간 코드 리뷰를 받고 싶을 때에는 어떻게 하면 될까요?
-
미해결React Native with Expo: 제로초에게 제대로 배우기
빌드 오류
빌드 까지 성공했는데 orbit에서 시뮬레이터 실행하면 사진처럼 오류가 나옵니다.
-
미해결React Native with Expo: 제로초에게 제대로 배우기
router.push() 오류
npm ls react : react@19.0.0npm ls react-native: react-native@0.79.5npm ls expo: expo@53.0.19 강의와 소스코드 자료에서 주어진 것과 동일하게 \[username]\index.tsx에 다음과 같이 작성했는데 router.push()에 동적 주소 넣는 부분에서 오류가 발생하는 것 같아요.이 경우에는 어떻게 해결해야 하나요? import { Text, View, TouchableOpacity } from "react-native"; import { useLocalSearchParams, useRouter } from "expo-router"; export default function Index() { const router = useRouter(); const { username } = useLocalSearchParams(); return ( <View style={{ flex: 1, justifyContent: "center", alignItems: "center", }} > <View> <TouchableOpacity onPress={() => router.push(`/${username}`)}> <Text>Threads</Text> </TouchableOpacity> </View> <View> <TouchableOpacity onPress={() => router.push(`/${username}/replies`)}> <Text>Replies</Text> </TouchableOpacity> </View> <View> <TouchableOpacity onPress={() => router.push(`/${username}/reposts`)}> <Text>Reposts</Text> </TouchableOpacity> </View> </View> ); }'`/${string}`' 형식의 인수는 'RelativePathString | ExternalPathString | "/modal" | `/modal?${string}` | `/modal#${string}` | "/home" | `/home?${string}` | `/home#${string}` | "/[username]/index" | `/[username]/index?${string}` | ... 53 more ... | { ...; }' 형식의 매개 변수에 할당될 수 없습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
GRAPHQL 활용 과제
과제 10 진행하고 있습니다."수정을 하기 위해서는 글을 입력할때 설정하였던 비밀번호를 입력받아야 합니다."이런 조건이 있던데 비밀번호는 어디에 저장되는 건가요?
-
미해결React Native with Expo: 제로초에게 제대로 배우기
강의를 듣다가 파일구조를 보다가 궁금한점이 있어서 질문드립니다
안녕하세요 제가 파일 구조를 보다가 하나 궁금한점이 생겼는데요[username] 폴더는 제 마이페이지를 보여주는걸로 아는데 모달로 route가 되어있잔아요 라우트가 근데 [username]파일 안에 index 파일에 패스 url 언디파인일때 보여주는 거 같더라고여 이거는 혹시 다른 상황에 대비해 패스 경로가 언디파인이여도 정상적으로 보여줄수 있도록 설계가 되있는 건지 궁금해서 질문 남깁니다..!
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
노란색 경고줄
노란색 경고줄이 안뜨는데 뜨게 하는 방법이 무엇인가요??
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
181. [02-04] setState의 원리 질문
setIsActive(false) 콘솔에는 찍히는데 backgroundColor: yellow가 gray로는 바뀌고 none으로 하면 바뀌지 않는 이유가 무엇일까요?!
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
graphql 관련 질문입니다
myGraphqlSetting 부분이 문자열로 인식돼서 요청할 때도 문자열로 들어가는 것 같은데 이 부분은 어떻게 수정해야 되나요?