좋은 영상 감사합니다. 별코딩님 덕분에, 함수 컴포넌트는 함수다. 함수 컴포넌트는 상태변화시 다시 렌더링이 된다. 렌더링시, 함수 내부 변수는 초기화가 된다. 그리고 함수는 객체다. 초기화가 된다는건 새로운 객체가 다시 만들어지고, 메모리 주소도 새로 생성 된다. 그 말은, 렌더링 전 변수와, 렌더링 후 변수가 다르다. {A} === {A} // FALSE 이렇게 되면, useEffect에서 의존성 배열은, 객체 구분을 하지 못하고, 렌더링이 계속 일어난다. * 문제점: 객체 초기화를 멈추지 않으면, 렌더링이 계속 발생한다. * 해결책: useMemo, useCallback ---> 객체 (함수) 자체를 Memoization 해준다. 값과 콜백을 메모리 어디엔가 저장해두고, 필요할때 가져다 쓴다. 라는걸 배웠어요. 틀린 부분이나, 부족한점 있으면. 지적 부탁드려요. 감사합니다.!!!
안녕하세요! 첫 댓글이라니, 영광이네요 😆. 제가 처음 리액트를 배우기 시작했을때는 동영상 강의를 주로 봤어요. 어느정도 리액트에 익숙해진 후에는 공식 문서나 여러 블로그들을 더 많이 참고하면서 배우게 되더라구요! 버그나 질문이 생겼을때는 StackOverflow를 많이 참고하는 편이구요. 자바스크립트도 비슷해요! 익숙해진 이후로는 MDN 공식문서나 블로그를 가장 많이 참고하게되는 것 같아요. 제 개인적인 생각으로 자바스크립트/리액트에 먼저 친숙해지고 난 다음에는 구글링을 통해 그때 그때 필요한것을 배우는게 효과적인 것 같아요. 아래 리액트와 MDN 공식문서 링크 남겨드릴게요! 리액트: reactjs.org/docs/getting-started.html MDN: developer.mozilla.org/en-US/docs/Web/JavaScript
댓글 잘 안남기는 편인데 너무 감사해서 댓글 남깁니다 :) 원래는 운영 업무만 진행해서 react를 사용해 본적이 없고 자바스크립트 프레임 사용 경험도 옛날 프레임워크인 extJs 가 전부였어요. 근데 이직하는 회사에서 사용중이라 공부중인데 많은 도움이 되네요ㅠㅠ 현업에서 많이 사용할 것 같은 예제로 같이 올려주시는거 너무 감사드려요 ㅠㅠ 많이 많이 올려주세요! 항상 감사드립니다.
너무 좋은 강의 잘 들었습니다. 질좋은 영상 매번 잘 시청하고 있습니다! 한 가지 궁금한 점이 있어서요.. 원시타입과 참조타입 변수들 둘 다 제가 알기론 바로 할당이 되지 않고, 주소값을 가지는 것으로 알고 있습니다. 해당 주소 값에 접근시 원시타입 변수는 데이터가 저장되어 있고 참조타입 변수는(1LEVEL 객체로 예를 들면) 원시 타입으로 이루어져 있는 프로퍼티(식별자)들이 각각 다른 데이터에 대한 주소를 담고 있는 것으로 알고 있습니다. 컴포넌트 리렌더링 시 말씀하신대로 변수들이 재정의 되는데, 제 말대로 두 타입의 변수들 모두 초반엔 주소를 가지는게 맞다면 왜 원시타입의 변수는 새로운 주소값을 가지지 않을까요? 너무 헷갈려서 이렇게 여쭤봅니다 ㅠ
mysql에서 data를 json으로 가져와 보여주는 부분을 crud로 개발했습니다. 그런데 cs가 갵은 localhost에서는 crud가 잘되나 같은 공유기 밑의 다른 pad나 pc에서 접속하면 프로그램 프론트엔드는 보이나 json데이터가 보이질 않습니다. proxy혹은 cors문제인거같은데 어떻게 해야 같은 네트워크 믿의 타 pc에서도 crud가 가능할까요?
createBoxStyle은 스타일 객체를 리턴하는 함수입니다! 그렇기 때문에, useCallback으로 감싸준거구요. 만약 useCallback이 아니라, useMemo로 교체해주면, createBoxStyle은 더이상 함수가 아니라, 객체를 담고 있는 변수가 됩니다 ㅎㅎ
궁금한점이 있어서 혹시라도 답변을 달아주실까 하고 이렇게 댓글을 달아보네요! 저는 리엑트를 공부하면서 훅이라는 기능이 정말 편리하고 좋으면서도 훅의 종류가 너무나도 다양해서 선택에 어려움이 종종 있습니다. 제 개인적으로는 useState와 useEffect 두가지로 대부분의 훅을 대체할 수 있다는 생각이 듭니다. 예를 들면 useEffect와 useCallback 두 가지 전부 dependency array를 가지고 있습니다. 이 배열로 훅의 제어가 된다면 useCallback을 대신해 useEffect를 사용해도 같은 기능을 구현할 수 있지 않을까? 라는 생각이 듭니다. 그래서 아직까지는 useCallback 훅이나 useMemo 훅을 개발에 직접 응용해본적은 없습니다. 이영상에선 다루고있지 않지만 useRef 또한 자주 사용하지 않게 됩니다. 하지만 이러한 훅들을 공식적으로 제공해주는 것은 필요하기 때문에 라고 생각합니다. 이런 훅들을 다 사용할 줄 알아야 할까요? 코드의 가독성을 위해서일까 라는 생각도 하게 되고 useEffect를 사용한 커스텀훅이 useCallback인가? 라는 생각도 해보게 되네요. 프론트앤드 개발자를 꿈꾸며 독학으로 공부를 하다보니 개념적으로 혼란스러운 부분이 많아 이렇게 댓글을 달아봅니다 😂 새벽에 조금 피곤해서 그런지 횡설수설 했네요..! 영상은 정말 잘 보고 있습니다 감사합니다!
useEffect로 useCallback을 어떻게 대체하셨는지 궁금합니다! useEffect는 렌더링시 발생하는 side effect를 다루기 위한 목적이고, useCallback (또는 useMemo)는 메모이징 기법을 이용하여 불필요한 렌더링/계산을 줄임으로 컴포넌트 성능을 최적화하기 위한 목적입니다. 여러가지 훅들의 내부 구현사항을 직접 구현하여 다른 코드로 대체할수는 있겠지만 (예를들어 document.querySelector로 useRef의 DOM 접근을 대체하는것) 리액트에서 지향하는 방향성을 가진 API(훅)을 사용하는게 더 좋은 방법이지 않을까 생각이 듭니다. 리액트 생태계 안에서 더 유지보수하기 편리하고, 다른 개발자와 협업하기 좋은 코드를 만들기 위해 특별히 중요하지요 😄. 제 실무 경험을 말씀드리자면, 존재하는 모든 훅을 사용하고있진 않지만, useState, useEffect, useRef, useMemo, useCallback 는 정말 정말 자주 사용하고 있습니다! 또한 전역 데이터를 관리하기 위해 useContext훅도 종종 사용하고 있구요. 언급한 여섯가지 훅은 꼭 익숙하게 사용하실 수 있어야하고, 나머지 훅들은 필요할때 찾아서 공부해보시는것을 추천드립니다!
useMemo도 사실 useCallback과 같은 기능을 하게 만들 수 있어요! useMemo를 사용해서 함수를 메모이제이션하려면 콜백 함수의 리턴값으로 또 다른 콜백함수를 넣어주면 돼요. (사실 이렇게 하면 코드가 더러워지기때문에 useCallback을 사용하는거죠 😅). useMemo와 useCallback, 둘 다 메모이제이션을 위해 사용되는거예요. 혹시 답변이 되셨나요? 😄
좋은 영상 감사합니다.
별코딩님 덕분에,
함수 컴포넌트는 함수다.
함수 컴포넌트는 상태변화시 다시 렌더링이 된다.
렌더링시, 함수 내부 변수는 초기화가 된다. 그리고 함수는 객체다.
초기화가 된다는건 새로운 객체가 다시 만들어지고, 메모리 주소도 새로 생성 된다.
그 말은, 렌더링 전 변수와, 렌더링 후 변수가 다르다. {A} === {A} // FALSE
이렇게 되면, useEffect에서 의존성 배열은, 객체 구분을 하지 못하고, 렌더링이 계속 일어난다.
* 문제점: 객체 초기화를 멈추지 않으면, 렌더링이 계속 발생한다.
* 해결책: useMemo, useCallback ---> 객체 (함수) 자체를 Memoization 해준다. 값과 콜백을 메모리 어디엔가 저장해두고, 필요할때 가져다 쓴다.
라는걸 배웠어요.
틀린 부분이나, 부족한점 있으면. 지적 부탁드려요.
감사합니다.!!!
와~~ 깔끔한 정리 감사합니다 경현님!! 😆😆😆
전세계 에서 지구상 on planet , on university 인류1등 으로 가장 친절하고 쉬운 usecallback 설명
헉 ㅠㅠ 영광입니다! 감사합니다 광일님! 😆😆😆
지금 본게 너무 아쉬울 정도로 강의 퀄리티가 좋네요 정말 잘 봤습니다. 제가 본 강의 중에서 최고네요
앗 감사합니다! 😆😆 더 좋은 영상으로 또 찾아뵐게요~
목소리가 차분해서 듣기가 너무 편해요. 영어 강의만 듣다가 한국어 강의 들으니까 이해가 훨씬 잘 되네요. 감사합니다.
선댓글후감상
useeffect 5번이상봤습니다
감사합니다
조회수가낮고 힘든유튜버의길이지만 힘내세요
너무 힘이나는 말씀 감사합니다! 감동이예요 🥲. 다섯 번이나 보셨다니 ㅠㅠ 앞으로 더 좋은 강의로 찾아뵐게요~
별코딩님의 차근차근 설명해주시는 방식이 프로그래밍 사고를 넓혀주는것 같습니다. 오류가 있으면 저도 별코딩님처럼 차근차근 돌아가봐여겠네요. 오늘도 좋은영상 감사합니다.
민찬님 매번 찾아오셔서 댓글 달아주시니 너무 감동입니다!! 😍😍 오류가 날때마다 차근 차근 디버깅하다보면 대부분의 경우 문제가 잘 풀리는 것 같아요~ 제 강의가 도움이 되셨다니 너무 기분이 좋네요! 앞으로도 좋은 영상 많이 만들어보도록 할게요!
진짜 리액트 강의 들으면서 별코딩님처럼 이런 심도잇는 강의는 처음 들었습니다.. 감동의 눈물이... 저에게 공부비법 전수 좀... ㅠㅠㅠ 별코딩님같이 리액트 잘하고 싶어요
ㅎㅎㅎ 과찬이십니다😆 코딩 공부는 직접 키보드 두드리면서 하는게 최고라고 생각합니다!
최고에요..진짜로...이렇게쉽게알려주시다니 너무감사합니다
훅 영상들 너무 잘보고 있습니다. 여러 영상들을 봐도 이렇게 이해가 잘되는게 없네요! 정말 감사합니다
친절하게 설명을 잘하시네요
오늘도 좋은 강의 잘봤습니다! ~!~!!기다렸어요~~~~!! 매번 느끼지만 설명을 정말 잘하시는거같아용 🤭 물론 저의 이해도와는,,별개지만 그래도 어떤 강의보다도 쉽고 재밌게 듣고있어요!!! 오래오래 강의해주세요~~~~
추어멈님 이번 영상에서도 찾아와 주셔서 감사합니다! 제 설명이 만족스러우셨다니 기분이 좋네요😆! 열심히 공부하시다보면 어느세 리액트 프로가 분명히 되어있으실거예요! 화이팅!!
진짜 짱이에요 기가막혀요
예제가 개념을 직관적으로 이해하기 참 훌륭한 예제 같아요~
코딩님 덕분에 기초가 탄탄해지는 느낌이에요 감사드립니다.
원리까지 알려주시면서 useCallback 알려주시니까 이해가 너무 잘되네요. 감사합니다! useCallback에 대해서 찾은것 중 제일 도움되었어요. 후에 다른곳에서 강의 개설한다면 바로 결제하고 싶다고 생각했어요.
따듯한 댓글 감사합니다!!
디테일함이 생활코딩급이네 굳굳
엄청난 칭찬에 몸 둘 바를 모르겠습니다! 😆😆 감사합니다!
감사합니다! 설명 최고예요
도움이되어서 기쁘네요! 댓글 감사합니다 :)
좋은 영상 감사합니다. 큰 도움이 되었습니다!
영상 봐주셔서 감사해요! 도움이 되었다니 기쁘네요 😄
별코딩님은 저의 구세주입니다!! 감사합니다!!!!!
깔끔한 설명
hooks 강의들 거의 다 듣고 있는데 친절하고 자세한 설명 덕분에 너무나 큰 도움이 되었습니다. hooks강의 질이 좋아서 다른 강의들도 하나하나 다 보게 될 것 같네요.
최근에는 업로드를 잘 안하시는 것 같은데 ㅜㅜ 아무튼 정말 감사합니다!
감사합니다!
매번 좋은 강의 감사합니다
시청해주셔서 감사합니다! 😆😆
진짜 명강의 입니다.. 감사합니다 ㅜㅜㅜㅜㅜㅜ
명강의라니 ㅎㅎㅎ 너무 감사합니다!
명강의 감사드려요♡
과찬이십니다!! ㅎㅎ 영상 봐주셔서 감사합니다!
진짜 감사합니다 완전히 이해했다곤 못하겠지만 이전에 비하면 확실히 알아듣는게 많아졌어요ㅠㅠㅠ 그런데 예제 코드를 더 자세히 뜯어보고 싶은데 혹시 예제 코드 공유는 안되시는지 궁금합니다
useMemo와 useCallback 시리즈 너무 좋았어용...ㅎㅎ 구독!!!
감사합니다! ☺️
이 강의 하나로 결정했다. 별코딩으로 리액트 기초를 쌓는다.
처음으로 유튜브에 댓글남겨봅니다. 차분한 설명 감사해요! 혹시 평소에 어떻게 리액트/자바스크립트를 공부하시는지 여쭤봐도 될까용?~
안녕하세요! 첫 댓글이라니, 영광이네요 😆. 제가 처음 리액트를 배우기 시작했을때는 동영상 강의를 주로 봤어요. 어느정도 리액트에 익숙해진 후에는 공식 문서나 여러 블로그들을 더 많이 참고하면서 배우게 되더라구요! 버그나 질문이 생겼을때는 StackOverflow를 많이 참고하는 편이구요. 자바스크립트도 비슷해요! 익숙해진 이후로는 MDN 공식문서나 블로그를 가장 많이 참고하게되는 것 같아요. 제 개인적인 생각으로 자바스크립트/리액트에 먼저 친숙해지고 난 다음에는 구글링을 통해 그때 그때 필요한것을 배우는게 효과적인 것 같아요.
아래 리액트와 MDN 공식문서 링크 남겨드릴게요!
리액트: reactjs.org/docs/getting-started.html
MDN: developer.mozilla.org/en-US/docs/Web/JavaScript
댓글 잘 안남기는 편인데 너무 감사해서 댓글 남깁니다 :) 원래는 운영 업무만 진행해서 react를 사용해 본적이 없고 자바스크립트 프레임 사용 경험도 옛날 프레임워크인 extJs 가 전부였어요. 근데 이직하는 회사에서 사용중이라 공부중인데 많은 도움이 되네요ㅠㅠ 현업에서 많이 사용할 것 같은 예제로 같이 올려주시는거 너무 감사드려요 ㅠㅠ 많이 많이 올려주세요! 항상 감사드립니다.
연홍님 감사합니다! 영상이 도움이 되었다니 너무 뿌듯하네요 😄. 이직하신 회사에서도 화이팅입니다! 더 좋은 강의로 곧 찾아뵐게요~
이해 너무 잘가요 ㅠㅠ
다행이네요! 😊
너무 좋은 강의 잘 들었습니다. 질좋은 영상 매번 잘 시청하고 있습니다!
한 가지 궁금한 점이 있어서요..
원시타입과 참조타입 변수들 둘 다 제가 알기론 바로 할당이 되지 않고, 주소값을 가지는 것으로 알고 있습니다.
해당 주소 값에 접근시 원시타입 변수는 데이터가 저장되어 있고 참조타입 변수는(1LEVEL 객체로 예를 들면) 원시 타입으로 이루어져 있는 프로퍼티(식별자)들이 각각 다른 데이터에 대한 주소를 담고 있는 것으로 알고 있습니다.
컴포넌트 리렌더링 시 말씀하신대로 변수들이 재정의 되는데, 제 말대로 두 타입의 변수들 모두 초반엔 주소를 가지는게 맞다면 왜 원시타입의 변수는 새로운 주소값을 가지지 않을까요?
너무 헷갈려서 이렇게 여쭤봅니다 ㅠ
'' 말고 `` 이거는 신박하네요.
누가 먼저 안 알려주면 알 길이 없겟어요.
자바스크립트의 템플릿 리터럴은 참 편리한것 같아요 ㅎㅎ
mysql에서 data를 json으로 가져와 보여주는 부분을 crud로 개발했습니다. 그런데 cs가 갵은 localhost에서는 crud가 잘되나 같은 공유기 밑의 다른 pad나 pc에서 접속하면 프로그램 프론트엔드는 보이나 json데이터가 보이질 않습니다. proxy혹은 cors문제인거같은데 어떻게 해야 같은 네트워크 믿의 타 pc에서도 crud가 가능할까요?
감사합니당
하... 디테일한 부분도 예제로 알려주시니까 너무 좋아요.. 문제는 훅들이 다 비슷해보여서 자꾸 헷갈린다는...ㅎㅎ useMemo랑 useCallback 이랑 차이점을 모르겠어서 댓글 읽어보니까 이제 알겠네요. 좋은 강의 감사합니다!
useMemo와 useCallbak 둘 다 메모이제이션을 활용하기때문에 더 헷갈리는 것 같아요 ㅎㅎ 이해가 잘 되셔서 다행이예요! 영상 봐주셔서 감사해요 ☺️
ㅠㅠ 선생님 감사합니다
감사합니다!!
지금까지 들었던 강사님들보다 최고다
별코딩님 강의 따로 없는거죠?
감사해서 몸 둘 바를 모르겠네요~ 😄. 강의는 유튜브에만 올리고 있어요 ㅎㅎ
안녕하세요. 강의 잘 보고 있습니다! 다름이 아니라 한가지 궁금한게 생겨서요. 11:30 가량에 나온 useCallback활용시 내부 값 변경 안되는게 자바스크립트 클로져 같은 개념으로 봐도 되나요??
클로저를 생각하기보단, 메모이제이션을 할때 함수 내부의 구현사항을 "찰칵"하고 찍어놓고 제사용한다고 생각하시면 될 것 같아요. useCallback에 넣어준 함수 내부 값은 의존성 배열에 있는 값이 업데이트 되지 않는이상은 이전에 찍어놓은 값을 제사용하기때문이지요 😄
@@starcoding 감사합니다!!
그렇다면 useCallback 함수로 감싼 함수들은 어플리케이션이 다시 시작할때 stack 들어가지 않는다는 것인가요..? 아니면 값만 메모리에 캐싱해서 함수는 stack 에 들어가는지 궁금합니당
별코딩님 hooks 시리즈 너무 잘 보고 있습니다. 개인 정리 목적으로 포스팅을 하고있는데 링크를 남기고 공개 포스팅을 해도 괜찮을까요?
슬라이드 이미지 없이 출처만 남겨주세용~~
선생님 강의 정말 잘보고 있습니다.
강의 보다가 궁금한점이 onClick={함수} , onClick={()=>{함수}} , onClick={함수()} 이게모두다 비슷하게 동작하는것 같은데 혹시 차이점을 설명해주신 강의가 있으실까욤?
onClick={함수}, onClick={( ) => {함수}}, onClick={함수( )}의 차이를 한눈에 보기 위해서는, "함수" 부분에 함수의 정의를 넣어보시면 됩니다. 첫번 째는 클릭시 "함수"가 호출이 됩니다. 두번째는 클릭시 익명함수가 호출이 되지만, "함수"는 호출되지 않습니다 (소괄호를 넣지 않았기때문에). 세번째는 "함수"의 반환값을 onClick 속성으로 넣어준 경우입니다.
@@starcoding 선생님 답변남겨주셔서 감사합니다
부분부분적으로만 알고있었는데
선생님의 답변덕분에 명확하게 알게되었습니다
감사합니다!!
Thank you
🙌🙌
별코딩님 너무 궁금해서 계속찾아봐도 헷갈려서 물어봐요
마지막에 const createBoxStyle = useCallback(() => {
return{
backgroundColor : 'pink',
width : `${size}px`,
heigh: `${size}px`,
};
},[size]);
이렇게 하셨는데 값을 리턴하니까 useMemo인거같아서 useMemo로 하니까 타입이 다르다던데
함수가아니라 값을 리턴하니까 useMemo아닌가여?
createBoxStyle은 스타일 객체를 리턴하는 함수입니다! 그렇기 때문에, useCallback으로 감싸준거구요.
만약 useCallback이 아니라, useMemo로 교체해주면, createBoxStyle은 더이상 함수가 아니라, 객체를 담고 있는 변수가 됩니다 ㅎㅎ
@@starcoding 감사합니다 센세!!
특정 함수에만 적용하는 useEffect 같은 걸로 이해하면 될까요??
아뇨 다른거예요! useEffect는 렌더링시 호출되어야 하는 함수를 위한것이고, useCallback은 함수를 메모이제이션 하기 위함이라고 생각하시면 됩니다 :)
메모라이즈 컷! 감사합니다
컷! 영상 봐주셔서 감사합니다! 😆😆
ㅎㅎ 여기도 2:53 제사용으로 나오네요 ㅜ
지적 감사해요! 이미 올린영상은 왜 편집이 안되는걸까요..? ㅠㅠ
onClick={someFunction}과 onClick={someFunction()}의 차이점은 무엇인가요? onClick={someFunction()}이걸 사용하니 number의 값이 계속 불려져서 궁금합니다!
onClick={someFunction}은 함수를 click 이벤트에 등록해주지만, onClick={someFunction()} 은 요소가 만들어지는 즉시 someFunction이 호출되버립니다!!
궁금한점이 있어서 혹시라도 답변을 달아주실까 하고 이렇게 댓글을 달아보네요! 저는 리엑트를 공부하면서 훅이라는 기능이 정말 편리하고 좋으면서도 훅의 종류가 너무나도 다양해서 선택에 어려움이 종종 있습니다. 제 개인적으로는 useState와 useEffect 두가지로 대부분의 훅을 대체할 수 있다는 생각이 듭니다. 예를 들면 useEffect와 useCallback 두 가지 전부 dependency array를 가지고 있습니다. 이 배열로 훅의 제어가 된다면 useCallback을 대신해 useEffect를 사용해도 같은 기능을 구현할 수 있지 않을까? 라는 생각이 듭니다. 그래서 아직까지는 useCallback 훅이나 useMemo 훅을 개발에 직접 응용해본적은 없습니다. 이영상에선 다루고있지 않지만 useRef 또한 자주 사용하지 않게 됩니다. 하지만 이러한 훅들을 공식적으로 제공해주는 것은 필요하기 때문에 라고 생각합니다. 이런 훅들을 다 사용할 줄 알아야 할까요? 코드의 가독성을 위해서일까 라는 생각도 하게 되고 useEffect를 사용한 커스텀훅이 useCallback인가? 라는 생각도 해보게 되네요. 프론트앤드 개발자를 꿈꾸며 독학으로 공부를 하다보니 개념적으로 혼란스러운 부분이 많아 이렇게 댓글을 달아봅니다 😂 새벽에 조금 피곤해서 그런지 횡설수설 했네요..! 영상은 정말 잘 보고 있습니다 감사합니다!
useEffect로 useCallback을 어떻게 대체하셨는지 궁금합니다! useEffect는 렌더링시 발생하는 side effect를 다루기 위한 목적이고, useCallback (또는 useMemo)는 메모이징 기법을 이용하여 불필요한 렌더링/계산을 줄임으로 컴포넌트 성능을 최적화하기 위한 목적입니다. 여러가지 훅들의 내부 구현사항을 직접 구현하여 다른 코드로 대체할수는 있겠지만 (예를들어 document.querySelector로 useRef의 DOM 접근을 대체하는것) 리액트에서 지향하는 방향성을 가진 API(훅)을 사용하는게 더 좋은 방법이지 않을까 생각이 듭니다. 리액트 생태계 안에서 더 유지보수하기 편리하고, 다른 개발자와 협업하기 좋은 코드를 만들기 위해 특별히 중요하지요 😄.
제 실무 경험을 말씀드리자면, 존재하는 모든 훅을 사용하고있진 않지만, useState, useEffect, useRef, useMemo, useCallback 는 정말 정말 자주 사용하고 있습니다! 또한 전역 데이터를 관리하기 위해 useContext훅도 종종 사용하고 있구요. 언급한 여섯가지 훅은 꼭 익숙하게 사용하실 수 있어야하고, 나머지 훅들은 필요할때 찾아서 공부해보시는것을 추천드립니다!
구독 누르고 갑니다!
별코딩님 궁금한게 맨 마지막에는 리턴 값을 재사용할수 있는거니까 usecallback 말고 useMemo 로도 사용할수 잇는건가요?
useMemo도 사실 useCallback과 같은 기능을 하게 만들 수 있어요! useMemo를 사용해서 함수를 메모이제이션하려면 콜백 함수의 리턴값으로 또 다른 콜백함수를 넣어주면 돼요. (사실 이렇게 하면 코드가 더러워지기때문에 useCallback을 사용하는거죠 😅). useMemo와 useCallback, 둘 다 메모이제이션을 위해 사용되는거예요. 혹시 답변이 되셨나요? 😄
useCallback까지 듣고 질문있습니다! useMemo랑 useCallback이랑 굉장히 비슷한거 같은데 차이가 뭔지 감이 잘안오네요! 제가 중간에 뭔가 빠트린건지 궁금해서요! 감사합니다!
useMemo와 useCallback은 둘다 메모이징 한다는 측면에선 같지만, useMemo는 어떠한 "값"을 메모이징하기 위한 것이고, useCallback은 어떠한 "함수"를 메모이징하기 위한 것 입니다! 😄
얼만큼 공부 하셔야 이렇게 쉽게 설명하실 수 있나요? 항상 잘 보고 있습니다!
하핫 감사합니다! 회사에서 리액트로 주로 개발을 하다보니 저에겐 많이 익숙한 라이브러리가 된것 같아요! 영상 봐주셔서 감사합니다 :)
영상 감사합니당! 좋은 배움이 되었습니다!