묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결타입스크립트로 배우는 리액트(React.js) : 기초부터 최신 기술까지 완벽하게
counterReducer.ts
counterReducer.ts 파일은 왜 tsx파일이 아닌 ts인가요??
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
04-02 Next 페이지 이동
useState(0) 부분에서 오류가 나 실행이 안됩니다. 오류를 못찾겠어요ㅠㅠ 알려주세요
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
리퀘스트 메모이제이션은 클라이언트 컴포넌트에서도 동작하나요?
안녕하세요. 정말 바보같은 질문이라고 생각하고 있는데요. 이런 질문 정말 죄송합니다. 리퀘스트 메모이제이션은 서버 측에서 렌더링하는 과정에서 일어난다고 하셨는데 클라이언트 컴포넌트도 서버 측에서 렌더링이 되긴 하니까 리퀘스트 메모이제이션이 가능하지 않을까 생각했습니다. 근데 useEffect에서 GET 요청으로 보낼 경우 서버측에서는 렌더링되지 않으니까 메모이제이션이 안 될 것으로 생각이 되었습니다. 클라이언트 컴포넌트에 리퀘스트 메모이제이션이 적용되지 않는다고 이해하면 될까요?이런 리퀘스트 메모이제이션은 서버에서 일어나는거니까 당연히 Network 탭에서 확인이 불가능하겠죠?그리고 병렬 라우트에서도 리퀘스트 메모이제이션이 동작하나요?
-
미해결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으로 했어야하는데 회사 팀으로 해버렸어요 어떻게 수정해야할가요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
수정하기 구현 중 작성완료 버튼을 누르면 아무 리스트도 뜨지 않습니다.
제목 그대로 수정하기 기능 구현 중 작성완료 버튼을 누르면 리스트에 나와야 하는데 위의 그림처럼 빈 리스트가 나옵니다. 계속 강의와 코드를 번갈아가면서 보는데 오류를 잡기 쉽지 않습니다. 아래는 실습했던 소스코드입니다. https://github.com/PARKSUNJUNG/section12 무엇이 문제일까요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
React.memo 컴포넌트 렌더링 최적화 미션 day16 질문
안녕하세요. 강사님.react day 16 미션 contactEditor onChange 이벤트 발생 관련 렌더링 질문이 있습니다.아래와 같이 ContactList에도 React.memo 내장함수를 적용했음에도 불구하고 contactEditor에서 텍스트를 입력하면 같이 렌더링 되는 이유를 모르겠습니다.const ContactList = ({contacts, onDelete}) => { return ( <div className="ContactList"> <div className="title">Contact List</div> {contacts.map((contact) => { return <ContactItem key={contact.id} contact={contact} onDelete={onDelete}/>; })} </div> ) } export default memo(ContactList);const ContactItem = ({contact, onDelete}) => { const onDeleteButtion = () => { onDelete(contact.id); } return ( <div className="ContactItem"> <div className="name">{contact.name}</div> <div className="email">{contact.email}</div> <button onClick={onDeleteButtion} name="remove" >🗑️ Remove</button> </div> ) } export default memo(ContactItem);
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
[CSS&JS 마스터]공부하는 속도, 코드 리뷰
현재 군대 사지방에서 공부하고 있는 군인입니다.지금 현재 [입중급]CSS&JS 마스터를 수강하고 있습니다.섹션1을 마치고 과제1을 모두 마치는 데에 총 4일이 소요됐습니다.매일 2시간 씩밖에 컴퓨터를 사용하지 못하는데 이정도 속도면 괜찮은지 여쭙고 싶습니다. 그리고 중간중간 코드 리뷰를 받고 싶을 때에는 어떻게 하면 될까요?
-
미해결Next.js 완벽 마스터 (v15): 노션 기반 개발자 블로그 만들기 (with 커서AI)
상세페이지 구현 Author의 name 프러퍼티가 조회가 안됩니다.
아무리 해도 안되서, 기존 코드를 복붙하고 사용하고, 공식문서를 봐도 페이지 properties의 Author.people[0] 내부에는 { id: "0219380..." , object: "user" }만 있습니다. 이마저도 문자열이라 name프로퍼티가 없습니다.노션 템플릿도 author가 적용이 되어있는 걸 확인했는데요. 혹시 api가 변경이 된 것일까요?
-
미해결타입스크립트로 배우는 리액트(React.js) : 기초부터 최신 기술까지 완벽하게
immer 에서 불변성이란
immer 에서 불변성이란게 무슨 뜻인가요?
-
미해결React Native with Expo: 제로초에게 제대로 배우기
빌드 오류
빌드 까지 성공했는데 orbit에서 시뮬레이터 실행하면 사진처럼 오류가 나옵니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
List컴포넌트에서 필터링 하는 것과 App 컴포넌트에서 필터링하는 것의 차이
🚨 필독) 질문하시기 전에 꼭 읽어주세요 (10초 소요)제목을 구체적으로 작성해 주세요✅ 좋은 예 : 감정일기장 Home 구현중 xx 이슈가 발생합니다.⛔️ 나쁜 예 : 이거 왜 안되나요?, 오류나요 도와주세요 등비슷한 궁금함을 갖고 계신 분들께 도움이 될 수 있어요! 코드의 이슈는 전체 프로젝트를 "링크 형태"로 올려주셔야 원인을 파악할 수 있습니다.깃허브, 구글드라이브 등의 수단을 통해 링크 형태로 전달해주세요직접 실행해보며 원인을 파악해야 하기 때문에 텍스트 형태로 붙여넣는건 삼가해주세요 🥲 답변이 도움이 되셨다면 답글 or 해결완료 버튼을 클릭해주세요비슷한 궁금함을 갖고 계신 분들께 도움이 될 수 있어요!제 답변이 여러분께 도움이 되었는지 저도 알고 싶어요 🥲 강의 내용에 궁금한 점이 있다면 몇 챕터의 몇 분 몇 초인지 알려주시면 더 좋아요더 빠른 답변이 가능합니다! 안녕하세요. 강사님! 8.5) Read - 투두리스트 렌더링하기 강의에서 질문이 있습니다. 검색어로 필터링하는 기능이 List.jsx에 되어있는데요, 이 부분 관련해서 질문이 있습니다. 필터링이 App.jsx에서 필터링 하는 것과 어떤 차이가 있나요??어떤 이유에서 List.jsx에서 필터링하는지도 궁금합니다. (원본 데이터를 건들지않기 위함(?)일까요?)그리고 어떤 컴포넌트에서 필터링 하더라도 리렌더링이 발생하는건가요?감사합니다!
-
미해결타입스크립트로 배우는 리액트(React.js) : 기초부터 최신 기술까지 완벽하게
파일확장자 질문
기본적으로 tsx 확장자로 된 파일을 만들어서 작업을 하는데 때에 따라 ts 같은 파일도 만든데 무슨 차이가 있나요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
section 8-2 css 선언 문의
안녕하세요. 강사님.section 8-2 투두리스트 프로젝트 UI 구현하기에서css 스타일에 대해서 질문이 있습니다..List > input 과같이 중간에 > 연산이 있는 경우와 없는 경우의 차이는 무엇인가요?미션 day15 ContactEditor css 스타일에서.input_wrapper className이 이미 적용되어 있는데 아래와 같이 부모 속성인 .ContactEditor를 명시할 필요가 있는지도 궁금합니다..ContactEditor .input_wrapper
-
해결됨React & FastAPI로 만드는 투표 커뮤니티 플랫폼: 결제 시스템으로 수익화까지!
Navbar.jsx 메뉴 바 제작 (2부) 강의 MobileToggleButton.jsx 코드가 다른 것 같아요
Navbar.jsx 메뉴 바 제작 (2부) 강의 입니다.MobileToggleButton.jsx 강의 코드와노션에 올라와 있는 코드가 다른 것 같네요? 강의에서는 toggle 관련 코드이고노션에서는 onClick={() => setIsOpen(!isOpen)}이렇게 되어있는데요노션 코드로 하니 에러가 발생하는데강의코드가 맞는건가요??
-
미해결타입스크립트로 배우는 리액트(React.js) : 기초부터 최신 기술까지 완벽하게
"" , '', `` 각각 사용 방법이 궁금해요.
"" , '', `` 각각 사용 방법이 궁금해요.
-
미해결@시코 - TypeScript 제대로 배우기(초중급)
interface 와 type
안녕하세요. 잘듣고 있습니다:)강의에서 웬만하면 interface 대신 type 을 쓰라고 말씀하시더라고요!저는 줄곧 type 만 쓰다가 최근에 props 같은 객체 타입은 interface를 사용하는 방향으로 바꿨는데, 이런 경우도 interface 보다 타입을 쓰는게 좋나요?(왜 그런지가 궁금합니다..!!) 그리고 interface 랑 type의 차이를 더 자세히 알고싶어요!