inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

수파베이스 인증 토큰에서 개인정보 지우는 법?

해결됨

Supabase, Next 풀 스택 시작하기 (feat. 슈파베이스 OAuth, nextjs 14)

안녕하세요! 수파베이스 로그인 하면, sb-로 시작하는 쿠키가 생성되는데요, 이 쿠키 value를 디코딩해보면 이메일, 이름 같은 정보들이 나와서 보안에 취약할 것 같아요 어떻게 하면 이러한 개인정보를 노출하지 않을 수 있을까요??

  • react
  • 클론코딩
  • next.js
  • supabase
웰시코기 댓글 2 좋아요 0 조회수 196

강의 수강중 궁금한점이 생겨서 질문드립니다

해결됨

한 입 크기로 잘라먹는 Next.js

제공해주신 백엔드 서버는 어떤 기술 스택으로 백엔드가 구성이 되었는지 궁금합니다.

  • react
  • typescript
  • next.js
블루시스템 댓글 1 좋아요 0 조회수 122

프리페칭에 대한 질문

해결됨

한 입 크기로 잘라먹는 Next.js

안녕하세요. 강의를 듣고 정리하면서 제가 이해한 게 맞는지 확인하고 싶어 질문드리게 되었습니다! 클라이언트 컴포넌트를 포함하고 있는 서버 컴포넌트의 경우, 프리페칭 시 RSC payroad만 미리 가져오고 이후 해당 서버 컴포넌트에 접근하게 되면 클라이언트 컴포넌트를 실행하기 위해 JS Bundle을 불러오는 건가요? 페이지를 캐시 및 하드 새로고침으로 진행했을 때 아래처럼 인덱스 페이지에서 이동할 수 있는 페이지인 search페이지와 book/1페이지의 RSC payroad만 프리페칭 되어있는 걸 볼 수 있었습니다. 이후 위의 Link 태그를 통해 search 페이지로 이동했을 때 아래처럼 새롭게 search 페이지의 RSC payroad가 나타나는 이유가 뭔가요? book 페이지도 똑같이 RSC payroad가 새롭게 추가되는데 이미 인덱스 페이지에서 프리페칭을 통해 RSC payroad를 불러왔는데 추가되는 이유가 궁금합니다! 2번과 연관되어 있는데 search 페이지로 이동했을 때 인덱스 페이지의 RSC payroad가 네트워크에 나타나지 않는 건 인덱스 페이지에서 이동한 것이기 때문에 프리페칭이 일어나지 않기 때문인가요? 이것도 2번과 연관된 질문입니다! search 페이지나 book/1페이지에서 새로고침을 진행하고 인덱스 페이지로 넘어갈 때는 새롭게 인덱스 페이지에 대한 RSC payroad가 나타나지는 않는데 그 이유가 궁금합니다 URL에 직접적으로 book/5로 이동하게 만들었는데, 프리페칭으로 네트워크상에 인덱스와 search, book/1의 RSC 페이로드뿐만 아니라 clinet-component 파일과 searchbar 파일에 대한 JS Bundle도 함께 들어와있는데 search 페이지가 동적인 페이지여도 같은 레이아웃을 사용하고 있는 인덱스 페이지가 정적인 페이지이기 때문에 clinet-component와 searchbar의 JS Bundle이 같이 프리페칭 된 건가요?

  • react
  • typescript
  • next.js
고은 댓글 2 좋아요 0 조회수 150

캐시 관련 질문사항이 있습니다!

미해결

Next.js 완벽 마스터 (v15): 노션 기반 개발자 블로그 만들기 (with 커서AI)

안녕하세요! 캐시관련 질문 사항이 있습니다! 현재, 강의 내용에선, react query 를 사용한 클라이언트측 캐시와, unstable_cached 를 사용한 서버 캐시를 둘다 같은 하나의 데이터에 적용하신 모습을 확인하였습니다. 궁금증은, 현재 블로그 목록 조회는 두개 캐시 기법이 모두 적용되어 있는데, 둘 중 하나만 캐시를 해 놓아도 될 것 같다 라는 생각이 드는데, 이게 맞는지 궁금합니다. 혹시, 하나만 선택해야 된다면 이번 블로그 목록 케이스에서는 어떤 방식의 캐시를 적용하시는걸 추천하시나요?

  • react
  • 블로그
  • next.js
  • cursor
  • cursorai
BeakGwa 댓글 2 좋아요 0 조회수 101

tailwind.config.ts 파일 설치가 안되는 문제

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

next js 14버전, tailwind도 3.4.17로 설치하였는데, @apply 가 먹히지 않네요. 어떻게 하나요? globals.css에도 @tailwind base; @tailwind components; @tailwind utilities; 입력 시, 'Unkown at rule @tailwind' 라는 메시지가 송출됩니다. tailwind.config.ts (js->ts 변경) 파일에도 module.exports = { content: [ "./pages/**/*.{js,ts,jsx,tsx}", "./components/**/*.{js,ts,jsx,tsx}", "./app/**/*.{js,ts,jsx,tsx}", "./src/**/*.{js,ts,jsx,tsx}", ], theme: { extend: { colors: { background: "var(--background)", foreground: "var(--foreground)", 철수가좋아하는색깔: "blue", 영희가좋아하는색깔: "green", }, }, }, plugins: [], }; 입력했습니다.

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
댓글 3 좋아요 0 조회수 534

수강노트는 어디에서 볼수있나요?

미해결

React Native with Expo: 제로초에게 제대로 배우기

수강노트는 어디에서 볼수있나요? 깃에는 최종코드만 있어서 에러가 발생해가지구요 실행시키기 위해 npx expo를 많이했는데도 에러가 발생하더라구요 ERROR Error: Cannot find native module 'ExpoLocation', js engine: hermes ERROR Error: Cannot find native module 'ExponentImagePicker', js engine: hermes

  • react
  • react-native
  • 하이브리드-앱
  • typescript
  • expo
  • 수강노트
최우뚝 댓글 5 좋아요 1 조회수 289

안녕하세요 개발과 상관없는 질문입니다만

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

안녕하세요 강사님 좋은 강의 감사드립니다 vscode 테마 정보좀 알수있을까요?

  • react
  • redux
  • tdd
  • typescript
  • next.js
  • 소프트웨어-테스트
jaehoon 댓글 1 좋아요 0 조회수 147

404.tsx

해결됨

한 입 크기로 잘라먹는 Next.js

🚨 긴급 공지 04.30 ~ 05.07 휴가 기간으로 인해 효빈님 께서 답변을 대신 해 주실 예정입니다. 불편함을 드려 죄송합니다. 금방 복귀하겠습니다 🫡 🚨 필독) 질문하시기 전에 꼭 읽어주세요 (10초 소요) 제목을 구체적으로 작성해 주세요 ✅ 좋은 예 : 감정일기장 Home 구현중 xx 이슈가 발생합니다. ⛔ ️ 나쁜 예 : 이거 왜 안되나요?, 오류나요 도와주세요 등 비슷한 궁금함을 갖고 계신 분들께 도움이 될 수 있어요! 코드의 이슈는 전체 프로젝트를 "링크 형태"로 올려주셔야 원인을 파악할 수 있습니다. 깃허브, 구글드라이브 등의 수단을 통해 링크 형태로 전달해주세요 직접 실행해보며 원인을 파악해야 하기 때문에 텍스트 형태로 붙여넣는건 삼가해주세요 🥲 답변이 도움이 되셨다면 답글 or 해결완료 버튼을 클릭해주세요 비슷한 궁금함을 갖고 계신 분들께 도움이 될 수 있어요! 제 답변이 여러분께 도움이 되었는지 저도 알고 싶어요 🥲 강의 내용에 궁금한 점이 있다면 몇 챕터의 몇 분 몇 초인지 알려주시면 더 좋아요 더 빠른 답변이 가능합니다! 강의랑 동일하게 [[...id]].tsx랑 404.tsx 만들었는데 url을 http://localhost:3000/book/123-123123 로 해도 왜 잘 표현 될까요? http://localhost:3000/adfafdas 이런식으로 하면 404페이지로 잘 이동 됩니다.

  • react
  • typescript
  • next.js
hinpuo 댓글 2 좋아요 0 조회수 171

제 에디터에선 notepad가 안나와요

미해결

Next.js 완벽 마스터 (v15): 노션 기반 개발자 블로그 만들기 (with 커서AI)

저는 왜 notepad가 안뜰까요?

  • react
  • 블로그
  • next.js
  • cursor
  • cursorai
타겟토 댓글 2 좋아요 0 조회수 249

서버/클라이언트 컴포넌트를 나누는 기준이 궁금합니다.

미해결

Next.js 완벽 마스터 (v15): 노션 기반 개발자 블로그 만들기 (with 커서AI)

안녕하세요! 학습 중, 궁금한게 있어 질문 드립니다! 이번 무한 스크롤 과정에서는 클라이언트 컴포넌트가 사용되었는데, 순수 서버 컴포넌트로는 개발하기는 거의 불가능에 가깝다고 느껴졌습니다. 가정을 하면, "사용자의 동작 혹은 이벤트에 따라서 랜더링 요소가 변경되어야 한다" 면, 클라이언트 컴포넌트를 거의 사용해야 될 것 같다라고 생각이 됩니다. 이러한 케이스가 아니라면, 대부분 서버 컴포넌트로 하는것이 좋다(?) 라고 느껴집니다. 보안성...? 응답 성능적으로도, SEO 관점으로도... 혹시 위의 내용이 틀리거나, 또 다르게 판단을 해야될 기준? 같은게 있을까요?

  • react
  • 블로그
  • next.js
  • cursor
  • cursorai
BeakGwa 댓글 2 좋아요 0 조회수 153

저장 버튼이 생기지 않습니다.

해결됨

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

저장 버튼을 동일하게 작성했는데 화면상에 그려지지 않더라구요. 공식문서도 확인해보고 찾아보는데, isFocused나 useLayoutEffect등을 통해 실험해봐도 저장 버튼이 보이지 않습니다. 무엇을 잘못 작성했나 싶어 자료를 다운로드 받아 post 의 _layout.tsx 와 write.tsx도 복사, 붙여넣기 하여 확인했는데도 저장버튼이 보이지 않았습니다. 그런데, post의 _layout에서 headerRight을 작성하니 보입니다. setOptions가 동작하지 않는 것 같이 보이는데, 원인을 잘 모르겠습니다. 어떻게 해결하면 될까요? import CustomButton from "@/components/CustomButton"; import DescriptionInput from "@/components/DescriptionInput"; import TitleInput from "@/components/TitleInput"; import useCreatePost from "@/hooks/queries/useCreatePost"; import { ImageUri } from "@/types"; import { useNavigation } from "expo-router"; import { useEffect } from "react"; import { FormProvider, useForm } from "react-hook-form"; import { StyleSheet } from "react-native"; import { KeyboardAwareScrollView } from "react-native-keyboard-aware-scroll-view"; type FormValues = { title: string; description: string; imageUris: ImageUri[]; }; export default function PostWriteScreen() { const navigation = useNavigation(); const createPost = useCreatePost(); const postForm = useForm<FormValues>({ defaultValues: { title: "", description: "", imageUris: [], }, }); const onSubmit = (formValues: FormValues) => { createPost.mutate(formValues); }; useEffect(() => { navigation.setOptions({ headerRight: () => ( <CustomButton label="저장" size="medium" variant="standard" onPress={postForm.handleSubmit(onSubmit)} /> ), }); }, []); return ( <FormProvider {...postForm}> <KeyboardAwareScrollView contentContainerStyle={styles.container}> <TitleInput /> <DescriptionInput /> </KeyboardAwareScrollView> </FormProvider> ); } const styles = StyleSheet.create({ container: { margin: 16, gap: 16, }, }); import { colors } from "@/constants"; import { Feather } from "@expo/vector-icons"; import { Link, Stack } from "expo-router"; export default function PostLayout() { return ( <Stack screenOptions={{ headerTintColor: colors.BLACK, contentStyle: { backgroundColor: colors.WHITE, }, }} > <Stack.Screen name="write" options={{ title: "글쓰기", headerShown: true, headerLeft: () => ( <Link href={"/"} replace> <Feather name="arrow-left" size={28} color={"black"} /> </Link> ), }} /> </Stack> ); } +추가로 확인한 부분. app의 _layout.tsx에서 <Stack.Screen name="post" options={{ headerShown: false }} /> 이 친구를 주석하면 헤더가 두 개 나오게 되는데, 숨겨놨던 루트에 저장 버튼이 떠 있더라구요. 이걸 어떻게 수정하면 되는건지.. 어렵네요

  • javascript
  • react
  • react-native
  • typescript
  • react-query
프롱 댓글 2 좋아요 0 조회수 201

[30-01] 웹 에디터와 폼 라이브러리

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

안녕하세요 해당수업중 강의 내용대로 했는데 실행시 아래와 같이 에러 뜨고 정상 실행이 안됩니다. TypeError: react_dom_1.default.findDOMNode is not a function at ReactQuill.getEditingArea ( http://localhost:3000/_next/static/chunks/node_modules_5754136c._.js:16760:43 ) at ReactQuill.instantiateEditor ( http://localhost:3000/_next/static/chunks/node_modules_5754136c._.js:16631:50 ) at ReactQuill.componentDidMount ( http://localhost:3000/_next/static/chunks/node_modules_5754136c._.js:16590:14 ) at LoadableComponent ( http://localhost:3000/_next/static/chunks/_2df4111c._.js:296:57 ) at WebEditorPage ( http://localhost:3000/_next/static/chunks/_2df4111c._.js:81:215 ) at ClientPageRoot ( http://localhost:3000/_next/static/chunks/node_modules_next_dist_1a6ee436._.js:2053:50 )

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
Lia 댓글 3 좋아요 0 조회수 234

api폴더 하위의 api.ts들은 언제사용하나요?

해결됨

한 입 크기로 잘라먹는 Next.js

백엔드서버와 통신할 때, service폴더를 만들고 하위에 api 정리를 자주 하였는데요,(fetch, axios instance등) 현재 강의에서 언급하고있는 이 api폴더는 next로 풀스택 개발외에는 딱히 사용되지 않는편인가요?

  • react
  • typescript
  • next.js
  • api
이윤재입니다. 댓글 1 좋아요 0 조회수 197

RootNavigator 리렌더링 시점

미해결

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

(너무 초보적인 질문이라면 죄송합니다 ㅠ.. 리액트 초보여서,,) 제가 알기로는 리액트에서는 컴포넌트 리렌더링 시점이 컴포넌트 함수를 직접 재호출하거나, 내부 state가 변경됐을 때로 알고 있는데요, 그런 개념을 가지고 코드를 살펴보면 RootNavigator에서 로그인 여부에 따라 분기처리를 하고 있는데, 여기서 내부 state를 가지고 있는 것도 아닌데, useAuth의 로그인이나 로그아웃 메서드 호출만으로 리렌더링이 되어서 스크린이 변경되고 있는데 어떻게 이 동작이 가능한건지가 궁금합니다. 리렌더링을 발생시키는 조건이 궁금합니다.

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
김효건 댓글 1 좋아요 0 조회수 102

useGetRefreshToken 에서 성공/실패 시 useEffect로 감싸서 동작

미해결

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

안녕하세요! useGetRefreshToken 에서 응답 성공/실패 시에 각각 useEffect로 감싸서 후속처리를 하게 작성해주셨는데요, 해당 로직들은 항상 해당 함수가 호출되고 나서 응답이 온 후에 순차적으로 실행되어야 하는 로직으로 생각이 들어서 비동기로 동작하는 useEffect를 굳이 사용할 필요가 없다고 생각이 드는데요, useEffect로 사용하신 특별한 이유가 있으실까요!?

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
김효건 댓글 1 좋아요 0 조회수 84

버전으로 인한 오류 이슈

미해결

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

저를 포함한 많은 수강생분들께서 설치시 Gem 과 rn 버전등 강의와 latest 버전의 충돌로 인해 많은 어려움을 겪고 계신 것 같아 2025년 5월 기준 제가 해결한 방법을 공유드리려고 올려둡니다! React Native 공식 문서는 최신이 아닌 0.73 버전으로 확인합니다 => 0.73 버전 안내 링크 프로젝트 생성시에는 @latest 가 아닌 0.73 버전으로 설치를 합니다 npx react-native@0.73 init 사용하실프로젝트명 --version 0.73 설치되어 있는데도 CLT가 기본 설정이면, Xcode 경로로 전환해줘야 합니다 터미널에서 xcode-select -p 를 입력해서 경로를 확인합니다. 만일 결과가 /Library/Developer/CommandLineTools 이렇게 되어있다면 오류가 나는 원인 중 하나입니다! 이 경우 아래 3-b 순서를 통해 변경해줘야 합니다 터미널에서 sudo xcode-select -s /Applications/Xcode.app/Contents/Developer 를 입력해 경로를 변경해줍니다 터미널에서 xcode-select -p 를 입력해 /Applications/Xcode.app/Contents/Developer 와 같이 경로가 변경되었는지 확인해줍니다 여기까지 한 후에도 npm start 가 오류가 발생하면 cd ios rm -rf Pods Podfile.lock pod install cd .. 이를 통해서 cocoapod 관련 찌꺼기를 없애고, bundle install 를 해서 필요한 gem 들을 다시 .install 해줍니다. 이렇게 한 후 npm start 를 하여 오류를 수정했었습니다! IOS 는 또 어떤 요류로 잘 안 될 수 있는지 모르니 .. 그냥 최신 버전으로 하고 강의 내용을 최신 버전에 맞추는게 현명할지도..

  • react-native
  • typescript
  • nestjs
  • react-query
  • zustand
Junho 댓글 2 좋아요 1 조회수 296

fetchQuery와, invalidateQueries 사용 질문있습니다.

미해결

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

선생님께서는 로그인직후 내 정보불러오기위해서 fetchQuery를쓰셨는데 invalidateQueries 를 써도 되는거아닌가? 무슨차이때문에 그런걸까?를 생각해봤는데 fetchQuery는 즉시 가져오는거기때문에 이후 /이나 뭐 어디다른페이지를가도 로딩이안뜨고 바로 최신상태를 유지하는 반면 invalidateQueries 를 사용하면 기존 쿼리를 scale로 처리해줘서 캐싱무효화를해주고 그 해당 query key를 사용중인 페이지에 들어가면 그때 서버로부터 리페치를 한다? 그렇기때문에 로딩이뜬다. 그래서 여기선 fetchQuery를 사용하신거다로 이해했는데 맞을까요?

  • javascript
  • react
  • react-native
  • typescript
  • react-query
반가우면반갑다고해 댓글 0 좋아요 0 조회수 130

3-2 에서 안드로이드랑 아이폰 Header쪽 스타일 다르게 주신 이유가있으실까요?

해결됨

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

import { Link, Stack } from 'expo-router'; import Foundation from '@expo/vector-icons/Foundation'; import { colors } from '@/constants'; export default function AuthLayout() { return ( <Stack screenOptions={{ headerTintColor: colors.BLACK, contentStyle: { backgroundColor: colors.WHITE, }, }} > <Stack.Screen name="index" options={{ title: '로그인', headerTitleAlign: 'center', headerShown: true, headerLeft: () => ( <Link href={'/'} replace> <Foundation name="home" size={28} color={'black'} /> </Link> ), }} /> </Stack> ); } 선생님은 Link 태그에 paddingLeft해서 안드로이드 Header에서 조정해주신반면 저는 좀 더 통일성을위해서 headerTitleAlign 을 center로 줬습니다. 이 방법이 더 괜찮아보이는데 어떤지 궁금해요!

  • javascript
  • react
  • react-native
  • typescript
  • react-query
반가우면반갑다고해 댓글 2 좋아요 0 조회수 169

API 라우터를 사용해야 하는 경우에 대해

미해결

Next.js 시작하기(feat. 지도 서비스 개발)

파이어베이스와 수파 베이스 를 사용하고 있습니다. API 폴더에 해당 통신 로직을 정의해서 사용하면 보안과 API 명세에 대한 로직을 잘 관리 할 수 있다는 것을 강의내용을 통해 알았습니다 BAAS 서비스를 이용하면 API 폴더에 넣고 관리하게 된다면 통신 로직이 중복되는 것같은데 API -> BBAS 통신 이럴 경우 어떻게 사용하는게 좋은지 궁금합니다!!

  • seo
  • next.js
  • vercel
  • csr
  • ssg
  • ssr
봄봄 댓글 1 좋아요 1 조회수 182

인기 태그

인프런 TOP Writers

주간 인기글