묻고 답해요
172만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결한 입 크기로 잘라먹는 React.js 실전 프로젝트 - SNS 편
안녕하세요 9.3 프로필 수정 기능 구현하기 질문드립니다.
마지막 부분인 9.5 프로필 인가부분까지 수업을 들으면서 코드를 작성했는데, ProfileDetailPage가 제대로 렌더링 되지 않아서 질문드립니다. 코드가 혹시 잘못되었을까해서 깃허브 보고 다시 확인했는데, 코드는 강의 내용이랑 맞는 것 같습니다. 뭐가 문제인지 잘모르겠어요
-
미해결한 입 크기로 잘라먹는 React.js 실전 프로젝트 - SNS 편
이런 플젝 만드는데 얼마나 걸리시나요?
강의에 관한 질문은 아니긴한데 개인적으로 궁금해서 여쭤봅니다..!강의 설명 준비하시는 거 말고 이 정도 규모 프로젝트 만들 때 얼마나 걸리시나요??.. 사람마다 다르겠지만 대충 기간이 궁금해서요..! 불편하신 질문이었다면 죄송합니당..
-
미해결React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지
뭐하나 여쭤봐도 될까요?
안녕하세요복습하러 들어왔습니다.그나저나 코딩님.. 뭐하나 여쭤봐도..다른 어느 소스를 보니까.. component 1index.jscomponent2index.jscomponent3index.js.. 폴더마다..죄다 ...... index.js 가 있는데...짐코딩님께 여쭤 봐도 될련지요.. ?번거로우시겠지만.. 고견 , 첨언 부탁드립니다.(P.S: 또 ..AI가 답변할라나? .쩝) [ AI ]" 컴포넌트 폴더에 index.js를 두는 리팩토링 팁???? "리팩토링?... 엥? 저렇게 리팩토리 하라고?( 거 참..머 할라고 저렇게 한데??? .. ㅡㅡ;;) 코딩님..헬프용. ㅜㅜ;;;
-
미해결아바타 커뮤니티앱 만들기 (React Native Expo)
댓글 버튼 하단에 고정되지 않는 이슈
node 버전 : v24.11.1[id.tsx] 파일입니다. 현재 상세 페이지를 가면 아래와 같이 댓글 버튼이 상단으로 올라오는 현상이 생겼습니다. 또한 답글 남기기를 눌러도 focus는 댓글 input으로 되지만, 화면처럼 스크롤이 내려가는 현상은 안나타납니다. npx expo start를 이용하여, 실기기로 테스트한겁니다!import AuthRoute from "@/components/AuthRoute"; import CommentItem from "@/components/CommentItem"; import FeedItem from "@/components/FeedItem"; import InputField from "@/components/InputField"; import { colors } from "@/constants"; import useCreateComment from "@/hooks/queries/useCreateComment"; import useGetPost from "@/hooks/queries/useGetPost"; import useKeyboard from "@/hooks/useKeyboard"; import { useLocalSearchParams } from "expo-router"; import { Fragment, useRef, useState } from "react"; import { Keyboard, KeyboardAvoidingView, Platform, Pressable, ScrollView, StyleSheet, Text, TextInput, View, } from "react-native"; import { SafeAreaView, useSafeAreaInsets, } from "react-native-safe-area-context"; export default function PostDetailScreen() { const { id } = useLocalSearchParams(); const { data: post, isPending, isError } = useGetPost(Number(id)); const createComment = useCreateComment(); const [content, setContent] = useState(""); const scrollRef = useRef<ScrollView | null>(null); const inputRef = useRef<TextInput | null>(null); const [parentCommentId, setParentCommentId] = useState<number | null>(null); const { isKeyboardVisible } = useKeyboard(); const insets = useSafeAreaInsets(); if (isPending || isError) { return <></>; } const handleReply = (commentId: number) => { setParentCommentId(commentId); inputRef.current?.focus(); }; const handleCancelReply = () => { setParentCommentId(null); Keyboard.dismiss(); }; const handleSubmitComment = () => { const commentData = { postId: post.id, content: content, }; if (parentCommentId) { createComment.mutate({ ...commentData, parentCommentId }); setContent(""); handleCancelReply(); return; } if (parentCommentId) { createComment.mutate({ ...commentData, parentCommentId }); setContent(""); handleCancelReply(); return; } createComment.mutate(commentData); setContent(""); setTimeout(() => { scrollRef.current?.scrollToEnd(); }, 500); }; return ( <AuthRoute> <SafeAreaView style={styles.container} edges={["right", "left", "bottom"]} > <KeyboardAvoidingView contentContainerStyle={styles.awareScrollViewContainer} behavior="height" keyboardVerticalOffset={ Platform.OS === "ios" || isKeyboardVisible ? 100 : insets.bottom } > <ScrollView ref={scrollRef} style={{ marginBottom: 75 }} contentContainerStyle={styles.scrollViewContainer} > <View style={{ marginTop: 12 }}> <FeedItem post={post} isDetail /> <Text style={styles.commentCount}> 댓글 {post.commentCount}개 </Text> </View> {post.comments?.map((comment) => ( <Fragment key={comment.id}> <CommentItem parentCommentId={parentCommentId} onReply={() => handleReply(comment.id)} onCancelReply={handleCancelReply} comment={comment} /> {comment.replies.map((reply) => ( <CommentItem key={reply.id} comment={reply} isReply /> ))} </Fragment> ))} </ScrollView> <View style={styles.commentInputContainer}> <InputField ref={inputRef} value={content} returnKeyType="send" onSubmitEditing={handleSubmitComment} onChangeText={(text) => setContent(text)} placeholder={ parentCommentId ? "답글 남기는중..." : "댓글을 남겨보세요." } rightChild={ <Pressable disabled={!content} style={styles.inputButtonContainer} onPress={handleSubmitComment} > <Text style={styles.inputButtonText}>등록</Text> </Pressable> } /> </View> </KeyboardAvoidingView> </SafeAreaView> </AuthRoute> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: colors.WHITE, }, awareScrollViewContainer: { flex: 1, backgroundColor: colors.GRAY_200, }, scrollViewContainer: { backgroundColor: colors.GRAY_200, }, commentCount: { marginTop: 12, backgroundColor: colors.WHITE, paddingVertical: 12, paddingHorizontal: 16, fontSize: 16, fontWeight: "bold", }, commentInputContainer: { width: "100%", borderTopColor: colors.GRAY_200, borderTopWidth: StyleSheet.hairlineWidth, backgroundColor: colors.WHITE, padding: 16, bottom: 0, position: "absolute", }, inputButtonContainer: { backgroundColor: colors.ORANGE_600, padding: 8, borderRadius: 5, }, inputButtonText: { color: colors.WHITE, fontWeight: "bold", }, });
-
해결됨한 입 크기로 잘라먹는 React.js 실전 프로젝트 - SNS 편
안녕하세요 7.4 이미지업로드구현하기2 질문드립니다.
createPostWithImages에서 Promise.all로 이미지 업로드가 되는데 Promise.all은 순서 보장이 되나요?
-
해결됨한 입 크기로 잘라먹는 React.js 실전 프로젝트 - SNS 편
회원가입 시 엑세스 토큰이 localStorage에 자동으로 저장이 안됩니다.
현재 토큰을 제대로 받아오는 것을 확인했지만local storage에 들어가서 확인을 해보면 아무것도 없습니다!session storage에도 확인해 봤는데 여기도 저장이 안 되어 있습니다제가 직접 access token을 local storage에 저장하려고 시도하다가회원가입 성공 시 data에 session이 null이 나오는걸 확인했습니다. 그래서 local storage setItem해서 저장을 할 수가 없는걸까요?authorization에 access token이 담겨오는데 왜 session에는 null이 뜨는지 궁금합니다.
-
해결됨한 입 크기로 잘라먹는 React.js 실전 프로젝트 - SNS 편
참고 소스 질문
이번 강의를 통해 만든 소스를 github에 있나요? 있으면 링크 알려주세요.
-
해결됨아바타 커뮤니티앱 만들기 (React Native Expo)
SafeAreaView 적용 기준 문의
아바타 만들기 /post 에는 글쓰기, 수정, 상세화면에 대한 정의가 되어 있습니다./post/[id].tsx/post/write.tsx/post/update/[id].tsx 글쓰기와 수정은 SafeAreaView를 적용하지 않았는데 상세보기에서 적용한 이유와 어떤 기준에 의해 적용하였는지 문의 드립니다./post/_layout.tsx 내에 Stack.Screen에서 headerShown : false일때 SafeAreaView를 적용하는걸로 생각했는데 그렇지 않은것 같습니다. 감사합니다.
-
미해결맛집 지도앱 만들기 (React Native & NestJS)
react-native-screens 버전 호환 문제
버전 호환 문제 현재 강의 흐름대로 react-native 0.79.4 버전을 깔고 이 강의에서 npm install @react-navigation/native과npm install react-native-screens react-native-safe-area-context를 그대로 실행해서 설치하면npx pod-install ios Need to install the following packages: pod-install@1.0.9 Ok to proceed? (y) y 🔍️ Scanning for pods... 1.16.2 > pod install Found 2 modules for target mapzip2 link_native_modules! {:ios_packages=>[{:configurations=>[], :name=>"react-native-safe-area-context", :root=>"/Users/kwakori/projects/react-native/learning/mapzip2/node_modules/react-native-safe-area-context", :path=>"../node_modules/react-native-safe-area-context", :podspec_path=>"/Users/kwakori/projects/react-native/learning/mapzip2/node_modules/react-native-safe-area-context/react-native-safe-area-context.podspec", :script_phases=>[]}, {:configurations=>[], :name=>"react-native-screens", :root=>"/Users/kwakori/projects/react-native/learning/mapzip2/node_modules/react-native-screens", :path=>"../node_modules/react-native-screens", :podspec_path=>"/Users/kwakori/projects/react-native/learning/mapzip2/node_modules/react-native-screens/RNScreens.podspec", :script_phases=>[]}], :ios_project_root_path=>"/Users/kwakori/projects/react-native/learning/mapzip2/ios", :react_native_path=>"../node_modules/react-native"} Auto-linking React Native modules for target mapzip2: RNScreens and react-native-safe-area-context Framework build type is static library Configuring the target with the New Architecture [!] Invalid Podfile file: [!] /opt/homebrew/bin/node ./../node_modules/react-native/scripts/generate-codegen-artifacts.js -p /Users/kwakori/projects/react-native/learning/mapzip2/ios/.. -o /Users/kwakori/projects/react-native/learning/mapzip2/ios -t ios [Codegen] Analyzing /Users/kwakori/projects/react-native/learning/mapzip2/package.json [Codegen] Searching for codegen-enabled libraries in the app. [Codegen] The "codegenConfig" field is not defined in package.json. Assuming there is nothing to generate at the app level. [Codegen] Searching for codegen-enabled libraries in the project dependencies. [Codegen] Found react-native [Codegen] Found react-native-safe-area-context [Codegen] Found react-native-screens [Codegen] Searching for codegen-enabled libraries in react-native.config.js [Codegen] Processing FBReactNativeSpec [Codegen] Searching for podspec in the project dependencies. [Codegen] Processing rncore [Codegen] Searching for podspec in the project dependencies. [Codegen] Processing safeareacontext [Codegen] Searching for podspec in the project dependencies. [Codegen] Supported Apple platforms: ios, macos, tvos, visionos for safeareacontext [Codegen] Processing rnscreens [Codegen] Searching for podspec in the project dependencies. [Codegen] Supported Apple platforms: ios, tvos, visionos for rnscreens [Codegen] Error: Unknown prop type for "environment": "undefined" [Codegen] Done. . # from /Users/kwakori/projects/react-native/learning/mapzip2/ios/Podfile:20 # ------------------------------------------- # > use_react_native!( # :path => config[:reactNativePath], # ------------------------------------------- Couldn't install Pods. Updating the Pods project and trying again...와 같은 에러가 발생합니다.아무래도 버전 호환성 문제인 것 같습니다.https://github.com/software-mansion/react-native-screens/blob/main/README.md#support-for-fabric위 문서를 참고하면 react-native-screens의 최신 버전인 4.19.0+ 는 react-native 0.81.0+ 에서만 호환된다고 하는 것 같습니다. 강의 들으시는 분들은 참고해주세요. 버전을 낮춰서 설치하시거나 하시면 정상적으로 설치되더라구요//아니면 혹시 그냥 react-native를 0.81.0+ 로 설치해서 강의를 들어도 문제없으려나요?
-
해결됨아바타 커뮤니티앱 만들기 (React Native Expo)
스크린 옵션 아이콘
피그마 디자인에서는 < 를 사용했는데강의에서는 Foundation "home"을 사용했어요!의도하신걸까요? 디자인이 최종 시안이라던가.. 그게 아니라면강의는 동영상이니 바꾸는데 공수가 많이 들어가니피그마에서 아이콘 바꿔주셔도 좋을것같습니다! 잡담으로 저는 자바스프링 백엔드로 시작해서 jQuery/Angular/Vue/React/Next를 풀스택으로 쓰는 회사들로 이직하면서 최종적으로 코틀린스프링을 메인스택으로 하고 있는데요.취미/공부/사이드 프로젝트로 Next.js랑 Flutter 배우고 이번에 RN배우는데 강사님의 코드퀄리티나 강의력이 깔끔한것 같아서 잘 보고 있습니다ㅎㅎ 25년 초에 릴리즈한 강의인데 26년에도 미션이나 질문에도 답 잘 달아주셔서 감사합니다.
-
미해결한 입 크기로 잘라먹는 React.js 실전 프로젝트 - SNS 편
모달 UI 관련 질문
이렇게 내용이 길어져서 모달 전체 크기인 max-h-[90vh]에 도달할 경우, 저는 모달 내부에 있는 버튼이 밖으로 안튀어나가게 작동할거라고 예상했는데, 첨부한 이미지처럼 튀어나가더라고요...이런 경우는 어떻게 해결할 수 있나요?
-
미해결React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지
안녕하세요 질문이 있습니다.
안녕하세요 강의를 너무 잘 보고 있습니다. 강의를 보다가 문득 궁금한점이 있는데 프론트엔드 취업을 위해서 어느정도로 알고 있어야 되는지 그리고 어디까지 공부를 하고 회사를 지원을 해야되는지 궁금하더라구요. 뭔가 완벽히 그리고 많이 알야된다는 걱정에 지원을 못하고 계속 공부만 하게 되는거 같은데 조언 부탁드립니다
-
미해결React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지
질문 : 삭제 버튼 아규먼트 (id)
갑자기 이해가.. .이게 왠.. ㅡㅡ;;; const handleDeleteItem = id => { setDummyData(dummyData.filter(item => item.id !== id)); };에서 id 값을 어디서 가지고 오는지 알 수 있을까요?
-
미해결아바타 커뮤니티앱 만들기 (React Native Expo)
[Note] 안드로이드 네비게이션 헤더 이슈 안내
❗질문 작성시 꼭 참고해주세요에러 메세지에서 단서를 찾을 수 있는 경우가 많습니다. 에러 메세지를 읽고 한번 검색해보시는것을 추천드립니다.질문글을 작성하실때는, 현재 문제(또는 에러)와 코드나 github을 첨부해주세요.개발중인 OS, ReactNative, Node 버전 등의 개발환경을 알려주셔야합니다.에러메세지는 일부분이 아닌 전체 상황을 올려주세요. 일부만 보여주시면 답변이 어렵습니다.에러 잘라서 올리시면 안됩니다!(에러 일부만 자르거나 일부만 복사하지말아주세요) 지금은 잘 되는 것 같은데(제가 아직 안드로이드 애뮬레이터로만 테스트 한 상태이긴 하지만)혹시 지금도 안되는지 궁금합니다!
-
미해결한 입 크기로 잘라먹는 React.js 실전 프로젝트 - SNS 편
캐시 데이터 다루기 - 낙관적 업데이트(2)에서 질문
createTodo의 리턴값을 활용하면서 Todo를 생성했을 때, 캐시 무효화를 해서 데이터가 많은 경우 서버에 부하를 주는 코드를 개선했었었는데, 낙관적 업데이트2에서 데이터의 무결성을 위해 onSettled에서 queryClient.invalidateQueries를 호출했는데 여기서는 괜찮은 걸까요?
-
미해결React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지
Tailwind 버전 확인
Tailwind 버전 확인 tailwnd 버전차이 인지요 ? (AI 질문 발췌: text-5xl은 Tailwind v4에서도 정상적으로 지원되는 클래스입니다.)스타일이 적용 될 수 있는 설정 방법이 있을까요? 강의내용에 tailwindcss 는 v3.x 이면v3 버전으로 재 설치를 해야 빠를까요?
-
해결됨한 입 크기로 잘라먹는 React.js 실전 프로젝트 - SNS 편
onError 콜백에 파라미터 없음에도 추가하신 이유가 무엇인가요?
인증에러처리하기1 의 10:29 에서 if (callbacks?.onError) callbacks.onError(errror);sign-in-page.tsx 에서 넘겨준 onError에는 파라미터가 없는데도 넘겨준 이유가 어떤건지 궁금합니다.
-
미해결React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지
align-items 정렬
매번 강의를 보면서 따라 하는데매번 같은 강의를 복습을 해도..흐음..css 파일 아무리 드려다 봐도... 정렬이 conter로 가질 않고 있습니다교안을 보고 학습을 하는데... 채크 사항 답변 부탁드립니다.
-
미해결한 입 크기로 잘라먹는 React.js 실전 프로젝트 - SNS 편
(4.13) 캐시 정규화하기 2
개별 캐시 데이터는 disabled 상태라 캐시를 무효화 해봤자 데이터를 다시 불러오지 않는다고 하시면서 use-upate-todo-mutation.ts 파일에서 onSettled 이벤트 핸들러를 삭제하셨습니다. 그런데 이 부분이 이해가 잘 가지 않습니다. QUERY_KEYS.todo.list를 무효화 하면 todo 목록을 가지고 오면서 개별 캐시 데이터도 todos.forEach((todo) => { queryClient.setQueryData<Todo>(QUERY_KEYS.todo.detail(todo.id), todo); });이렇게 다시 세팅하는거 아닌가요?
-
미해결React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지
vite 명령어로 프로젝트를 만들었습니다. (vscode)
vite 명령어로 프로젝트 생성끝 (확장 프로그램 미설치) -- App.jsx -- 위 화면 같이 붉은 라인이 생기는 이유가 무었인가요?(참고로 vscode 자동생성 기능을 off 로 설정해서 사용중)갑자기 위와 같은 화면이 나와전에 생성한 프로젝트를 열어 보왔는데요멀쩡히 (붉은 색 라인 없음) 잘 나오던 파일이위와 같은 증상이 똑같이 나오고 있습니다.코파일럿, 구글링이 알려준 데로 처리 했는데같은 증상이 나오고 있습니다.원인이 무엇인지 질문드립니다.(아~ "npm run dev" : 정상 동작합니다.)Plz....프로젝트 생성시 TypeSCript로 생성하지 않고일반 jsscript로 설정했습니다.ts파일 머시지 어쩌구 하는데.. 에공.. <div> 마우스 오버시 위 메지내 내용 화면> ※ vscode 에서 자동 생성을 막으려고 제가 무슨 짓을 했는지... (머 이것 저것 ctrl + shift + p로 ..내용을 찾아 뭔짓을 했는지... (json 파일) 그때 부터인듯 싶습니다.※ vscode 재설치 : 같은 증상질문 내용이 vscode에 관한 내용인듯 한데소스 내용이 아닌 질문이라..죄송합니다. !!! 아무래도 vscode typescript 버전인듯 싶습니다.근데 전 ctrl + , 를 눌러서 typescript 를 눌러서 검색해 보면 아 놔~~ 구글링에서 설명한 화면이랑 다르네요..하~~ 오전 부터 이게 왠 ... 우쒸~~