한 번에 끝내는 AI 에이전트 개발 올인원 (w. LangGraph, Google ADK, CrewAI)
아직 강의 전체는 안보고 우선적으로 MCP가 궁금해서 이 부분부터 봤습니다. 아래 문장 질문드려요. "기존에는 agent를 사용하는 개발자가 직접 툴을 사용/개발했는데, MCP프로토콜이 나오면서 agent를 사용하는 개발자가 직접 툴을 개발하는게 아니라 application 공급자가 MCP를 만들어서 사용자와 agent개발자에게 연결해서 쓰면된다는 식으로 추세가 변화했다. 그러니까 공급자가 MCP를 개발해서 서버에 올려도 어느정도 api가 변경되면 application 공급자가 전부다 MCP규칙에 맞춰서 코드를 수정해줘야 한다. 즉 원래는 agent 개발자가 툴개발(application사용)에 있어서 부담이 있었다면 지금은 application 공급자가 직접 MCP를 만들어서 사용자에게 제공해줘야 하는거니 더 부담이 커졌다." 제가 이해한게 맞는지 확인해주세요. 크게보면 보면 주체가 3가지인가요? 1) LLM 2) Tool 개발자(agent 개발자) 3) 어플리케이션 개발자(구글 드라이브, 네이버메일 등) MCP가 나오기 전에는 Tool 개발자가 LLM API와 어플리케이션 API를 통해서 agent툴을 만들었다면 MCP가 등장한 후에는 Tool 개발자가 LLM API만 알고 있으면 Tool(agent) 개발을 할수 있다는 말인거죠? 결국에는 툴 개발자가 Application API는 공부할 필요가 없지만 LLM API는 공부해야 agent를 만들수 있다는 말이죠? LLM과 application이 MCP로 통신(연동)하는 건 이미 application 개발자가 별도의 MCP서버를 만들었으니 연동부분은 만들필요가 없음
안녕하세요 '커스텀 커맨드 고급: 동적 파라미터' 강의 교안 자료중 [공식 문서] 사용자 정의 슬래시 명령어 페이지가 존재하지 않아 공유드립니다. 프론트매터 참조가 필요하신 분들은 아래 링크에서 확인하실 수 있습니다. https://code.claude.com/docs/ko/skills#frontmatter-reference
store에서 actions를 생성하고 store를 내보내려고 할 때에 export const useAlertModal = () => { const store = useAlertModalStore(); return store as typeof store & State; }; 이렇게 as 단언문을 추가하셨는데 저는 as typeof store & State 이 부분을 추가하지 않아도 똑같이 추론이 되고 있습니다. const store: Write<State, { actions: { open: (params: Omit<OpenState, "isOpen">) => void; close: () => void; }; }> 둘 다 이렇게 동일하게 나오는데 어떤 차이점이 있는건가요?
AI 답변으로 해결됐습니다! 강의 제목처럼 말 그대로 재생성 방지였군요..! 마운트 시 생성된 함수를 재사용하기 때문에 리렌더링 되더라도 props로 넘어간 함수는 참조 값이 똑같은 처음 생성된 함수이다. 이해했습니다! 안녕하세요, 강사님! 73강 useCallback과 함수 재생성 방지 강의의 4분 쯤의 내용에 대해 질문이 있습니다. 강의에서, useCallback 적용한 'onCreate, onUpdate, onDelete 함수가 두 번째 인수로 빈 배열을 할당했기 때문에 마운트 이후에는 다시는 생성되지 않는다.'라고 설명해주셨는데요! 그러면, 첫 마운트 이후 todo 아이템을 생성, 수정, 삭제 할 때는 해당 함수들이 어떻게 동작하는 것일까요? 동작은 하되, 생성하지 않는다.. 라고 이해를 해야 하는 걸까요..? 답변해주시면 감사하겠습니다.
안녕하세요 module.exports 나 require 등의 node js 관련 기능을 작성하는데 자꾸 자동완성에 의해서 다른 글자로 바뀌네요 ex) module.exports 작성하는데 module 작성하고 '.' 누르거나 require 작성하고 '(' 누르면 다른 거로 바뀜 강사님 화면에서는 자동완성이 나오더라도 안 바뀌는데 혹시 어떻게 설정하셨는지 궁금합니다..!
todo list 추가/삭제 시 캐시데이터도 각각 따로 해줘야하는 내용은 알겠는데, 현재 체크박스만 변경할 때 캐시데이터를 업데이트 해주는거는 불필요하지않을까 생각이 듭니다. 만약 내용 수정같은경우라면 해줘야하겠지만..(?) 이전코드와 비교해봤을때 checkbox를 수정했을 때 "todo","list" 는 id만 갖고있어 문제는 캐시데이터 업데이트 해줄일은 없고, "todo", "detail"은 바로 업데이트가 되는데 굳이 코드 수정해주는 이유를 아직 모르겠습니다.
Error: Calling setState synchronously within an effect can trigger cascading renders Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following: * Update external systems with the latest state from React. * Subscribe for updates from some external system, calling setState in a callback function when external state changes. Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. ( https://react.dev/learn/you-might-not-need-an-effect ). 이런 에러가 나오는데요. 작동도 하고, 에러가 아니라 경고에 가까운것 같습니다. 그런데 똑같이 했는데 왜 강사님 화면에는 안뜨고 제 화면에만 뜨는건지 궁금하네요
매번 강의 잘 보고 있습니다. 수업을 따라 예제를 만드는 중 스크린샷처럼 에러 메세지를 만나게 되어 문의드립니다. 저는 윈도우 환경이라 이전 강의에 status line (상태표시줄)을 만드는 부분이 bash 명령어로는 만들어지지 않아서 powershell 명령어로 확장자가 ps1인 스크립트 파일을 만들어 settings.json에 command 속성에 추가하니 상태표시줄이 정상적으로 출력이 되고 있습니다. 근데 클로드코드에서 프로젝트를 만들거나 커밋을 할때 스크린샷 처럼 bash 명령어로 statusline-command.sh 파일을 계속 읽어오면서 계속 에러메세지를 출력을 하는데 왜 매번 statusline-command.sh을 읽는지 모르겠습니다. 물론 클로드에서 오류를 만나면 다른 방법으로 시도를 계속 하면서 프로젝트를 정상적으로 생성은 하고 있습니다. 하지만 statusline-command.sh을 읽어들이는게 정상이라면 저처럼 powershell 명령어를 사용하는 사람은 .sh 파일이 아니라 .ps1 파일을 읽어오도록 세팅해서 오류를 피하고 싶은데 방법이 있는지 궁금합니다.
안녕하세요 강사님, mmdetection mask rcnn inference 실습 시 runpod 템플릿 관해서 질문드립니다. 어느덧, 강의 막바지입니다. 강사님의 깃허브 runpod referal 파일 안에서 mmdetection v2, ultralytics yolo v3, yolov5, efficientdet 네가지 중 mmdetection v2 템플릿을 deploy하는 것이 맞는지 확실하게 하고자 질문드립니다.
안녕하세요. 아나콘다 프롬프트에서 가상환경을 'mystudy' 라는 이름으로 설치하고, 파이썬을 3.9버전으로 다운 그레이드하고, 사이킷런을 1.0.2, lightgbm을 3.3.2 버전으로 강의처럼 다운 받았습니다. 그러나 사이킷런 버전을 확인하려고 하면 아래와 같은 오류가 발생합니다. --------------------------------------------------------------------------ValueError Traceback (most recent call last) Cell In[2], line 1----> 1 import sklearn 3 print(sklearn.__version__) File ~\anaconda3\envs\mystudy\lib\site-packages\sklearn\__init__.py:82 80 from . import distributor init # noqa: F401 81 from . import __check_build # noqa: F401---> 82 from .base import clone 83 from .utils._show_versions import show_versions 85 all = [ 86 "calibration", 87 "cluster", (...) 128 "show_versions", 129 ] File ~\anaconda3\envs\mystudy\lib\site-packages\sklearn\base.py:17 15 from . import version 16 from ._config import get_config---> 17 from .utils import IS 32BIT 18 from .utils._tags import ( 19 DEFAULT TAGS, 20 safe tags, 21 ) 22 from .utils.validation import check_X_y File ~\anaconda3\envs\mystudy\lib\site-packages\sklearn\utils\__init__.py:23 20 import numpy as np 21 from scipy.sparse import issparse---> 23 from .murmurhash import murmurhash3_32 24 from .class_weight import compute_class_weight, compute_sample_weight 25 from . import _joblib File sklearn\utils\murmurhash.pyx:1, in init sklearn.utils.murmurhash()ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject 넘파이 버전이 낮아서 발생하는 오류라고 하는데, 제가 방법을 찾아봐도 해결이 안되네요 이 부분은 어떻게 하면 될까요?