inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

Todo구현중 memo함수에 대해서

미해결

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

todo리스트 구현중 TodoItem.jsx에서 memo에 대해 강의를 보며 공부중입니다. 이렇게 console.log로 찍었는데 체크박스를 한 개만 찍어도 3가지 모두 다 console로 찍히는데 제대로 적용된 것 맞나요? 하이라이트를 켜도 색상이 비슷해서 구분이 잘 가지않습니다. 로그는 이렇게 찍힙니다. prev next = {"id":0,"isDone":false,"content":"React 공부하기","date":1764731042079}{"id":0,"isDone":true,"content":"React 공부하기","date":1764731042079} TodoItem.jsx?t=1764729548020:40 prev next = {"id":1,"isDone":false,"content":"빨래하기","date":1764731042079}{"id":1,"isDone":false,"content":"빨래하기","date":1764731042079} TodoItem.jsx?t=1764729548020:40 prev next = {"id":2,"isDone":false,"content":"노래 연습하기","date":1764731042079}{"id":2,"isDone":false,"content":"노래 연습하기","date":1764731042079} import { memo } from 'react'; import './TodoItem.css' function TodoItem({id, isDone, content, date, onUpdate, onDelete}) { const onChangeCheckbox = () => { onUpdate(id); } const onClickDeleteButton = () => { onDelete(id) } return ( <div className="TodoItem"> <input onChange={onChangeCheckbox} readOnly checked={isDone} type="checkbox"/> <div className="content">{content}</div> <div className="date">{new Date(date).toLocaleDateString()}</div> <button onClick={onClickDeleteButton}> 삭제 </button> </div> ); } export default memo(TodoItem, (prevProps, nextProps) => { console.log("prev next = " + JSON.stringify(prevProps) + JSON.stringify(nextProps)) if(prevProps.id !== nextProps.id) return false if(prevProps.isDone !== nextProps.isDone) return false if(prevProps.content !== nextProps.content) return false if(prevProps.date !== nextProps.date) return false return true });

  • javascript
  • react
  • node.js
  • 카카오공채-개발
최어진 댓글 2 좋아요 0 조회수 70

RuntimeError: There is no current event loop in thread 'MainThread'

미해결

우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)

import asyncio import timeit from urllib.request import urlopen from concurrent.futures import ThreadPoolExecutor import threading start = timeit.default_timer() urls = [' http://daum.net ', ' https://naver.com ', ' http://google.com '] async def fetch(url, executor): print('Thread Name : ', threading.current_thread().getName(), 'start', url) res = await loop.run _in_executor(executor, urlopen, url) print('Thread Name : ', threading.current_thread().getName(), 'Done', url) return res.read ()[0:5] async def main(): executor = ThreadPoolExecutor(max_workers=10) futures = [ asyncio.ensure_future(fetch(url, executor)) for url in urls ] rst = await asyncio.gather(*futures) print() print() print('Result : ', rst) if name == '__main__': loop = asyncio.get_event_loop() loop.run _until_complete(main()) duration = timeit.default_timer() - start print('Total Running Time : ', duration) 코드를 작성했을때 아래와 같은 오류가 발생하는데 왜 그런지 그리고 해결방법이 무엇인가요?

  • python
  • django
열심학습자 댓글 1 좋아요 0 조회수 112

Creatomate로 만든 영상 자막 편집

해결됨

원클릭으로 AI가 생성해주는 Youtube 쇼츠 만들기 자동화(with n8n)

안녕하세요, 강의 내용 토대로 이것 저것 쇼츠 만들어 올려보고 있습니다! 그런데 가끔 Creatomate에서 자동으로 생성해주는 자막이 이상하게 생성되어 영상이 제작되는 경우가 있는데(오타 등), 생성된 영상의 자막을 수정할 수 있는 방법이 있을까요?

  • python
  • youtube-api
  • n8n
  • ai-활용-(ax)
tim0402 댓글 2 좋아요 0 조회수 149

Tailwind CSS IntelliSense 작동이 안되요...

미해결

한 입 크기로 잘라먹는 React.js 실전 프로젝트 - SNS 편

안녕하세요 Tailwind CSS IntelliSense 작동이 안되서 그러는데 확인해 본 결과로 index.css에서 @import "tw-animate-css"; 이거와 @layer base { * { @apply border-border outline-ring/50; } body { @apply bg-background text-foreground; } } 이 코드가 들어가면 작동을 하지 않습니다 혹시 이게 왜 그럴까요...?

  • react
  • typescript
  • react-query
  • supabase
  • zustand
박 태영 댓글 2 좋아요 0 조회수 91

강의코드요청

해결됨

컴퓨터 비전 이상 탐지, 개발부터 배포까지 올인원 마스터

안녕하세요 이메일로 강의코드 요청드립니다. roadtoserenity3@gmail.com 감사합니다

  • python
  • 머신러닝
  • 딥러닝
  • azure-databricks
id_139 댓글 1 좋아요 0 조회수 63

플러그인 질문

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

강사님이 사용하시는 코드에서 오류가 났을때 빨간문자로 보이는 도움말? 은 무슨 플러그인을 사용하시는건가요?

  • javascript
  • react
  • node.js
  • 카카오공채-개발
athena1998 댓글 2 좋아요 0 조회수 73

next.js 는 핸드북 없나요?

해결됨

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

next.js 는 핸드북 없나요?

  • react
  • typescript
  • next.js
  • 카카오공채-개발
dorasir 댓글 2 좋아요 0 조회수 90

고양이 이미지가 엑박이 뜨네요

미해결

만들면서 배우는 리액트 : 기초

API 스펙이 변경되었네요! 제보 감사합니다. https://github.com/milooy/cat-jjal-maker/blob/main/answers/29-useEffect.html#L48 위 코드를 참고해서 fetchCat 함수를 변경해주세요. 위 답변해주신대로 소스를 변경해도 고양이 이미지가 엑박으로 뜨질 않습니다.

  • javascript
  • react
gangsugi 댓글 1 좋아요 0 조회수 83

백)TODO관련

미해결

코드로 배우는 React 19 with 스프링부트 API서버

강의중에는 private long tno; private String title; private String content; private boolean complete; private LocalDate dueDate; 위와같은 설정인데, 왜 갑자기 private long tno; private String title; private String writer; private boolean complete; private LocalDate dueDate; 로 바뀌는 건가요? 이것에 대한 설명은 어디에 있는거죠? 몇강 몇분대에 있는지에 대해서 알려주시면 감사하겠습니다.

  • react
  • typescript
  • spring-boot
  • jpa
  • jwt
jhoh 댓글 2 좋아요 0 조회수 74

useState 훅

미해결

타입스크립트로 배우는 리액트(React.js) : 기초부터 최신 기술까지 완벽하게

const [count,setCount] = useState(0); 선언되어 있을때 ()=>setCount(count+1); (count)=>setCount(count +1); 강의에서는 2번 처럼 사용 하던데 1번 처럼 사용해도 상관없나요? 차이가 있나요?

  • react
  • react-router
  • redux-toolkit
  • zustand
  • react.js
신박한 댓글 2 좋아요 0 조회수 50

디스코드 문의

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

안녕하세요, 소개 영상에서는 디스코드 채널이 있는거 같은데요. 관련 링크가 없네요. 어디서 확인가능할까요?

  • javascript
  • react
  • node.js
  • 카카오공채-개발
Jim 댓글 2 좋아요 0 조회수 50

안녕하세요. 좋은 강의 감사합니다. 질문이 있습니다.

해결됨

포트폴리오 어나더레벨 | 합격하는 이력서 작성법

안녕하세요. 큰돌님 유튜브도 보고있고 최근 개발 소식도 자주 접하고 있습니다. 최근에는 새로 내신 강의도 구매하여 수강을 하였습니다. 여기서 질문이 있습니다. 강의에서 "배포가 되어있는게 좋다"는 말이 있습니다. 포트폴리오나 사이드 프로젝트를 할 때 "배포의 중요성"이 중요한지 아니면 대체를 할 수 있는지 생각을 듣고 습니다. 요즘은 많은 오픈소스를 사용하는 것으로 알고있습니다. 그중에는 kafka, elasticsearch, redis 더 나아가 debezium, flink같은 것도 많습니다. 물론 이러한 것들은 대규모 트래픽이 발생하거나 많은 정보가 있을 때 사용하면 좋은 효율을 내고 있습니다. 보통 사이드 프로젝트 더 나아가서는 스타트업이나 중소기업까지도 트래픽이 적다면 구지 사용을 하지 않고 유지를해도 문제가 없을 수 있는 인프라 구조도 될 수 있다고 생각합니다. 하지만 기업들은 이러한 것을 요구합니다. 여기서 질문이 이런 인프라들은 배포를 할려면 비용이 상당히 많이 발생하고 유지가 힘든것으로 알고있습니다. 강의에서 말씀하신 인스턴스 최소 두대 또한 계속 유지하기에는 비용이 계속 누적이 될거라고 생각합니다. 물론 배포를 해놓고 그걸 보여주면 아주 best이고 현재의 상태를 잘 보여주고 느낄 수 있다고 생각합니다. 그런데 배포라는게 중요한것인지 의문이 들어 질문드렸습니다. 경력직에서 이직을 할때도 경력서에 쓰는 프로젝트 대부분이 배포는 현재 되있지만 실제적으로 그런 부분을 신경을 쓰지 않는 것(못하는것)으로 알고있어요. 그리고 회사에서도 막상 큰 회사일 수록 많은 트래픽을 받고있지만 인프라가 좋아 그거에 대해서 체감을 못하고 올바르지 않은 방향으로 나갈 수 있고 효율적인거보다 기능구현이 우선순위로 높게 배정됬을 수 도 있을 것 같아요. 반대로 큰 회사나 적은 회사든 어드민 부서는 존재하고 어드민 부서는 코어 부서보다 적은 트래픽을 받는 것 으로 알고있습니다. 그러면 이 때는 어떻게 어필을 하면 좋을 지 고민입니다. 이거에 대한 큰돌님의 생각을 의견을 듣고싶어 질문을 올렸습니다. 감사합니다.

  • HTML/CSS
  • javascript
  • python
  • java
  • 포트폴리오
kth004 댓글 1 좋아요 0 조회수 99

chapter 07-01 실행 오류

미해결

우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)

안녕하세요 강사님. chapter 07-01 실행 오류가 납니다. 아니콘다 설치한 파이썬 3.13.5이고 주피터에서 실행했습니다. 무슨 오류인지도 모르겠어요. 도와주세요. import asyncio import timeit from urllib.request import urlopen from concurrent.futures import ThreadPoolExecutor import threading # 실행 시작 시간 start = timeit.default_timer() # 서비스 방향이 비슷한 사이트로 실습 권장(예, 게시판성 커뮤니티) urls = ['http://daum.net', 'https://naver.com', 'http://mlbpark.donga.com/', 'https://tistory.com', 'https://wemakeprice.com/'] # 동시 실행, urliopen 함수는 블록 IO임, 쓰레드로 사용해서 urlpen을 따로 사용해 준다면 asyncio에서 제어권을 넘기는 넘기는 방식으로 코딩 async def fetch(url, executor): # 쓰레드가 ulrs 리스크 겟수만큼 들어 옴 # 실행 res = await loop.run_in_executor(executor, urlopen, url) # 결과 반환 return res.read()[0:5] # 내용이 많아 짜름 [0:5] # def main(): # --> async # yield --> await # 함수 내 yield 사용은 Generator async def main(): # 쓰레드 풀 생성 executor = ThreadPoolExecutor(max_workers=None) # future 객체 모아 gather에서 실행 (중요) futures = [ asyncio.ensure_future(fetch(url, executor)) for url in urls # fetch가 갯수만큼 생성 ] # 결과 취합 rst = await asyncio.gether(*futures) # future가 끝날 때가지 기다려 줄거예요, 리스트이기 때문에 언패킹 print('Result : ', rst) # 자~ 위에 fetch함수 만들자 if __name__ == '__main__': ## 패턴이 있음 # 루프 초기화 loop = asyncio.get_event_loop() ## 제어권을 주고 받는 핑퐁 게임 하겠다는 것 # 작업 완료까지 대기 loop.run_until_complete(main()) # run을 complete까지,끝날 때까지 루프는 계속된다s # 수행 시간 계산 duration = timeit.default_timer() - start # 총 실행 시간 print('Total Running Time : ', duration) --------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) Cell In[1], line 49 46 loop = asyncio.get_event_loop() 47 ## 제어권을 주고 받는 핑퐁 게임 하겠다는 것 48 # 작업 완료까지 대기 ---> 49 loop.run_until_complete(main()) # run을 complete까지,끝날 때까지 루프는 계속된다s 50 # 수행 시간 계산 51 duration = timeit.default_timer() - start File /opt/anaconda3/lib/python3.13/asyncio/base_events.py:701, in BaseEventLoop.run_until_complete(self, future) 690 """Run until the Future is done. 691 692 If the argument is a coroutine, it is wrapped in a Task. (...) 698 Return the Future's result, or raise its exception. 699 """ 700 self._check_closed() --> 701 self._check_running() 703 new_task = not futures.isfuture(future) 704 future = tasks.ensure_future(future, loop=self) File /opt/anaconda3/lib/python3.13/asyncio/base_events.py:637, in BaseEventLoop._check_running(self) 635 def _check_running(self): 636 if self.is_running(): ... 638 if events._get_running_loop() is not None: 639 raise RuntimeError( 640 'Cannot run the event loop while another loop is running') RuntimeError: This event loop is already running Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...

  • python
  • django
Zetta Kim 댓글 1 좋아요 0 조회수 95

yaml 파일을 계속 찾으면서 에러가 띄네요!

미해결

한 번에 끝내는 AI 에이전트 개발 올인원 (w. LangGraph, Google ADK, CrewAI)

File not found: C:\Users\상민\Desktop\inflearn_agent\1-1_chatbot_agent2\config\agents.yaml WARNING:root:Agent config file not found at C:\Users\상민\Desktop\inflearn_agent\1-1_chatbot_agent2\config\agents.yaml. Proceeding with empty agent configurations. File not found: C:\Users\상민\Desktop\inflearn_agent\1-1_chatbot_agent2\config\tasks.yaml WARNING:root:Task config file not found at C:\Users\상민\Desktop\inflearn_agent\1-1_chatbot_agent2\config\tasks.yaml. Proceeding with empty task configurations. +++++++++++++++++ yaml 파일을 다 삭제고 코드도 모두 수정했는데 여전히 이 파일을찾으면서 에러가 띄네요. 어떻게 하면 될까요?

  • python
paintosm 댓글 2 좋아요 0 조회수 123

수강기간 연장 문의드립니다.

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

안녕하세요 빅분기 실기 강의 수강생입니다. 다름이 아니라, 제가 이번 실기 시험을 응시했지만 떨어질 것 같아서 미처 다 듣지 못한 나머지 강의들을 마저 수강하고자 하는데 혹시 2주 정도 강의 연장이 가능할 지 문의드립니다. 제 메일 주소는 ytb.nayun@gmail.com 입니다. (연장제도가 있는지 몰라서 기간 만료일에 촉박하게 문의드리는 점 양해부탁드립니다. ㅠㅠ)

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
RINGRING 댓글 2 좋아요 0 조회수 212

ESFP 영어버전 받을 수 있을까요?

해결됨

(2025) MBTI 테스트 기반 수익형 웹사이트 만들기 - <코딩 배워 사업하자>

안녕하세요. avif 변환중인데, ESFP 영어버전이 없네요. img를 구할 수 있을까요?

  • react
  • aws
  • Google-Analytics
  • cloudflare
  • adsense
  • 수익화
이재윤 댓글 2 좋아요 0 조회수 113

비디오 생성 요청 시 주의

해결됨

원클릭으로 AI가 생성해주는 Youtube 쇼츠 만들기 자동화(with n8n)

실행을 해도 Request History에 뜨지 않길래 여러 번 실행하고 나서야 queue_position을 뒤늦게 확인했더니 4천번대였네요. 큐 대기중에는 히스토리에도 뜨지 않나 봅니다. 한 15~20분 기다리니까 생성 되었고, Request에 뜨지도 않고 그때까지 요금도 차감 안 되길래 오류인가 싶어 몇 번 더 눌렀는데 시간 지나고 나니 와다다다 걸려있었다는... 현재 대기 순번을 고려해서 waitTime을 더 길게 하시던가, 방어 로직을 추가로 넣던가 해야될 것 같아요

  • python
  • youtube-api
  • n8n
  • ai-활용-(ax)
tim0402 댓글 1 좋아요 0 조회수 82

onSettled와 setQueryData

해결됨

한 입 크기로 잘라먹는 React.js 실전 프로젝트 - SNS 편

안녕하세요 선생님! 낙관적 업데이트(2) 강의 마지막에 onSettled를 통해 update가 종료된 후 기존 캐시 무효화 후 db에서 다시 받아와서 갱신시켜주는 로직을 작성한걸로 알고있는데 이때 onMutate 내부에서 setQueryData를 통해 별도의 업데이트된 정보를 캐시에 세팅시켜주는 로직은 필요가 없어지게 되는건가용? export function useUpdateTodoMutation() { const queryClient = useQueryClient(); return useMutation({ mutationFn: updateTodo, onMutate: async (updatedTodo) => { await queryClient.cancelQueries({ queryKey: QUERY_KEY.todo.list, }); const prevTodos = queryClient.getQueryData<Todo[]>(QUERY_KEY.todo.list); /* 이부분 */ queryClient.setQueryData<Todo[]>(QUERY_KEY.todo.list, (prevTodo) => { if (!prevTodo) return []; return prevTodo.map((item) => item.id === updatedTodo.id ? { ...item, ...updatedTodo } : item, ); }); /* //이부분 */ return { prevTodos, }; }, onError: (error, variable, context) => { if (context && context.prevTodos) { queryClient.setQueryData<Todo[]>( QUERY_KEY.todo.list, context.prevTodos, ); } }, onSettled: () => { queryClient.invalidateQueries({ queryKey: QUERY_KEY.todo.list, }); }, }); }

  • react
  • typescript
  • react-query
  • supabase
  • zustand
박선우 댓글 1 좋아요 0 조회수 146

인기 태그

인프런 TOP Writers

주간 인기글