- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. https://cafe.naver.com/f-e/cafes/31023030/menus/15?t=1751377938438 해당 주소로 접속했을 때, 강의와 다르게, iframe이 확인 안되는데요... 네이버 카페 html 구조가 바뀐걸까요... 특정 게시글 하나를 클릭해서 로드 되면, iframe ID는 보여요. 5개씩 버튼을 먼저클릭하고, 50개씩 버튼을 클릭하는 방법으로 해야될까요? driver.find_element(By.CSS_SELECTOR, "#menuLink15").click() # 50개씩 클릭 driver.find_element(By.CSS_SELECTOR, ".option_list > li:nth-of-type(7) button").click()
안녕하세요 강의 잘 듣고 있습니다. fetch-book.ts를 만든 후, index.tsx에 불러와서 console.log(allBooks) 를 찍어봐도 빈 배열만 나와서 localhost:12345/book 이 api 주소로 들어가보면 해당 오류가 떠서 혹시 .env 파일이 잘못 됐나 해서 올바르게 수정을 해도 계속 같은 에러가 떠서 진행을 못 하고 있는 상태입니다 ㅠ
int p = &n; 이면 변수 n의 주소를 p의 값에 넣는 것이라서 p는 주소값이 되고 *p는 p가 가리키고 있는 주소의 값 즉 n의 값이 되는데 int array[] = {10,20,30,40,50}; int *ptr = array;인 상황에서 *ptr은 배열의 첫번째 값을 가리키는 것이면 ptr은 무엇을 갖는 건가요? array의 첫번째 값의 주소를 갖게되나요?
Recoil 지원 중단 문제로 강의에 나온 Recoil 관련 내용을 Jotai 라이브러리로 대체했습니다. 여러 수강생 분들이 같은 문제를 겪는 듯해서 제가 사용한 코드를 공유합니다. recoil 제거 & jotai 설치 npm uninstall recoil npm install jotai atom.js 변환 코드 : jotai 의 atom 에선 key 값이 없습니다. import {atom} from "jotai"; const testState = atom(['a', 'b', 'c', 'd']); export default testState; testWithComma.js : 마찬가지로 키 값이 없으며, 좀 더 단순하게 사용 가능합니다. import {atom} from "jotai"; import testState from "./atom.js"; const testWithComma = atom((get) => { const abcdArr = get(testState) return abcdArr.join(','); }) export default testWithComma; CompletionPage.jsx : useRecoilValue -> useAtomValue 로 변경하시면 됩니다. const testValue = useAtomValue(testWithComma); Jotai 와 Zustand 중 고민하다가 Jotai가 Recoil과 더 유사하다고 하여 우선 Jotai로 학습 진행했습니다. 강의 수강에 참고가 되길 바랍니다.
실습 - Vision API 활용 방법 이해에서 아래와 같은 코드를 실행하게 되면 url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg" response = client.chat.completions.create( model=Model, messages=[ { "role": "user", "content": [ {"type": "text", "text": "이 이미지의 내용을 설명해줘. 한국어로 설명해줘."}, {"type": "image_url", "image_url": {"url": url}}, ] } ], max_tokens=300, ) response.to_dict() 결과가 아래와 같이 나오는데 {'id': 'chatcmpl-BnxBjLVQUG5mlJJA9i9YhADGfCe2u', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '이미지는 푸른 풀밭과 하늘이 넓게 펼쳐진 풍경을 보여주고 있습니다. 중앙에는 나무 판자로 된 산책로가 놓여 있어 풀밭을 따라 걷는 길처럼 보입니다. 하늘은 맑고 파란색으로 구름이 흩어져 있으며, 주변에는 나무와 덤불이 자생하고 있습니다. 전체적으로 자연의 평화롭고 고요한 분위기를 느낄 수 있는 장면입니다.', 'refusal': None, 'role': 'assistant', 'annotations': []}}], 'created': 1751245291, 'model': 'gpt-4o-mini-2024-07-18', 'object': 'chat.completion', 'service_tier': 'default', 'system_fingerprint': 'fp_62a23a81ef', 'usage': {'completion_tokens': 108, 'prompt_tokens': 36857, 'total_tokens': 36965, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}} max_tokens으로 준 인자값은 completion_token 의 상한 limit를 정하는건가요? prompt_tokens 의 값이 강의의 내용과 비교해서 너무 큰거 같아서 질문을 드리는 겁니다.
int arr[] = {10, 20, 30,40,50}; int *p = arr; printf("%d", *p++); printf("%d", (*p)++); printf("%d", ++(*p)); printf("%d", *++p); printf("%d", ++*p); 다음과같이 포인터가 존재한다면 어떻게 출력이 되는지와 그 이유를 알 수 있을까요?
기초부터 배우는 Next YTMusic 클론 코딩 (with next.js 14, UI 마스터)
강의에서 레이아웃을 담당하는 Sidebar, Header 컴포넌트를 만들때 Props으로 children을 받고 렌더링 하는 방식으로 만들었는데 이렇게 만든 이유가 있을까요? 지금까지 진행한걸 계층별로 생각해보면 최상위 Root->Sidebar->Header->... 등 형제 노드는 없고 자식 노드 형태로 계속 깊어지는구조. ------------ 아래의 방법과 비교해서 궁금합니다. 아래 코드와 동일하지 않더라도,Sidebar, Header 컴포넌트가 children과 분리된 구조. <body> <Sidebar/> <div> <Header/> <main>{children}</main> </div> </body>
리코일 에러 나시는분들 보세요 최근에 강의 시작하셨으면 리액트가 19로 설치되셨을탠데 리코일이 리액트 18까지만 지원하고있습니다. 원활하게 나머지 진행하시기위해서 npm install react@18 react-dom@18 --save 으로 react18로 버전 낮춰주시면 나머지 진행 가능하십니다.
만약 회사에서 Next.js로 프로젝트를 진행하고 있다고 가정할 때, storybook은 Next.js 프로젝트 내에서 세팅하는 것보다 아예 다른 프로젝트 디렉토리로 만드는 게 나을 것 같다는 생각이 드는데, 어떻게 생각하시나요?! 왜냐하면 특정 디렉토리 내에서 세팅할 경우 해당 프로젝트에서 기존 서비스와 Storybook 프로젝트가 혼재하여 복잡도를 높이고, (이건 추측이지만) storybook 배포 시 특정 디렉토리를 제외해야 할 것 같다고 생각합니다. 그리고 다른 프로젝트 생성 시 또 다시 storybook을 설치하는 것은 비효율적일 것 같습니다. 그래서 아예 다른 프로젝트 디렉토리에서 리액트로 storybook 을 세팅하고 npm 패키지로 업로드 후 install 하여 사용한다고 생각했는데, 제가 생각한 게 맞을까요?