강의 앞부분에서는 JAVA에서는 print 뒤에 ln을 붙여서 개행한다고 설명해 주셨습니다. 그런데 뒷부분 예제에 Systenm.out.print("Character:"+ch+"\n"); 이런 명령문구가 있는데 정답 해설하실 때도 \n에 대해서는 설명 안해주시네요. 작성해 주신 출력 결과를 보면 Character:A가 출력되고 개행이 되는 것 같은데, JAVA에서 +"\n"으로도 개행을 할 수 있는건가요?
강의를 보다보니 궁금한 점이 있어 질문 남깁니다. 첫번째로 궁금한 점은 AbstractPagingItemReader의 코드를 doRead 함수 안에서 lock을 잡고 있으며, doReadPage가 끝난 후 lock을 푸는 것을 확인할 수 있었습니다.. doReadPage에 실제로 paging 로직이 존재하니 사실상 paging 로직은 직렬로 수행되는 것과 다를 바 없을 것이며, 성능적으로 크게 증가하지 않을 것 같다는 생각이 드는데요.. (거의 직렬 처리와 유사할 것 같다는 생각이 드네요..) 사실상 병렬 처리라해도 Reader쪽에서 성능 향상이 거의 없다고 보면 될까요? 두번째로 궁금한 점은 AbstractPagingItemReader 상위 클래스인 AbstractItemCountingItemStreamItemReader의 read 함수를 보니 멤버 변수인 currentItemCount를 증가시키는 로직이 존재하더라구요.. 이 부분도 병렬처리에 문제가 될 것 같다는 생각이 들고 해당 클래스의 주석에도 "Subclasses are inherently <b>not</b> thread-safe." 라고 적혀있는 것으로 봐서는 문제가 존재하는 것 같은데요.. 그럼에도 불구하고 기능상 영향이 없으니 하위 클래스인 AbstractPagingItemReader는 thread-safe하다고 나와있는 것이라고 생각하면될까요??
한 번에 끝내는 AI 에이전트 개발 올인원 (w. LangGraph, Google ADK, CrewAI)
uv sync 후 uv run main.py 실행 시 Traceback (most recent call last): File "/Users/kade/kade/ai-agent-playground/5_english_tutor/main.py", line 9, in <module> from tutor_crew import EnglishTutorCrew, add_to_conversation File "/Users/kade/kade/ai-agent-playground/5_english_tutor/tutor_crew.py", line 5, in <module> from tools import rag_tool File "/Users/kade/kade/ai-agent-playground/5_english_tutor/tools.py", line 22, in <module> from langchain.text_splitter import RecursiveCharacterTextSplitter ModuleNotFoundError: No module named 'langchain' 과 같이 text splitter에서 lanchain import 에러 발생합니다. 마찬가지로 RetrievalQA도 동일한 에러 발생합니다. 공식 문서를 찾아보면 두 메서드(클래스)는 deprecated 되었습니다. pyproject.toml의 의존성이 >= {version} 을 사용하다 보니 최신 버전이 패치되면서 더 이상 호환되지 않는 것 같습니다. 버전을 고정하거나 강의를 수정해야 할 것 같습니다.
안녕하세요. 주말과 평일 저녁 시간을 활용해 강의를 듣고 있는 직장인입니다. 현재 강의를 들으며 열심히 학습 중입니다만, 강의 수강 기간이 11월 13일에 종료되어 시험일인 11월 29일까지는 다소 시간이 부족할 것 같아 문의드립니다. 혹시 강의 수강 기간을 시험일인 11월 29일까지 연장해주실 수 있을까요? 메일주소 gusdk1541@hanmail.net 입니다. 확인 부탁드리며, 도움 주시면 감사하겠습니다. 감사합니다.
포인터 조작과 출제 패턴 (2. 포인터 증가/감소, 이중 포인터) 9:35 printf("%c\n", *(ptr_a+1)); 여기서 ptr은 str[] 배열이기 때문에 H값이 온다는 것은 이해를 했는데 printf할 때 배열 단위로 오면 printf("%c\n", *(ptr_a+1)) 오는 것 같고 배열에서 특정 위치를 표현하는 printf("%c\n", ptr_a[1])가 오는 것 같은데 같은 배열을 이용하는 건데 * 사용 대해서 차이가 위 설명이 맞을까요?