묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결React Native with Expo: 제로초에게 제대로 배우기
Location.getCurrentPositionAsync({}); 에러
npm ls react 19.1.0npm ls react-native 0.81.5npm ls expo 54.0.27버전을 알려주시면 질문자분과 동일한 환경에서 답변 드릴 수 있습니다.에뮬레이터에 location도 설정했는데 왜 마크표시를 누르면 아래 에러가 발생하는걸까요.. 빌드 지우고 다시 설치하고도 해봤습니다. LOG getMyLocation granted ERROR [Error: Uncaught (in promise, id: 1) Error: Current location is unavailable. Make sure that location services are enabled] Code: construct.js 2 | var setPrototypeOf = require("./setPrototypeOf.js"); 3 | function _construct(t, e, r) { > 4 | if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); | ^ 5 | var o = [null]; 6 | o.push.apply(o, e); 7 | var p = new (t.bind.apply(t, o))(); Call Stack construct (<native>) apply (<native>) _construct (node_modules/@babel/runtime/helpers/construct.js:4:65) Wrapper (node_modules/@babel/runtime/helpers/wrapNativeSuper.js:15:23) construct (<native>) _callSuper (node_modules/@babel/runtime/helpers/callSuper.js:5:108) constructor (node_modules/expo-modules-core/src/errors/CodedError.ts:11:5)
-
미해결React Native with Expo: 제로초에게 제대로 배우기
.
.
-
미해결React Native with Expo: 제로초에게 제대로 배우기
EAS preview 빌드 후 Device에서 카카오 로그인 브라우저가 안켜짐
저는 강의 수강 후 개인 앱을 만들고 있습니다.EAS preview 빌드 후 해당 빌드 내용을 Orbit을 통해 에뮬레이터에서는 로그인 부라우저가 뜨고 다음 화면까지 이동하는 프로세스가 잘 동작하는 것 까지 확인했습니다. 그런데 제 실제 디바이스에서 구동해보면 카카오 로그인 버튼을 누르면 설정해놓은 Loading spining만 뜨다가 화면이 넘어가지질 않습니다.로그도 못보고 있어서 해결을 못하고 있는데 혹시 이런 경우 관련 해결팁이 있을까요 ?저는 이 화면으로 넘어가고 싶은데 안되네요 ㅠㅠ..
-
미해결React Native with Expo: 제로초에게 제대로 배우기
폴더 구조 관련 질문
제로초님 안녕하세요 expo 프로젝트의 폴더 구조에 대해서 고민이 있습니다.!!현재 src/app 폴더에서 페이지들을 관리하고 있고각 페이지 내부에서만 사용하는 하위 컴포넌트들은 src/app/settings/_components/AccountSettingsSection.tsx와 같이 _components 폴더 하위에 배치하고, named export를 통해 라우트로 잡히지 않게 하고 있습니다. 문제는 없지만 프로젝트를 실행시키면 WARN Route "./settings/_components/AccountSettingsSection/AccountSettingsSection.tsx" is missing the required default export. Ensure a React component is exported as default.라는 경고 메시지가 app/ 내부에서 named export 한 모든 하위 컴포넌트를 대상으로 출력됩니다. Next.js처럼 _components 내부의 하위 컴포넌트들은 완전히 무시하도록 하고 싶은데 아무리 찾아봐도 무시할 방법이 없는 거 같습니다 ㅠ 제로초님께서는 어떤 방법으로 페이지 내부 하위 컴포넌트들을 배치하시는지 궁금합니다..!! 관리하기 용이한 폴더 구조가 있다면 추천해주실 수 있으신가요??
-
미해결아바타 커뮤니티앱 만들기 (React Native Expo)
안드로이드 폰과 PC에서 테스트할때 화면 안보임과 오류 문의
일단 위 화면까지는 PC에서 나오는데, Development servers에 링크를 클릭하면 아무 반응이 없는데, 어떻게 해야하는지 문의드립니다.그리고, 실제 안드로이드 폰에서 테스트시에도, 아래와 같이 홈화면에 아무것도 나오지 않고, 하단 메뉴만 노출되고, 내 프로필을 클릭하면 하단 이미지 두번째처럼 오류가 나고 있습니다. 어떻게 해결해야하는지 문의드립니다.
-
미해결React Native with Expo: 제로초에게 제대로 배우기
혹시 리액트네이티브 관련해서 좋은 참고서도 있을까요??
강의 내용과는 별개로, 개인적으로 공부를 더 하고 싶은 부분이 있어 도움을 요청드립니다.현재 출퇴근 시간에 활용할 목적으로 실습보다는 내용이나 이론이 탄탄한 개발 서적을 찾고 있습니다. 예를 들면, JS Deep Dive처럼 언어의 원리나 깊은 내용을 다루는 책을 선호합니다.강의 영상이나 소리 대신 책으로 글을 읽으며 내용을 훑어보고, "이런 기능도 있구나, 이럴 땐 이렇게 하는구나" 하며 지식을 확장하는 용도로 활용하고 싶습니다.혹시 추천해주실 만한 서적이 있을까요?
-
미해결React Native with Expo: 제로초에게 제대로 배우기
제로초님께서는 Nativewind는 사용안하지는지 궁금합니다.
React/Next.js 프로젝트에서 Tailwind를 많이 사용하는 추세인데, 이와 매우 유사한 React Native 의 Natviewind 라는게 있더군요. Nativewind를 사용하면 기존 Tailwind에서 처럼 className으로 빠르게 스타일링할 수 있고 웹과 모바일 간 일관된 스타일 코드를 유지할 수 있는 장점이 있는 것 같습니다. React Native 기초 강의이므로 기본 React Native CSS 사용을 통해 구현하는 방식을 보여주신 것인지 궁금합니다.
-
미해결아바타 커뮤니티앱 만들기 (React Native Expo)
iOS 빌드 후 실기기에서 앱 시작
강사님 해결 되었습니다! 글 삭제가 안보이네요..
-
미해결React Native with Expo: 제로초에게 제대로 배우기
.
.
-
미해결아바타 커뮤니티앱 만들기 (React Native Expo)
[5-2] 글 목록 무한스크롤 구현하기 with InfiniteQuery 10:40/ useScrollTop(ref) 사용관련
18번째 줄에서 useEffect 같은 훅에서 호출한 게 아닌데 useScrollToTop()은 어떻게 트리거되어 동작하는지 궁금합니다. 6번째 줄에서 useScrollToTop() 훅은 "@react-navigation/native"에서 가져오고 있는데, "expo-router"와 같이 사용해도 되나요?
-
미해결React Native with Expo: 제로초에게 제대로 배우기
eas build:configure 안되는데, "git"이 반드시 설치되어 있어야 하나요?
eas build:configure 안되는데, "git"이 반드시 설치되어 있어야 하나요?
-
미해결React Native with Expo: 제로초에게 제대로 배우기
.
.
-
해결됨React Native with Expo: 제로초에게 제대로 배우기
혹시 해당 강의 보면서 테스트용으로 사용할 맥북을 구매할 예정인데 어느정도 스펙 이상으로 사야 할지 의견 받아볼수있을까요?
혹시 해당 강의 보면서 테스트용으로 사용할 맥북을 구매할 예정인데 어느정도 스펙 이상으로 사야 할지 의견 받아볼수있을까요?
-
미해결React Native with Expo: 제로초에게 제대로 배우기
.
.
-
미해결React Native with Expo: 제로초에게 제대로 배우기
.
.
-
해결됨웹 개발자의 연봉을 올려주는 하이브리드앱 with Expo 프레임워크
강의자료는 어디에 있나요?
강의자료는 어디에 있나요?[02-05] 헤더 옵션 심화 하는데 이미지 첨부하는 자료또는 강의에서 진행하는 소스코드를 어디서 받을 수 있는지 알려주세요.
-
미해결아바타 커뮤니티앱 만들기 (React Native Expo)
클라이언트 사이드에서 세션 관련 질문
서버쪽 코드의 .env 파일을 보면 JWT이 기본적으로 20분으로 설정되어 있는 것을 보았습니다. 예를 들어 JWT이 만료가 되고 이어서 진행을 하게 된다면, AuthRoute에 해당되는 경로들을 클라이언트에서는 여전히 접근이 가능하지만 서버에서 400번대를 응답합니다. 일반적으로 앱을 사용했던 경험을 생각하면 앱의 세션은 웹에 비해서 매우 길거나 백엔드에 대한 지식은 충분하지 않아 모르겠지만, 백엔드에서 새로 접속시 연장을 하는 등의 방법이 생각 나는데요 이런 경우에 클라이언트에서는 어떻게 처리를 해야하는지 아니면 실무적으로는 어떻게 처리하는 지 궁금합니다. 혹시라도 추가로 검색해서 공부할 수 있는 키워드가 있다면 알려주실 수 있을까요?
-
미해결React Native with Expo: 제로초에게 제대로 배우기
기기에서는 네트워크 에러가 납니다.
로컬에서는 분명히 문제 없이 DB에 접속이 되는데 빌드를 해서 apk파일을 만들어서 안드로이드 기기에 설치를 하면 network error가 나네요 app.json 파일에 "android": { "usesCleartextTraffic": true,이렇게 설정을 했는데도 네트워크 오류가 나는데 이것 말고 더 수정해야하는 내용이 있을까요?환경 설정은https://inf.run/6wYbc여기와 동일합니다.
-
미해결아바타 커뮤니티앱 만들기 (React Native Expo)
Android 에뮬레이터 환경설정 및 실행 (for Mac) 에러 문의
강사님, npx expo start를 입력후, a를 선택하면, 아래와 같이 에러 메시지가 나옵니다. 아래 이미지와 같이 pixel 9 pro가 정상적으로 설치되어 있는데, 뭐가 잘못된건지 모르겠어서 문의드립니다.ㅠ› Opening on Android...CommandError: No Android connected device found, and no emulators could be started automatically.Connect a device or create an emulator (https://docs.expo.dev/workflow/android-studio-emulator).Then follow the instructions here to enable USB debugging:https://developer.android.com/studio/run/device.html#developer-device-options. If you are using Genymotion go to Settings -> ADB, select "Use custom Android SDK tools", and point it at your Android SDK directory.
-
미해결React Native with Expo: 제로초에게 제대로 배우기
빌드 문의드립니다.
npm ls react ─┬ @expo/vector-icons@15.0.2│ └── react@19.1.0 deduped├─┬ @react-native-community/datetimepicker@8.4.4│ └── react@19.1.0 deduped├─┬ @react-navigation/bottom-tabs@7.4.9│ └── react@19.1.0 deduped├─┬ @react-navigation/elements@2.6.5│ ├── react@19.1.0 deduped│ ├─┬ use-latest-callback@0.2.6│ │ └── react@19.1.0 deduped│ └─┬ use-sync-external-store@1.6.0│ └── react@19.1.0 deduped├─┬ @react-navigation/native@7.1.18│ ├─┬ @react-navigation/core@7.12.4│ │ └── react@19.1.0 deduped│ └── react@19.1.0 deduped├─┬ expo-font@14.0.9│ └── react@19.1.0 deduped├─┬ expo-image@3.0.9│ └── react@19.1.0 deduped├─┬ expo-linking@8.0.8│ └── react@19.1.0 deduped├─┬ expo-router@6.0.12│ ├─┬ @expo/metro-runtime@6.1.2│ │ └── react@19.1.0 deduped│ ├─┬ @radix-ui/react-slot@1.2.0│ │ ├─┬ @radix-ui/react-compose-refs@1.1.2│ │ │ └── react@19.1.0 deduped│ │ └── react@19.1.0 deduped│ ├─┬ @radix-ui/react-tabs@1.1.13│ │ ├─┬ @radix-ui/react-context@1.1.2│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-direction@1.1.1│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-id@1.1.1│ │ │ ├─┬ @radix-ui/react-use-layout-effect@1.1.1│ │ │ │ └── react@19.1.0 deduped│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-presence@1.1.5│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-primitive@2.1.3│ │ │ ├─┬ @radix-ui/react-slot@1.2.3│ │ │ │ └── react@19.1.0 deduped│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-roving-focus@1.1.11│ │ │ ├─┬ @radix-ui/react-collection@1.1.7│ │ │ │ ├─┬ @radix-ui/react-slot@1.2.3│ │ │ │ │ └── react@19.1.0 deduped│ │ │ │ └── react@19.1.0 deduped│ │ │ ├─┬ @radix-ui/react-use-callback-ref@1.1.1│ │ │ │ └── react@19.1.0 deduped│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-use-controllable-state@1.2.2│ │ │ ├─┬ @radix-ui/react-use-effect-event@0.0.2│ │ │ │ └── react@19.1.0 deduped│ │ │ └── react@19.1.0 deduped│ │ └── react@19.1.0 deduped│ ├─┬ @react-navigation/native-stack@7.3.28│ │ └── react@19.1.0 deduped│ ├─┬ react-native-is-edge-to-edge@1.2.1│ │ └── react@19.1.0 deduped│ ├── react@19.1.0 deduped│ └─┬ vaul@1.1.2│ ├─┬ @radix-ui/react-dialog@1.1.15│ │ ├─┬ @radix-ui/react-dismissable-layer@1.1.11│ │ │ ├─┬ @radix-ui/react-use-escape-keydown@1.1.1│ │ │ │ └── react@19.1.0 deduped│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-focus-guards@1.1.3│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-focus-scope@1.1.7│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-portal@1.1.9│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-presence@1.1.5│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-primitive@2.1.3│ │ │ └── react@19.1.0 deduped│ │ ├─┬ @radix-ui/react-slot@1.2.3│ │ │ └── react@19.1.0 deduped│ │ ├─┬ react-remove-scroll@2.7.1│ │ │ ├─┬ react-remove-scroll-bar@2.3.8│ │ │ │ └── react@19.1.0 deduped│ │ │ ├─┬ react-style-singleton@2.2.3│ │ │ │ └── react@19.1.0 deduped│ │ │ ├── react@19.1.0 deduped│ │ │ ├─┬ use-callback-ref@1.3.3│ │ │ │ └── react@19.1.0 deduped│ │ │ └─┬ use-sidecar@1.1.3│ │ │ └── react@19.1.0 deduped│ │ └── react@19.1.0 deduped│ └── react@19.1.0 deduped├─┬ expo-status-bar@3.0.8│ └── react@19.1.0 deduped├─┬ expo@54.0.13│ ├─┬ @expo/devtools@0.1.7│ │ └── react@19.1.0 deduped│ ├─┬ expo-asset@12.0.9│ │ └── react@19.1.0 deduped│ ├─┬ expo-keep-awake@15.0.7│ │ └── react@19.1.0 deduped│ ├─┬ expo-modules-core@3.0.21│ │ └── react@19.1.0 deduped│ └── react@19.1.0 deduped├─┬ react-dom@19.1.0│ └── react@19.1.0 deduped├─┬ react-native-gesture-handler@2.28.0│ └── react@19.1.0 deduped├─┬ react-native-reanimated@4.1.3│ └── react@19.1.0 deduped├─┬ react-native-safe-area-context@5.6.1│ └── react@19.1.0 deduped├─┬ react-native-screens@4.16.0│ ├─┬ react-freeze@1.0.4│ │ └── react@19.1.0 deduped│ └── react@19.1.0 deduped├─┬ react-native-web@0.21.1│ └── react@19.1.0 deduped├─┬ react-native-webview@13.15.0│ └── react@19.1.0 deduped├─┬ react-native-worklets@0.5.1│ └── react@19.1.0 deduped├─┬ react-native@0.81.4│ ├─┬ @react-native/virtualized-lists@0.81.4│ │ └── react@19.1.0 deduped│ └── react@19.1.0 deduped├── react@19.1.0└─┬ tosspayments-react-native@1.0.7 ├─┬ react-native-webview@11.26.1 │ └── react@19.1.0 deduped └── react@19.1.0 dedupednpm ls react-native├─┬ @expo/vector-icons@15.0.2│ └── react-native@0.81.4 deduped├─┬ @react-native-community/datetimepicker@8.4.4│ └── react-native@0.81.4 deduped├─┬ @react-navigation/bottom-tabs@7.4.9│ └── react-native@0.81.4 deduped├─┬ @react-navigation/elements@2.6.5│ └── react-native@0.81.4 deduped├─┬ @react-navigation/native@7.1.18│ └── react-native@0.81.4 deduped├─┬ @types/react-native@0.72.8│ └─┬ @react-native/virtualized-lists@0.72.8│ └── react-native@0.81.4 deduped├─┬ expo-constants@18.0.9│ └── react-native@0.81.4 deduped├─┬ expo-file-system@19.0.17│ └── react-native@0.81.4 deduped├─┬ expo-font@14.0.9│ └── react-native@0.81.4 deduped├─┬ expo-image@3.0.9│ └── react-native@0.81.4 deduped├─┬ expo-linking@8.0.8│ └── react-native@0.81.4 deduped├─┬ expo-router@6.0.12│ ├─┬ @expo/metro-runtime@6.1.2│ │ └── react-native@0.81.4 deduped│ ├─┬ @react-navigation/native-stack@7.3.28│ │ └── react-native@0.81.4 deduped│ ├─┬ react-native-is-edge-to-edge@1.2.1│ │ └── react-native@0.81.4 deduped│ └── react-native@0.81.4 deduped├─┬ expo-status-bar@3.0.8│ └── react-native@0.81.4 deduped├─┬ expo-symbols@1.0.7│ └── react-native@0.81.4 deduped├─┬ expo-system-ui@6.0.7│ └── react-native@0.81.4 deduped├─┬ expo-web-browser@15.0.8│ └── react-native@0.81.4 deduped├─┬ expo@54.0.13│ ├─┬ @expo/cli@54.0.11│ │ └── react-native@0.81.4 deduped│ ├─┬ @expo/devtools@0.1.7│ │ └── react-native@0.81.4 deduped│ ├─┬ expo-asset@12.0.9│ │ └── react-native@0.81.4 deduped│ ├─┬ expo-modules-core@3.0.21│ │ └── react-native@0.81.4 deduped│ └── react-native@0.81.4 deduped├─┬ react-native-daum-postcode@1.0.11│ └── react-native@0.81.4 deduped├─┬ react-native-gesture-handler@2.28.0│ └── react-native@0.81.4 deduped├─┬ react-native-reanimated@4.1.3│ └── react-native@0.81.4 deduped├─┬ react-native-safe-area-context@5.6.1│ └── react-native@0.81.4 deduped├─┬ react-native-screens@4.16.0│ └── react-native@0.81.4 deduped├─┬ react-native-webview@13.15.0│ └── react-native@0.81.4 deduped├─┬ react-native-worklets@0.5.1│ └── react-native@0.81.4 deduped├─┬ react-native@0.81.4│ └─┬ @react-native/virtualized-lists@0.81.4│ └── react-native@0.81.4 deduped└─┬ tosspayments-react-native@1.0.7 ├─┬ react-native-send-intent@1.3.0 │ └── react-native@0.81.4 deduped ├─┬ react-native-webview@11.26.1 │ └── react-native@0.81.4 deduped └── react-native@0.81.4 dedupednpm ls expo├─┬ @react-native-community/datetimepicker@8.4.4│ └── expo@54.0.13 deduped├─┬ expo-constants@18.0.9│ └── expo@54.0.13 deduped├─┬ expo-dev-client@6.0.15│ ├─┬ expo-dev-launcher@6.0.15│ │ └── expo@54.0.13 deduped│ ├─┬ expo-dev-menu-interface@2.0.0│ │ └── expo@54.0.13 deduped│ ├─┬ expo-dev-menu@7.0.14│ │ └── expo@54.0.13 deduped│ ├─┬ expo-manifests@1.0.8│ │ └── expo@54.0.13 deduped│ ├─┬ expo-updates-interface@2.0.0│ │ └── expo@54.0.13 deduped│ └── expo@54.0.13 deduped├─┬ expo-file-system@19.0.17│ └── expo@54.0.13 deduped├─┬ expo-font@14.0.9│ └── expo@54.0.13 deduped├─┬ expo-haptics@15.0.7│ └── expo@54.0.13 deduped├─┬ expo-image-manipulator@14.0.7│ ├─┬ expo-image-loader@6.0.0│ │ └── expo@54.0.13 deduped│ └── expo@54.0.13 deduped├─┬ expo-image-picker@17.0.8│ └── expo@54.0.13 deduped├─┬ expo-image@3.0.9│ └── expo@54.0.13 deduped├─┬ expo-router@6.0.12│ ├─┬ @expo/metro-runtime@6.1.2│ │ └── expo@54.0.13 deduped│ └── expo@54.0.13 deduped├─┬ expo-secure-store@15.0.7│ └── expo@54.0.13 deduped├─┬ expo-splash-screen@31.0.10│ ├─┬ @expo/prebuild-config@54.0.5│ │ └── expo@54.0.13 deduped│ └── expo@54.0.13 deduped├─┬ expo-symbols@1.0.7│ └── expo@54.0.13 deduped├─┬ expo-system-ui@6.0.7│ └── expo@54.0.13 deduped├─┬ expo-web-browser@15.0.8│ └── expo@54.0.13 deduped└─┬ expo@54.0.13 ├─┬ @expo/cli@54.0.11 │ └── expo@54.0.13 deduped ├─┬ @expo/metro-config@54.0.6 │ └── expo@54.0.13 deduped ├─┬ babel-preset-expo@54.0.4 │ └── expo@54.0.13 deduped ├─┬ expo-asset@12.0.9 │ └── expo@54.0.13 deduped └─┬ expo-keep-awake@15.0.7 └── expo@54.0.13 deduped버전을 알려주시면 질문자분과 동일한 환경에서 답변 드릴 수 있습니다. npx expo run:android 로 apk파일을 만들었는데 안드로이드 기기에서 파일을 실행하면 expo go가 설치가 되서 실행이 됩니다.apk 파일을 받아서 설치하면 바로 앱이 실행되게 할 수 있는 파일을 만들어서 다른 장소에 있는 기기에서 테스트를 하려면 어떻게 해야할까요?