inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

추가 기능과 삭제 기능에 대해 질문있습니다.

미해결

React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지

안녕하세요 강의 너무 잘 보고 있습니다. 공부를 하다가 궁금한점이 생겨서 질문을 드립니다. 메모를 추가 삭제 기능에서 처음에는 추가같은 경우에는.... const handleAddNote = () => { setNotes([...notes, {id: "", content: ""}]) } 이런식으로 ...notes로 기존 값에다가 id, content로 새로운 메모를 추가하는 기능으로 알고 있는데 나중에는... // 새로운 캔버스 export function createCanvas() { const newCanvas = { title: uuid().substring(0, 4) + '새로운 린 캔버스', lastModified: dayjs().format('YYYY-MM-DD HH:mm:ss'), category: '신규', }; return canvases.post('/', newCanvas); 이런식으로 추가기능을 만들고 삭제도 filter를 이용을 하는데 나중에는 export async function deleteCanvas() { await canvases.delete(`/${id}`); } 이런식으로 삭제 기능을 작성이 되었더라구요. 첫번째 코드들은 처음에는 추가, 삭제기능이 되지만 새로고침 후에는 다시 원래대로 나오고 두번째 코드들은 서버에서 추가, 삭제 기능을 만들어서 새로고침을 하면 실제로도 추가, 삭제 기능을 하게 되는 것인가요? 만약 그렇다면 첫번째 코드들은 새로고침을 하면 원대대로 되는데 왜 사용이 되는건지 궁금합니다.

  • react
  • React-Context
  • react-router
  • tailwindcss
  • react-query
부드러운 족제비 댓글 1 좋아요 0 조회수 116

msw ssr 관련 질문입니다.

미해결

Next + React Query로 SNS 서비스 만들기

안녕하세요 제로초님 next 15버전으로 바뀌고나서 새로 처음부터 다시 강의를 들으면서 만들어 보고 있습니다. next 15버전으로 바뀌고 나서 옛날꺼랑 msw 설정이 바뀌었더라구요 그런데 강의대로 msw 설정을 하니 ssr 적용이 제대로 안되는 것 같습니다. msw 설정 후 페이지의 network 탭에 localhost document의 미리보기 내용이 없습니다. ssr이 된다면 document에 미리보기에 내용이 넘어와야 하는데 msw 설정 후에 없습니다. 옛날에 만들어 놓았던, next14 버전으로 했었던 프로젝트에서는 미리보기에 내용이 잘 담겨 ssr이 잘되고 있고, 15버전으로 진행한 프로젝트에서 layout에 있는 mswprovider 컴포넌트를 없애주니 다시 미리보기에 내용이 생기는 것으로 보아 msw 설정에서 문제가 생긴 것으로 추측됩니다. 아래는 옛날 14 버전으로 진행했던 코드입니다. msw 2.1 버전입니다. "use client"; import { useEffect } from "react"; export const MSWComponent = () => { useEffect(() => { if (typeof window !== "undefined") { if (process.env.NEXT_PUBLIC_API_MOCKING === "enabled") { require("@/mocks/browser"); } } }, []); return null; }; 아래는 지금 하고있는 코드입니다. msw 2.7.3 버전입니다. "use client"; import { Suspense, use } from "react"; import { handlers } from "@/mocks/handlers"; const mockingEnabledPromise = typeof window !== "undefined" // browser일 때 ? import("@/mocks/browser").then(async ({ default: worker }) => { if (process.env.NODE_ENV === "production") { return; } await worker.start({ // msw가 처리할 수 없는 요청이 들어왔을 때 onUnhandledRequest(request, print) { if (request.url.includes("_next")) { // next가 내부적으로 처리하는 url이기 때문에 msw가 처리할 필요 없음 그래서 return return; } print.warning(); }, }); worker.use(...handlers); (module as any).hot?.dispose(() => { worker.stop(); }); console.log(worker.listHandlers()); }) : Promise.resolve(); export function MSWProvider({ children, }: Readonly<{ children: React.ReactNode; }>) { // If MSW is enabled, we need to wait for the worker to start, // so we wrap the children in a Suspense boundary until it's ready. return ( <Suspense fallback={null}> <MSWProviderWrapper>{children}</MSWProviderWrapper> </Suspense> ); } function MSWProviderWrapper({ children, }: Readonly<{ children: React.ReactNode; }>) { // use 사용해서 promise 실행 기다리고 children return use(mockingEnabledPromise); return children; } 제 추측으로는 MSWProvider에 있는 Suspense때문에 ssr 이 안되는 것 같은데, 맞는지 궁금합니다. 그리고 맞다면 next 사용시 msw로 데이터를 mocking 하게 되면 ssr 확인을 어떻게 해야 할까요??

  • react
  • next.js
  • react-query
  • next-auth
  • msw
강주호 댓글 1 좋아요 0 조회수 212

react-query enabled 옵션

미해결

Next + React Query로 SNS 서비스 만들기

react-query 사용 시 enabled 옵션이 true인 경우 queryFn을 실행하지는 않지만 queryKey는 생성되는데 queryKey가 안 생기게 하자니 Hook을 조건부로 작성할 수 없어서 이런 방법은 불가능하고 queryFn은 실행하지 않으니 괜찮다는 생각도 드는데 예를 들면 ["post", id]가 있고 id가 null인 경우 queryKey는 ["post", null]로 무조건 생성이 되더군요. Observe도 많은 곳에서 쓸 수록 2 or 3 이런 식으로 증가하고요. 이게 성능에 문제가 없을지 아니면 queryKey 생성까지 막을 수 있는 방법이 있는지 궁금합니다.

  • react
  • next.js
  • react-query
yskim 댓글 2 좋아요 0 조회수 282

메모 추가 및 제거UI 부분 질문있습니다.

미해결

React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지

안녕하세요 메모 추가 및 제거UI 강의를 듣다가 조금 헷갈리는 부분이 있어 질문을 드립니다. import { useEffect, useRef, useState } from 'react'; import { AiOutlineClose, AiOutlineCheck } from 'react-icons/ai'; const Note = ({ id, onRemoveNote }) => { const colorOptions = [ 'bg-yellow-300', 'bg-pink-300', 'bg-blue-300', 'bg-green-300', ]; const [isEditing, setIsEditing] = useState(false); const textareaRef = useRef(null); const [content, setContent] = useState(''); useEffect(() => { if (textareaRef.current) { textareaRef.current.style.height = textareaRef.current.scrollHeight + 'px'; } }, [content]); return ( <div className={`p-4 bg-yellow-300 relative max-h-[32rem] overflow-hidden`} onClick={() => setIsEditing(true)} > <div className="absolute top-2 right-2"> {isEditing ? ( <button aria-label="Check Note" className="text-gray-700" onClick={e => { e.stopPropagation(); setIsEditing(false); }} > <AiOutlineCheck size={20} /> </button> ) : ( <button aria-label="Close Note" className="text-gray-700" onClick={() => onRemoveNote(id)} > <AiOutlineClose size={20} /> </button> )} </div> <textarea ref={textareaRef} value={content} onChange={e => setContent(e.target.value)} className={`w-full h-full bg-transparent resize-none border-none focus:outline-none text-gray-900 overflow-hidden`} aria-label="Edit Note" placeholder="메모를 작성하세요." style={{ height: 'auto', minHeight: '8rem' }} readOnly={!isEditing} /> {isEditing && ( <div className="flex space-x-2"> {colorOptions.map((option, index) => ( <button key={index} className={`w-6 h-6 rounded-full cursor-pointer outline outline-gray-50 ${option}`} aria-label={`Change color to ${option}`} /> ))} </div> )} </div> ); }; export default Note; 이 코드에서 useEffect(() => { if (textareaRef.current) { textareaRef.current.style.height = textareaRef.current.scrollHeight + 'px'; } }, [content]); 이렇게 useEffect를 사용했는데 useEffect는 컴포넌트가 마운트 될 때 먼저 실행이 되고 또 의존성배열이 빈배열이면 한번만 실행이 된다로 알고 있습니다. 그럼 여기서는 빈 배열이 아닌 content가 있으니 메모장에 작성할 때마다 메모장을 늘어나게 하기 위해서 useEffect를 사용했다라고 이해하면 될까요?

  • react
  • React-Context
  • react-router
  • tailwindcss
  • react-query
부드러운 족제비 댓글 2 좋아요 0 조회수 122

20:34초에 await이 아무 효과가 없다고 뜨는데 사용하신 이유가 궁금합니다

해결됨

[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)

✅ 모든 질문들은 슬랙 채널에서 답변드리고 있습니다. 💡 ”로펀의 인프런 상담소” 슬랙 채널 가입하기 💡 평일중에는 퇴근 이후(저녁 7시)에 답변을 받아보실 수 있고, 주말중에는 상시 답변드리고 있습니다. 안녕하세요! 로펀님 강의 잘 보고 있습니다 ㅎㅎ 다름이 아니고 TodoList에서 할일 CRUD 기능을 구현할 때 20:34초에서 onChange 함수에 async, await를 걸어주셨는데, hover 하니까 await이 아무 효과가 없다고 뜨더라구요 혹시 그럼에도 await를 달아주신 이유가 있나요? 이전에 같이 일하던 동료분도 가끔 이렇게 쓰셨었는데.. 그때는 제가 await가 아무런 작용을 안하는데 왜 쓰지? 하면서 다 뺐었거든요.. 😂 그러면 안됐을까요... 🥲 궁금합니다!!

  • firebase
  • next.js
  • tailwindcss
  • react-query
  • supabase
xiwnwls5034 댓글 2 좋아요 0 조회수 211

cocoapods 설치 오류 관련

해결됨

맛집 지도앱 만들기 (React Native & NestJS)

이슈 React Native 프로젝트 생성 시 CocoaPods 오류 sudo gem uninstall cocoapods 실행 시 cocoapods 설치 안됐다는 메시지 확인 그래서 sudo gem install cocoapods, gem install cocoapods 명령어를 통해 cocoapods 수차례 재설치 및 관련 패키지 (drb, activesupport 등) 설치했음에도 안됨 Xcode 상 Location, Command Line Toolds 도 확인 zshrc 파일 내에도 말씀하신대로 명령어 입력해놓음 -> 후 프로젝트 생성 자체가 안되서 진도를 못나가서 너무 해결하고 싶은데 어떻게 해야할까요? 개발중인 OS 등의 버전 Mac OS: 15.3.2(24D81) ReactNative: 0.72.6(으로 생성하라고 하셔서 버전 명시하여 프로젝트 생성하였으나 실패) Node: v23.10.0 Ruby: ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a) [arm64-darwin24] rbenv: 1.3.2

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
Deokhyun Kim 댓글 3 좋아요 0 조회수 279

useGetMe 함수 관련 질문

해결됨

아바타 커뮤니티앱 만들기 (React Native Expo)

❗ 질문 작성시 꼭 참고해주세요 에러 메세지에서 단서를 찾을 수 있는 경우가 많습니다. 에러 메세지를 읽고 한번 검색해보시는것을 추천드립니다. 질문글을 작성하실때는, 현재 문제(또는 에러)와 코드나 github 을 첨부해주세요. 개발중인 OS, ReactNative, Node 버전 등의 개발환경 을 알려주셔야합니다. 에러메세지는 일부분이 아닌 전체 상황 을 올려주세요. 일부만 보여주시면 답변이 어렵습니다. 에러 잘라서 올리시면 안됩니다! (에러 일부만 자르거나 일부만 복사하지말아주세요) useGetMe 함수 만드실 때, useQuery 옵션으로 onSuccess, onError 사용 안하시고, useEffect로 사이드 이펙트를 처리하시는 이유가 궁금합니다!

  • javascript
  • react
  • react-native
  • typescript
  • react-query
김진영 댓글 2 좋아요 0 조회수 180

yarn add @react-navigation/native 설치 후 환경 에러

해결됨

맛집 지도앱 만들기 (React Native & NestJS)

yarn add @react-navigation/native 설치 이후 부터 java 버전이 다르다고 나와서 몇일째 진도를 못나가고 있습니다. 제발 도와주세요... Task :react-native-safe-area-context:compileDebugKotlin 'compileDebugJavaWithJavac' task (current target is 11) and 'compileDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version.

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
lsb1006 댓글 2 좋아요 0 조회수 261

tailwind 설치에 대해 질문있습니다.

미해결

React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지

안녕하세요 현재 Tailwind CSS 강의 부분을 보고 있는데 강의에 나오는 테일윈드 사이트와 현재 테일윈드 사이트가 좀 다른거 같아 우선 강의에 나오는 설치 명령어로 하고 있는데 그 중에 npx tailwindcss init -p 이 명령어를 작성하니 아래 이미지처럼 에러가 계속 나더라구요. 어떤 부분이 잘못된건지 모르겠습니다.

  • react
  • React-Context
  • react-router
  • tailwindcss
  • react-query
댓글 2 좋아요 0 조회수 356

app/_layout.tsx에서 useEffect 구간 의미

해결됨

아바타 커뮤니티앱 만들기 (React Native Expo)

혹시 app/_layout.tsx 파일에서 아래 부분 의미가 뭘까요...? useEffect(() => { if (loaded) { SplashScreen.hideAsync(); } }, [loaded]); if (!loaded) { return null; }

  • javascript
  • react
  • react-native
  • typescript
  • react-query
메리빌리아 댓글 2 좋아요 0 조회수 123

개인 개발자 비즈 앱 전환 버튼이 안보여요

해결됨

[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)

✅ 모든 질문들은 슬랙 채널에서 답변드리고 있습니다. 💡 ”로펀의 인프런 상담소” 슬랙 채널 가입하기 💡 평일중에는 퇴근 이후(저녁 7시)에 답변을 받아보실 수 있고, 주말중에는 상시 답변드리고 있습니다. 강의처럼 개인 개발자 비즈 앱 전환 버튼이 뜨지 않고 카카오 비즈니스 통합 서비스 약관 동의로 표시되어있는데,, 어떻게 해야 이메일 필수항목도 넣을 수 있을까요?

  • firebase
  • next.js
  • tailwindcss
  • react-query
  • supabase
codestudy 댓글 2 좋아요 0 조회수 315

supabase에서 가입된 유저를 강제로 로그아웃 시키는 방법?

해결됨

[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)

✅ 모든 질문들은 슬랙 채널에서 답변드리고 있습니다. 💡 ”로펀의 인프런 상담소” 슬랙 채널 가입하기 💡 평일중에는 퇴근 이후(저녁 7시)에 답변을 받아보실 수 있고, 주말중에는 상시 답변드리고 있습니다. supabase에서 가입된 유저를 강제로 로그아웃 시키는 방법이 궁금합니다.

  • firebase
  • next.js
  • tailwindcss
  • react-query
  • supabase
codestudy 댓글 2 좋아요 0 조회수 477

4-0 googlemap 관련 트러블슈팅

해결됨

맛집 지도앱 만들기 (React Native & NestJS)

-안드로이드 환경에서 작업했습니다 강의 깃허브의 package.json를 그대로 복붙해서 같은 버전의 라이브러리들을 설치해줘도 "execution failed for task ':react-native-maps:compiledebugjavawithjavac'. " 의 빌드 에러가 떠서 해결 과정 공유드려요. 해당 라이브러리 깃허브 접속 후 issue 탭 클릭 open 혹은 close 상태 모두 다 해당 react-native 버전 검색 (저는 0.72.6 이라 입력했어요) 발생한 에러와 같은 메세지 글 찾으면서 추천해주는 버전 찾기 package.json에 해당 버전 입력 node.modules 삭제 후 재설치 -> 프로젝트 재가동 저 같은 경우엔 아래와 같은 버전으로 지도 띄웠습니다. (^있으면 지워야 함.) "react-native-maps": "1.15.3",

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
김종여 댓글 1 좋아요 0 조회수 146

메세지를 전송하면 DB에는 남는데 화면에 보이지 않아요.

해결됨

[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)

✅ 모든 질문들은 슬랙 채널에서 답변드리고 있습니다. 💡 ”로펀의 인프런 상담소” 슬랙 채널 가입하기 💡 평일중에는 퇴근 이후(저녁 7시)에 답변을 받아보실 수 있고, 주말중에는 상시 답변드리고 있습니다. 제목 그대로 DB에는 채팅이 잘 남고 있는데 화면에는 보이지 않습니다 console로 찍어봐도 빈배열을 반환하는데 이유가 뭘까요?? 강의를 돌려보고 gpt를 써도 원인을 못찾겠어요. 제가 생각했을때 채팅 목록을 나타내는 코드를 캡쳐해서 보내고 현재까지 문제생긴 부분을 커밋해둘테니 캡쳐사진으로 확인이 안되시면 제 깃헙에서 확인해주세요! 깃헙 링크

  • firebase
  • next.js
  • tailwindcss
  • react-query
  • supabase
찬우 이 댓글 2 좋아요 0 조회수 194

3-8 React-query의 node_modules 에러

미해결

맛집 지도앱 만들기 (React Native & NestJS)

안녕하세요. 3-8 강의에서 25분까지 수강했는데요, 이 그림과 같은 에러가 뜨더라고요. 어찌저찌 에러메시지 따라 아래와 같이 해서 우선 해결했는데요, @babel~~ 어쩌고 package설치 babel.config.js에 아래와 같이 설정 plugins: [ 'react-native-reanimated/plugin', ['@babel/plugin-transform-private-methods', {loose: true}], ], 이 에러는 왜 발생한건가요? 해결하긴했는데 왜 발생한건지에 대한것도 알고 싶어 여쭤봅니다.

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
김종여 댓글 1 좋아요 0 조회수 134

getPostRecommend() tags 속성 사용

미해결

Next + React Query로 SNS 서비스 만들기

getPostRecommend() 함수 내부에서 tags : ['post', 'recommends'] 로 설정이 되어있는데, queryClient.prefetch 함수나, useQuery 함수의 queryKey와 항상 동일하게 일치시켜야 하나요? 불러온 데이터를 캐싱할 경우, react-query에서만 관리를 키를 관리해도 되지 않을까요?

  • react
  • next.js
  • react-query
  • next-auth
  • msw
그린티라떼 댓글 2 좋아요 0 조회수 110

Todo Context에 대해 질문있습니다.

미해결

React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지

안녕하세요 강의를 너무 잘 보고 있습니다. 강의를 보다가 조금 헷갈리는 부분이 있는데 TodoContext.Provider로 value를 todos로 하고 그 밑에는 TodoDispatchContext.Provider로 value는 dispatch로 작성이 되었는데 이렇게 TodoContext와 TodoDispatchContext를 두개 작성된 이유가 궁금합니다.

  • react
  • React-Context
  • react-router
  • tailwindcss
  • react-query
부드러운 족제비 댓글 1 좋아요 0 조회수 127

ISR로 블로그 구현시 궁금증 질문있습니다!!

미해결

Next + React Query로 SNS 서비스 만들기

안녕하세요! 좋은 강의 감사합니다 이번 강의를 수강하며 개념적으로 궁금한 점이 있어서 질문드려봅니다. ISR로 블로그 글을 revalidate 시간을 24시간으로 많이 넣어둔다고 하셨습니다. 티스토리나 벨로그에선 기존 글을 수정하면 바로 업데이트가 됩니다. 제가 아는 지식으로 ISR을 하게 된다면 24시간 동안 수정해도 기존 데이터를 보여주어야 한다고 생각해서 ISR보단 SSR이 적합하다고 생각했습니다. ISR은 이러한 문제를 해결할 수 있는지 궁금합니다. 블로그 글이나 뉴스같은 경우 대량의 데이터이기 때문에 그만큼 대량의 페이지가 HTML 파일로 생성되어 큰 용량을 차지할 것 같다는 생각이 들었습니다. 이러한 부분은 어떻게 해결할 수 있는지 궁금합니다. ISR / SSG를 사용하는 페이지 경로로 Next/Link를 사용하여 접속할 경우 클라이언트 사이드 라우팅이 이루어진다고 알고 있습니다. 이 경우 미리 빌드된 HTML 파일을 렌더링하는 ISR/SSG의 장점이 사라지는 것처럼 보이는데, Next/Link에서 ISR/SSG를 사용할 때 어떤 이점이 있는지 궁금합니다. 소중한 시간내어 읽어주셔서 감사합니다.

  • react
  • next.js
  • react-query
  • next-auth
  • msw
qjatjs123123 댓글 1 좋아요 0 조회수 151

6:29 movie-card-list.tsx파일작성하시기전에

해결됨

[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)

6:29 movie-card-list.tsx파일작성하시기전에 혹시 movieActions.ts파일에서 작업을 하셨었나요?? 3000 포트 브라우저에서 저는 스크롤을 내렸는데 false 에서 true로 바뀌지 않았었습니다.

  • firebase
  • next.js
  • tailwindcss
  • react-query
  • supabase
codestudy 댓글 2 좋아요 0 조회수 124

혹시 expo에서 adMob 적용시

해결됨

아바타 커뮤니티앱 만들기 (React Native Expo)

강의 내용은 아니고 지금 실제 앱을 만들고 있는데 거의 다 만들었는데 adMob 적용해서 막혔습니다. 아무리 해결하려고 해도 해결이 안되는데 혹시나 조언을 구할수 있을까 여쭤봅니다 expo 앱에 google admob을 추가할 때 expo-ads-admob 라이브러리를 사용하려 했지만, Expo SDK 46을 기준으로 더 이상 지원하지 않는 것 같습니다. https://docs.page/invertase/react-native-google-mobile-ads 이걸 사용해 넣으려고 했지만 계속 어떤 방법을 해도 해결이 되지 않아서 구글링도 했고 혹시 이게 해결가능한 문제인데 제가 못하는건지 아니면 이 플러그인을 사용하기가 어려운건지expo에서 궁금합니다...!

  • javascript
  • react
  • react-native
  • typescript
  • react-query
주현 댓글 2 좋아요 0 조회수 441

인기 태그

인프런 TOP Writers

주간 인기글