묻고 답해요
152만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
react 에서 css불러오기 오류
import "./Main.css";나import "../Main.css"; 둘다 해봤는데css를 컴포넌트로 불러오기 오류떠요 ㅠㅠ
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
Context 분리하기 중에서 memoizedDispatch에 useMemo를 사용하는 이유가 궁금합니다.
안녕하세요. 리액트 초보입니다. 이해하기 쉽게 설명해주셔서 감사합니다. 11.3) Context 분리하기 강의 약 7분 쯤에서 궁금한 부분이 있어서 질문 남깁니다. <TodoDispatchContext.Provider> 를 통해 context를 전달할 때, 함수를 캐싱하기 위해 강의에서는 아래와 같이 useMemo를 사용해주셨는데요! const memoizedDispatch = useMemo(() => { return { onCreate, onUpdate, onDelete }; }, []); 우선 최적화하고자 한 이유는 아래와 같다고 이해했습니다. onCreate, onUpdate, onDelete 모두 한 번 생성한 후에 바뀌지 않는 함수로, TodoDispatchContext를 참조하는 자식 컴포넌트들의 리렌더링 방지 그리고 useMemo를 사용하신 부분에서는 마운트 후 onCreate, onUpdate, onDelete는 변하지 않는 함수 이므로 "값을 캐싱한다"는 의미에서 useMemo를 사용해주셨다고 이해했습니다. 다만 useCallback도 mount 후 deps 변경 전에는 함수의 중복 생성을 방지한다는 점에서는 useCallback을 사용해도 좋을 것 같단 생각이 들었는데요, 결론적으로 제가 궁금한 부분은 아래와 같습니다. useMemo 대신 useCallback을 사용해서도 동일하게 최적화 할 수 있다고 이해했는데, 제가 이해한 게 맞을까요? 1번이 맞다면 강의에서 useMemo를 사용해주신 이유는 캐싱하기 위함(의도)을 표현하기 위함이라고 이해하면 될지도 궁금합니다! 실무에서는 useMemo와 useCallback을 모두 사용할 수 있는 경우 어떤 훅을 선택하시는지, 강의에서 useMemo를 통해 캐싱하신 이유가 궁금했습니다 ! 블로그를 찾아봐도 잘 이해가 되지 않아서 질문으로 남깁니다! 답변 주시면 감사하겠습니다!
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
도표 강의 자료 열람 불가능
안녕하세요강의 잘 듣고 있습니다 도표강의자료 들어가면 파일을 찾지 못했다고 오류가 나옵니다
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
VS코드에러
VS코드에서 에러는 뜨는데 실행은 됩니다.강의VS코드에서는 에러 안뜨던데 왜 제꺼에서만 에러가 뜰까요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
[감정일기장 배포하기] vercel login시 zsh: command not found: vercel 에러가 떠서 npm i -g vercel 명령어 입력했는데 또 다른 에러가 나요
맥북에서 vercel login시 zsh: command not found: vercel 에러가 떠서npm i -g vercel 명령어 입력했는데 또 다른 에러가 나요ㅠㅠ구글링 해서 캐쉬삭제도 해보고 권한도 확인했는데 해결이 안되서 질문드립니다!이정환 선생님 도와주세요!!
-
미해결[2025] 비전공자도 가능한 React Native 앱 개발 마스터클래스
소유권을 확인할 수 없습니다.
OAuth 클라이언트 ID를 생성하는데 "소유권을 확인할 수 없습니다. Android 패키지 이름과 디지털 지문이 이미 사용 중이므로 요청이 실패했습니다." 이런 메시지가 떠서 확인을 하는 데도 이유를 모르겠습니다. 오류를 고칠 수 있는 방법을 알려주세요
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
구매 결제관련 질문입니다 !
강사님 최근에 node.js교과서 강의를 구입하여 듣게되었습니다 !강의들이 다 유튜브에 연결이 되는데 이미 유튜브 재생목록에 다 무료로 풀려있는 강의들인가요 ?! ㅠ
-
미해결[2025] 비전공자도 가능한 React Native 앱 개발 마스터클래스
stylecomponents 오류
styled-components를 설치하고 import하면 다음과 같은 오류가 발생합니다:runtime not ready: ReferenceError: Property 'document' doesn't exist, js engine: hermes, stack: ...해결을 위해 시도한 것들은 다음과 같습니다:- import 부분에 /native 잘 붙어 있는지 확인- Metro 캐시 삭제 후 다시 실행- styled-components 버전을 낮춰 설치 (5.3.11 등)하지만 여전히 동일한 에러가 발생해서, 현재는 StyleSheet 방식으로 전환해서 사용하고 있습니다.혹시 이런 상황에서 styled-components를 안정적으로 사용하는 다른 방법이 있을까요? 아니면 React Native에서는 styled-components를 피하고 StyleSheet를 사용하는 게 나은 선택일까요?같은 경험을 하신 분이 있다면 공유해주시면 감사하겠습니다!
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
npm i 에러떠요
npm i 에러떠요
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
중첩 컨텍스트 질문
보통 state 컨텍스트를 crud기능이 있는 컨텍스의 상위에 위치시키던데이런 중첩 순서에 의미가 있나요?
-
해결됨[2025] 비전공자도 가능한 React Native 앱 개발 마스터클래스
4-3 UI 구성하기 화면
안녕하세요. 15분 23초 부분 전에 화면이 잘린 것 같아 문의드려요.그 전의 부분에서는 이렇게 썼는데const OperatorButton = styled(NumberButton)` height: 8%; width: 13%; `;15분 23초 이후에 갑자기 이 부분이 const OperatorButton = styled.TouchableOpacity로 바껴져 있어요. ㅠㅠ 자동변환인가여? 이해가 안돼요
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
라이브러리 이름
라이브러리 불러올때 import color1 from "randomcolor"; 라이브러리 이름 정확히 적었는데 오류떠요 ㅠ
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
npm run start
강의때 선생님께서 하신거처럼 npm run start 입력해도 에러떠요그래서 node 02.js 로 실행시켰는데 이렇게해도 같은건가요?npm run start 는 왜 안되는거예요?경로설정에 "start": "node 02.js"추가했는데 안되요 ㅠ
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
npm run start
강의때 선생님께서 하신거처럼 npm run start 입력해도 에러떠요그래서 node 02.js 로 실행시켰는데 이렇게해도 같은건가요?npm run start 는 왜 안되는거예요?경로설정에 "start": "node 02.js"추가했는데 안되요 ㅠ
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
아직은 리액트가 아닐 텐데 그럼 CJS로는 라이브러리를 사용하지 못하나요?
이전 강의에서 package.json에 "type": "module"을 추가한 상태이고 라이브러리를 가져올 때 사용한 문법이 ESM인 것 같은데 CJS로도 가능한지 궁금합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
서버 502 error
백엔드 서버 키니 이렇게 나오는데 왜이런가요?
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
다수의 supertest 가 실행될 때 force:true로 인한 DB 초기화 문제
supertest 를 통해서 다른 라우터도 테스트 코드를 생성하려고 했는데요각각의 supertest 파일에서 sequelize.sync({force:true})가 병렬로 실행되니까 전체적인 테스트가 끝나지 않았는데 위 코드로 인해 DB가 초기화 되어버려 테스트를 실패하는 케이스가 발생했습니다.이게 항상 발생하는 것도 아니고 테스트 수행 시간이 달라짐에 따라 결과가 매번 다르더라구요.그래서 이 부분을 어떻게 해결해야하는지 찾아보려고 했으나 검색 키워드를 잘몰라서 도움이 될만한 정보를 찾지 못했습니다.혹시 이런 부분은 어떻게 해야하나요? [제로초 강좌 질문 필독 사항입니다]질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다.도움이 되는 질문을 하는 방법을 알려드립니다.https://www.youtube.com/watch?v=PUKOWrOuC0c0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다.1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다.2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다.3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요.4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요.5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다.6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
12.13) New 페이지 구현하기 1. UI 마지막 부분 관련 질문
26분 50초 경에메인 컨테이너가 화면 끝까지 안 내려온다는 이유로index.css의 body에 display: flex;를 설정해주셨는데제 화면에서는 display: flex;를 안 적어줘도 메인 컨테이너가 끝까지 내려오고display:flex; 를 쓴 것과 안 쓴 것의 차이가 없습니다.지금 React의 버전이 올라가서 달라진 걸까요?노트북은 LG gram 쓰고 있습니다.display: flex; 체크 되어 있는 버전display: flex; 체크 안 된 버전
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
input 관련 문의
express 로 GraphQL 사용하였을 때 코드는 아래와 같습니다.const typeDefs = `#graphql input CreateBoardInput { writer: String title: String contents: String } type Mutation { createBoard(createBoardInput: CreateBoardInput!): String } `; const resolvers = { Mutation: { createBoard: (parent, args, context, info) => { ... return "게시글 등록 성공" } }위 내용을 Nest.js - GraphQL 에 적용하였을 때 아래와 같이 구현했습니다.@Mutation(() => String) createBoard( @Args('createBoardInput') createBoardInput: CreateBoardInput, ): string { // 1. 브라우저에서 보내준 Data 확인하기 console.log(createBoardInput.writer); console.log(createBoardInput.title); console.log(createBoardInput.contents); // 2. DB접속 후, 데이터 저장 => 데이터 저장했다고 가정 // 3. DB에 저장된 결과를 브라우저에 응답(response) 주기 return '게시글 등록 성공'; } @InputType() export class CreateBoardInput { // export 추가 및 클래스 이름 변경 @Field(() => String) writer: string; @Field(() => String) title: string; @Field(() => String, { nullable: true }) contents: string; }@InputType() 데코레이터: CreateBoardInput 클래스에 @InputType() 데코레이터를 적용하여, 이 클래스가 GraphQL 스키마에서 입력 타입으로 적용되게 되는데요.InputType 데코레이터의 경우 class 파일 위에 존재해야 한다고 합니다.지금처럼 InputType이 늘어날때마다 class 를 추가하나요?실무에서는 어떻게 사용하나요?
-
미해결레디스의 모든 것 (feat. Node.js)
systemctl restart redis-server 실행시 오류 문의
강의 영상 대로 작성 후systemctl restart redis-server실행시 아래와 같은 오류가 나옵니다...(sutdy를 server로했습니다.)Job for redis-server.service failed because a timeout was exceeded.See "systemctl status redis-server.service" and "journalctl -xeu redis-server.service" for details. journalctl를 실행해봤더니 아래에 대한 내용이 나오네요, 강의에 나온 service 내용을 그대로 쳤는데도 이런 오류가나오네요.... 4월 16 23:03:30 localhost.localdomain systemd[1]: Starting My resdis study...░░ Subject: A start job for unit redis-server.service has begun execution░░ Defined-By: systemd░░ Support: https://wiki.rockylinux.org/rocky/support░░░░ A start job for unit redis-server.service has begun execution.░░░░ The job identifier is 4223.4월 16 23:03:30 localhost.localdomain redis-server[31478]: 31478:C 16 Apr 2025 23:03:30.725 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cau>4월 16 23:03:30 localhost.localdomain redis-server[31478]: 31478:C 16 Apr 2025 23:03:30.726 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo4월 16 23:03:30 localhost.localdomain redis-server[31478]: 31478:C 16 Apr 2025 23:03:30.726 * Redis version=7.4.2, bits=64, commit=00000000, modified=0, pid=31478, just started4월 16 23:03:30 localhost.localdomain redis-server[31478]: 31478:C 16 Apr 2025 23:03:30.726 * Configuration loaded4월 16 23:03:30 localhost.localdomain redis-server[31478]: 31478:M 16 Apr 2025 23:03:30.726 * Increased maximum number of open files to 10032 (it was originally set to 1024).4월 16 23:03:30 localhost.localdomain redis-server[31478]: 31478:M 16 Apr 2025 23:03:30.726 * monotonic clock: POSIX clock_gettime4월 16 23:03:30 localhost.localdomain redis-server[31478]: 31478:M 16 Apr 2025 23:03:30.727 * Running mode=standalone, port=6379.4월 16 23:03:30 localhost.localdomain redis-server[31478]: 31478:M 16 Apr 2025 23:03:30.728 * Server initialized4월 16 23:03:30 localhost.localdomain redis-server[31478]: 31478:M 16 Apr 2025 23:03:30.728 * Loading RDB produced by version 7.4.24월 16 23:03:30 localhost.localdomain redis-server[31478]: 31478:M 16 Apr 2025 23:03:30.728 * RDB age 11 seconds4월 16 23:03:30 localhost.localdomain redis-server[31478]: 31478:M 16 Apr 2025 23:03:30.728 * RDB memory usage when created 0.93 Mb4월 16 23:03:30 localhost.localdomain redis-server[31478]: 31478:M 16 Apr 2025 23:03:30.728 * Done loading RDB, keys loaded: 0, keys expired: 0.4월 16 23:03:30 localhost.localdomain redis-server[31478]: 31478:M 16 Apr 2025 23:03:30.728 * DB loaded from disk: 0.000 seconds4월 16 23:03:30 localhost.localdomain redis-server[31478]: 31478:M 16 Apr 2025 23:03:30.728 * Ready to accept connections tcp4월 16 23:05:00 localhost.localdomain systemd[1]: redis-server.service: start operation timed out. Terminating.4월 16 23:05:00 localhost.localdomain redis-server[31478]: 31478:signal-handler (1744812300) Received SIGTERM scheduling shutdown...4월 16 23:05:00 localhost.localdomain redis-server[31478]: 31478:M 16 Apr 2025 23:05:00.778 * User requested shutdown...4월 16 23:05:00 localhost.localdomain redis-server[31478]: 31478:M 16 Apr 2025 23:05:00.778 * Saving the final RDB snapshot before exiting.4월 16 23:05:00 localhost.localdomain redis-server[31478]: 31478:M 16 Apr 2025 23:05:00.781 * DB saved on disk4월 16 23:05:00 localhost.localdomain redis-server[31478]: 31478:M 16 Apr 2025 23:05:00.781 * Removing the pid file.4월 16 23:05:00 localhost.localdomain redis-server[31478]: 31478:M 16 Apr 2025 23:05:00.781 # Redis is now ready to exit, bye bye...4월 16 23:05:00 localhost.localdomain systemd[1]: redis-server.service: Failed with result 'timeout'.░░ Subject: Unit failed░░ Defined-By: systemd░░ Support: https://wiki.rockylinux.org/rocky/support░░░░ The unit redis-server.service has entered the 'failed' state with result 'timeout'.