API 스펙이 변경되었네요! 제보 감사합니다. https://github.com/milooy/cat-jjal-maker/blob/main/answers/29-useEffect.html#L48 위 코드를 참고해서 fetchCat 함수를 변경해주세요. 위 답변해주신대로 소스를 변경해도 고양이 이미지가 엑박으로 뜨질 않습니다.
안녕하세요. 큰돌님 유튜브도 보고있고 최근 개발 소식도 자주 접하고 있습니다. 최근에는 새로 내신 강의도 구매하여 수강을 하였습니다. 여기서 질문이 있습니다. 강의에서 "배포가 되어있는게 좋다"는 말이 있습니다. 포트폴리오나 사이드 프로젝트를 할 때 "배포의 중요성"이 중요한지 아니면 대체를 할 수 있는지 생각을 듣고 습니다. 요즘은 많은 오픈소스를 사용하는 것으로 알고있습니다. 그중에는 kafka, elasticsearch, redis 더 나아가 debezium, flink같은 것도 많습니다. 물론 이러한 것들은 대규모 트래픽이 발생하거나 많은 정보가 있을 때 사용하면 좋은 효율을 내고 있습니다. 보통 사이드 프로젝트 더 나아가서는 스타트업이나 중소기업까지도 트래픽이 적다면 구지 사용을 하지 않고 유지를해도 문제가 없을 수 있는 인프라 구조도 될 수 있다고 생각합니다. 하지만 기업들은 이러한 것을 요구합니다. 여기서 질문이 이런 인프라들은 배포를 할려면 비용이 상당히 많이 발생하고 유지가 힘든것으로 알고있습니다. 강의에서 말씀하신 인스턴스 최소 두대 또한 계속 유지하기에는 비용이 계속 누적이 될거라고 생각합니다. 물론 배포를 해놓고 그걸 보여주면 아주 best이고 현재의 상태를 잘 보여주고 느낄 수 있다고 생각합니다. 그런데 배포라는게 중요한것인지 의문이 들어 질문드렸습니다. 경력직에서 이직을 할때도 경력서에 쓰는 프로젝트 대부분이 배포는 현재 되있지만 실제적으로 그런 부분을 신경을 쓰지 않는 것(못하는것)으로 알고있어요. 그리고 회사에서도 막상 큰 회사일 수록 많은 트래픽을 받고있지만 인프라가 좋아 그거에 대해서 체감을 못하고 올바르지 않은 방향으로 나갈 수 있고 효율적인거보다 기능구현이 우선순위로 높게 배정됬을 수 도 있을 것 같아요. 반대로 큰 회사나 적은 회사든 어드민 부서는 존재하고 어드민 부서는 코어 부서보다 적은 트래픽을 받는 것 으로 알고있습니다. 그러면 이 때는 어떻게 어필을 하면 좋을 지 고민입니다. 이거에 대한 큰돌님의 생각을 의견을 듣고싶어 질문을 올렸습니다. 감사합니다.
안녕하세요 좋은 강의 재밌게 잘 시청하고 있습니다 V8에서 undefined, null 그리고 string을 어떻게 관리할까? 강의를 보다가 V8 문서를 찾아보게 되었습니다 영어로 된 문서를 번역을 해서 질문하는 글 이기에 번역이 어색하거나 틀릴 수 있으며, 전체 내용을 담지는 않았습니다! 강의 4분 26초에 LOAD_ROOT 함수 부분을 설명하시면서 힙 상수를 찾고 있다고 설명해주셨습니다 그 후 다음 단계에서 캐시를 하고 힙 상수를 찾고, 만약 해당 위치가 존재한다면 해당 위치를 반환하고, 그 위치가 없다면 새로운 힙 상수를 생성하고 캐싱을 한다고 해주셨습니다 그래서 실제로 저희가 자바스크립트에서 undefined를 사용할 때마다 캐싱해두었던 그 값을 찾기 때문에 해당 위치에 접근하여 사용할 수 있다 라고 이해를 했습니다 여기서 추가적으로 궁금했던것이 V8 문서를 보면, undefined , true 등 자바스크립트의 핵심 객체들은 반드시 먼저 존재해야 하고, read-only heap에 존재한다고 합니다 V8은 이들을 immovable immutable roots 라고 부른다고 합니다 정의되지 않은 객체의 주소를 참조하기 위해 찾아볼 필요 없이, 포인터가 0x61 이런식으로 끝나는지만 확인한다면, 정의가 되었는지, 되지 않았는지 알 수 있다면 좋을 것 같다 이것이 V8의 static root 를 달성하는 것이다 라고 설명되어 있습니다 지속적으로 사용되는 것들이기에 빠른 접근이 필수적이며, V8은 컴파일 시점에 이들을 생성한다고 나와있습니다 읽기 전용 힙을 모든 포인터 compression cage의 시작 부분에 배치하여 알려진 위치를 제공하며, 예를 들어 V8의 힙에 있는 모든 객체 중에서 undefined는 항상 가장 작은 압축 주소를 가지며, 0x61 바이트에서 시작한다고 합니다 V8을 컴파일 하기 위해서는 먼저 mksnapshot 이라는 V8 바이너리를 컴파일을 진행을 하고, 결과물로는 read-only heap 내의 모든 객체의 cage base 주소를 포함한다고 합니다 두 번째 단계로 libv8을 다시 컴파일하여, 플래그를 통해서 undefined를 참조할 때마다 문자 그대로 cage_base + StaticRoot::kUndefined 을 사용하도록 보장한다고 나와있습니다 d8이 실행되면 모든 read-only 객체는 메모리에서 고정된 위치를 가지며, 절대 이동하지 않는다고 합니다 이를 통해 d8 바이너리에서 undefined의 압축 주소가 0x61로 하드코딩되도록 만든다고 합니다 이 글을 읽으면서 들었던 생각은 위 과정을 통해 "undefined 같은 기본 객체들의 cage base로부터의 오프셋이 컴파일 시점에 결정 되어 있어서, 런타임에 배열에서 찾아볼 필요 없이 cage_base + 0x61 같은 계산식으로 바로 접근 할 수 있다" 라고 이해를 했습니다 여기서 컴파일 시점에 결정된 주소 라는 것이 4분 26초부터 말씀해주신 캐시 과정이 포함되는 것이 맞을까요? 아니면 강의 내용과는 상관이 없는 내용일까요? 참고한 글 링크는 아래에 걸어두겠습니다! https://v8.dev/blog/static-roots
안녕하세요 강사님. 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...
한 번에 끝내는 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 파일을 다 삭제고 코드도 모두 수정했는데 여전히 이 파일을찾으면서 에러가 띄네요. 어떻게 하면 될까요?
안녕하세요 빅분기 실기 강의 수강생입니다. 다름이 아니라, 제가 이번 실기 시험을 응시했지만 떨어질 것 같아서 미처 다 듣지 못한 나머지 강의들을 마저 수강하고자 하는데 혹시 2주 정도 강의 연장이 가능할 지 문의드립니다. 제 메일 주소는 ytb.nayun@gmail.com 입니다. (연장제도가 있는지 몰라서 기간 만료일에 촉박하게 문의드리는 점 양해부탁드립니다. ㅠㅠ)
실행을 해도 Request History에 뜨지 않길래 여러 번 실행하고 나서야 queue_position을 뒤늦게 확인했더니 4천번대였네요. 큐 대기중에는 히스토리에도 뜨지 않나 봅니다. 한 15~20분 기다리니까 생성 되었고, Request에 뜨지도 않고 그때까지 요금도 차감 안 되길래 오류인가 싶어 몇 번 더 눌렀는데 시간 지나고 나니 와다다다 걸려있었다는... 현재 대기 순번을 고려해서 waitTime을 더 길게 하시던가, 방어 로직을 추가로 넣던가 해야될 것 같아요
[VOD] 6주 완성! 개발 실무를 위한 고농축 바이브코딩 (Cursor AI, Figma)
좋은 강의 해주셔서 너무 감사드립니다. 바이브 코딩 과정 너무 신기하고 재밌는데, 다만 컴포넌트 생성, provider, 스토리북 등 잘 만들어지긴 하던데 중간에 잘 만들어진건지 확인하는 과정이 없다보니 문제 생겼을때 어디서부터 어디까지 잘못 되었는지 잘 모르겠더라구요. 중간과정 확인 방법이 궁금합니다. 현재는 스토리북에서 버튼 스토리 생성했는데, 완성은 했는데 컴포넌트가 안보이고 빈 페이지로만 나옵니다. 기능은 스토리에 보입니다. page.tsx에서 컴포넌트 불러서 보면 잘 보이구요.