[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] return new T(); 가 안 되는 이유가 항상 new Object 가 되어버린다. 개발자가 의도한 것과는 다르다. 고 설명되어 있습니다. 만약 다음과 같이 create() 함수를 활용한다면, EraserBox<Dog> dogBox = new EraserBox(); Dog dog = dogBox.create(); 여기서 컴파일러가 캐스팅을 자동으로 추가해주면 되는 거 아닌가요?? EraserBox<Dog> dogBox = new EraserBox(); Dog dog = (Dog)dogBox.create(); 이렇게요. 개발자가 의도한 것과 다르다는 의미를 잘 모르겠습니다.
안녕하세요 큰돌님 강의를 즐겨보는 취준생입니다. 강의를 보며 궁금한 점들이 있어 질문 남깁니다. 간단하게 제 상황을 말하면 1년 정도 SI 업체 다니다가 현재는 군대에서 취준하고 있고 6월에 전역하면서 동시에 취업을 하는 것을 목표로 하고 있습니다. Q1: Readme 파일을 잘 꾸미는게 중요하다고 말씀주셨는데, 제가 했던 프로젝트들이 전부 회사에서 혼자 진행한 프로젝트들이여서 모두 private 인 상황입니다. 이럴 경우에는 Readme 파일에 꾸미기 보다는 노션에 따로 정리하는게 맞을까요?? Q2: QnA 글을 보니 큰돌님께서는 이력서와 포트폴리오를 같이 준비하라고 하신걸 봤습니다. 근데 토스채용 같이 이력서와 포트폴리오를 같이 제출해야되는 상황에서는 어떻게 해야될까요?
학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 무한스크롤을 공부하면서 쿼리플랜을 자세히 살펴보았습니다. rows라는게 예상 스캔 행 수 라고 찾게 되었는데요, offset을 사용하지않고 마지막 last_article_id로 limit 30개 해서 30개만 스캔하면 될줄 알았는데, 저는 6백만개가 나오고 강사님은 5522497개 (무한 스크롤 설계 - 6:31초)가 나오는걸 알게 되었어요. 이게 시간은 빠르긴한데 뭔가 스캔하는게 많아서 이상하다 싶었어요.. 그래서 인덱스를 지우고, (article_id desc, board_id)로 위치도 바꾸거나, use index로 인덱스를 강제하게 해봤는데 결과가 똑같더라구요.. 이 row를 줄이기 위한 방법이 있는지 궁금합니다. cladue에서는 최악의 경우의 row를 보여준다고 하면서도, 또다른 답변으로는 쿼리 수정으로 최적화해야한다 나뉘더라구요. 최악의 경우라 해도 왜 6백만개나 scan하는지.. 그냥 속도빠르니깐 넘어가도 상관없는지 의심이 들어서 더 찾아볼수있는 방법이나 조언 부탁드립니다. 감사합니다. 강의 거의 완강햇다가 한번 더 다시 듣고있습니다.
강의 모두 코드 똑같이 돌리고 db만 pinecone 을 사용하였습니다 ! 결과에 강의처럼 answer이 나오지 않는데 원인을 잘 모르겠습니다 ㅜ gpt 에 검색해보면 전체 코드를 꼼꼼히 검토해본 결과, 질문하신 "결과(answer)가 나오지 않는 이유" 는 크게 두 가지입니다. 하나는 데이터가 유실되는 방식의 반환(return) 때문이고, 다른 하나는 무한 루프(Infinite Loop) 가능성 때문입니다. 1. 가장 큰 원인: State 데이터 유실 LangGraph의 각 노드 함수( retrieve , generate , rewrite 등)는 AgentState 를 반환할 때, 기존의 데이터를 포함해서 돌려주어야 합니다. 현재 작성하신 코드를 보면: retrieve 함수: return {'context': docs} (이때 query 가 사라짐) generate 함수: return {'answer': response.content} (이때 query , context 가 모두 사라짐) 이렇게 나오는데 제가 봤을땐 이게 원인은 아닌것같습니다...!
스프링 버전 4.0.2 기준 aspectj 라이브러리 dependency 설정은 다음과 같습니다. (gradle 기준) implementation 'org.springframework.boot:spring-boot-starter-aspectj' 계속 boot-starter-aop 로 빌드 시도했다가 삽질하면서 20분 날렸네요..
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
ddl-auto: create로 설정되어 있어서 자동으로 테이블이 생성되게 되어 있다는 말은 이해가 되는데요. BOOK, USER, USER_LOAN_HISTORY의 테이블 컬럼명과 컬럼의 특성등은 따로 어디에 명시해둬야 참고를 해서라도 만들지 않나요? mysql에서 만들때는 저희가 직접 console창에서 직접 설정해서 create해줬는데, 해당 테이블 구조는 테이블이 생성될때 무엇을 참고해서 만들고 있는건지 문의 드립니다. 감사합니다.
from langchain_core.prompts import PromptTemplate from langchain_core.output_parsers import StrOutputParser dictionary = ['사람과 관련된 표현 -> 거주자'] rewrite_propmt = PromptTemplate.from_template(f"""사용자의 질문을 보고, 우리의 사전을 참고해서 사용자의 질문을 변경해주세요 사전:{dictionary} 질문: {{query}}""") def rewrite(state: AgentState)->AgentState: query = state['query'] rewrite_chain = rewrite_propmt | llm | StrOutputParser() response = rewrite_chain.invoke({'query': query}) return {'query' : response} # Create a LangSmith API in Settings > API Keys # Make sure API key env var is set: # import os; os.environ["LANGSMITH_API_KEY"] = "<your-api-key>" from langsmith import Client from typing import Literal client = Client() relevance_prompt = client.pull_prompt("langchain-ai/rag-document-relevance") def check_doc_relevance(state: AgentState)-> Literal['generateAnswer','rewrite']: query= state['query'] context= state['context'] relevance_chain = relevance_prompt | llm response = relevance_chain.invoke({'question':query, 'documents': context}) if response['Score'] ==1: return 'generateAnswer' return 'rewrite' graph_builer.add_node('retrieveDoc', retrieveDoc) graph_builer.add_node('generateAnswer', generateAnswer) graph_builer.add_node('rewrite', rewrite) from langgraph.graph import START, END graph_builer.add_edge(START,'retrieveDoc') graph_builer.add_conditional_edges('retrieveDoc', check_doc_relevance) graph_builer.add_edge('rewrite','retrieveDoc') graph_builer.add_edge('generateAnswer', END) graph =graph_builer.compile() from IPython.display import Image, display display(Image(graph.get_graph().draw_mermaid_png())) initial_State = {'query' : '연봉 5천만원 세금'} graph.invoke(initial_State) 강사님! 강의랑 똑같이 코드를 작성했는데도 'query: 연봉 5천만원 세금 ' 질문에 대한 답 score가 계속 1이 나와서 rewrite 노드로 이동하지 않습니다. 쿼리자체에 거주자나 사람을 나타내는 표현이 없는데도 문서에서 관련성을 키워드로 찾다보니 키워드가 있기만 해도 결과가 1이 나오네요ㅜㅜㅜ 강사님은 결과가 0이 나와 rewrite를 하고 제가 해볼때는 1이 나오는 이유가 무엇인지 모르겠습니다. {'query': '연봉 5천만원 세금', 'context': [Document(id='15f6746f-4e63-4775-a47e-c72298375620', metadata={'source': './tax_combined_final.txt'}, page_content='소득세법'), Document(id='a6c9015f-092f-4aa3-819b-e23588bb0a0f', metadata={'source': './tax_combined_final.txt'}, page_content='소득세법\n하는 자(제119조제9호에 따른 국내원천 부동산등양도소득을 지급하는 거주자 및 비거주자는 제외한다)는 제127조\n에도 불구하고 그 소득을 지급할 때에 다음 각 호의 금액을 그 비거주자의 국내원천소득에 대한 소득세로서 원천징\n수하여 그 원천징수한 날이 속하는 달의 다음 달 10일까지 대통령령으로 정하는 바에 따라 원천징수 관할 세무서,\n한국은행 또는 체신관서에 납부하여야 한다. <개정 2013. 1. 1., 2016. 12. 20., 2018. 12. 31., 2019. 12. 31., 2020. 12.\n29.>\n1. 제119조제1호에 따른 국내원천 이자소득: 다음 각 목의 구분에 따른 금액\n가. 국가·지방자치단체 및 내국법인이 발행하는 채권에서 발생하는 이자소득: 지급금액의 100분의 14\n나. 가목 외의 이자소득: 지급금액의 100분의 20\n2. 제119조제2호에 따른 국내원천 배당소득: 지급금액의 100분의 20\n3. 제119조제4호에 따른 국내원천 선박등임대소득 및 같은 조 제5호(조세조약에 따라 국내원천 사업소득으로 과세\n할 수 있는 소득은 제외한다)에 따른 국내원천 사업소득: 지급금액의 100분의 2\n4. 제119조제6호에 따른 국내원천 인적용역소득: 지급금액의 100분의 20. 다만, 국외에서 제공하는 인적용역 중대\n통령령으로 정하는 용역을 제공함으로써 발생하는 소득이 조세조약에 따라 국내에서 발생하는 것으로 보는 소득\n에 대해서는 그 지급금액의 100분의 3으로 한다.\n5. 제119조제9호에 따른 국내원천 부동산등양도소득: 지급금액의 100분의 10. 다만, 양도한 자산의 취득가액 및 양\n도비용이 확인되는 경우에는 그 지급금액의 100분의 10에 해당하는 금액과 그 자산의 양도차익의 100분의 20에\n해당하는 금액 중 적은 금액으로 한다.\n6. 제119조제10호에 따른 국내원천 사용료소득: 지급금액의 100분의 20\n7. 제119조제11호에 따른 국내원천 유가증권양도소득: 지급금액(제126조제6항에 해당하는 경우에는 같은 항의 정\n상가격을 말한다. 이하 이 호에서 같다)의 100분의 10. 다만, 제126조제1항제1호에 따라 해당 유가증권의 취득가\n액 및 양도비용이 확인되는 경우에는 그 지급금액의 100분의 10에 해당하는 금액과 같은 호에 따라 계산한 금액\n의 100분의 20에 해당하는 금액 중 적은 금액으로 한다.\n8. 제119조제12호에 따른 국내원천 기타소득: 다음 각 목의 구분에 따른 금액\n가. 제119조제12호카목의 소득: 지급금액의 100분의 15\n나. 제119조제12호타목의 소득: 다음의 구분에 따른 금액. 다만, 가상자산을 교환하거나 인출하는 경우에는 다음\n의 구분에 상당하는 금액으로서 가상자산 단위로 표시한 대통령령으로 정하는 금액으로 한다.\n1) 제126조제1항제3호에 따라 가상자산의 필요경비가 확인되는 경우: 지급금액의 100분의 10에 해당하는 금\n액과 같은 호에 따라 계산한 금액의 100분의 20에 해당하는 금액 중 적은 금액'), Document(id='5a211886-c6db-4fd5-9e77-a4375dd2ee6d', metadata={'source': './tax_combined_final.txt'}, page_content='5. 공적연금소득에 대해서는 기본세율\n5의2.제20조의3제1항제2호나목 및 다목에 따른 연금계좌 납입액이나 운용실적에 따라 증가된 금액을 연금수령한\n연금소득에 대해서는 다음 각 목의 구분에 따른 세율. 이 경우 각 목의 요건을 동시에 충족하는 때에는 낮은 세율\n을 적용한다.\n가. 연금소득자의 나이에 따른 다음의 세율\n|나이(연금수령일 현재)| 세율 |\n| ----------- | ----------- |\n| 70세 미만 | 100분의 5 |\n| 70세 이상 80세 미만 | 100분의 4 |\n| 80세 이상 | 100분의 3 |\n나. 삭제 <2014. 12. 23.>')], 'answer': AIMessage(content='연봉 5천만원에 대한 세금은 다양한 소득세 항목에 따라 달라질 수 있습니다. 일반적으로 소득세율은 소득금액에 따라 차등 적용되며, 기본 세율은 5%에서 시작합니다. 정확한 세금액을 계산하기 위해서는 총소득, 공제 항목 등을 고려해야 합니다.', additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 78, 'prompt_tokens': 1352, 'total_tokens': 1430, '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}}, 'model_provider': 'openai', 'model_name': 'gpt-4o-mini-2024-07-18', 'system_fingerprint': 'fp_3683ee3deb', 'id': 'chatcmpl-D2psPuRb1GQcktIDJfUhfjTjYL2CO', 'service_tier': 'default', 'finish_reason': 'stop', 'logprobs': None}, id='lc_run--019c027f-916f-7c82-9b4a-00ba35551ea7-0', tool_calls=[], invalid_tool_calls=[], usage_metadata={'input_tokens': 1352, 'output_tokens': 78, 'total_tokens': 1430, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}})} 도와주시면 감사하겠습니다.
안녕하세요. 항상 유익한 강의를 제공해 주셔서 감사드립니다. 입문 강의들을 제외한 모든 강의를 수강하며 많은 도움을 받고 있습니다. 다름이 아니라, 개인적으로 Kafka 관련 내용을 공부하던 중 KRaft 모드에 관한 내용이 공식 문서 및 여러 자료에서 업데이트되고 있는 것을 확인하게 되었습니다. KRaft는 Kafka의 아키텍처에서 중요한 변화를 가져온 만큼, 관련 내용을 강의나 추가 자료로 공유해 주신다면 수강생들에게 큰 도움이 될 것 같아 노티 드립니다. 항상 좋은 강의 제공해 주셔서 감사하며, 앞으로도 많은 배움을 기대하겠습니다.
안녕하세요! 수강자 쵸잉입니다 강의듣다가 질문사항이 생겨 남깁니다. ArticleViewCountRepository 에서 read 메서드 보면 현재 코드에서 조회수 조회를 할때 레디스에서만 가져오는데 이전 강의에서 레디스는 휘발메모리기 때문에 백업용 rdb 를 주기적으로 업데이트 시켰는데 그럼 레디스에서 값이 없을경우 백업용 rdb 도 한번 조회해봐야되지 않나 싶어서 질문드립니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] psvm 단축어가 강의와 다르게 나옵니다 어떻게 해야하나요? 인텔리제이 버전이 2025.2.5인데 그래서 다르게 나오는 건지 아니면 vendor를 Eclipse Temurin 21로 설정해서 다르게 나오는 건지 어떤 부분에서 문제인지 모르겠네요
안녕하세요! 기존에 설명해주신 Orchestration 예제의 다이어그램과 호출 순서가 실습 코드랑 다른 것 같아서 질문드립니다. 다이어그램 : 오케스트레이터가 모두 요청/응답 받는 구조. 오케스트레이터 -> 2번 호출/응답 -> 오케스트레이터가 다시 3번 호출/응답 실습코드 : 오케스트레이터가 2번 서비스를 호출하고 2번 서비스가 3번 서비스를 호출하는 형태 질문 1) 위 2개의 내용이 다른 이유가 있을까요? + 오케스트레이션 패턴은 오케스트레이터가 모든 서비스를 호출하고, 다른 서비스는 오케스트레이터에 답변만 해주는 구조이고, 이 때문에 오케스트레이터가 SPOF가 될 수 있다고 이해했는데, 제가 잘못 이해한걸까요? 질문 2) 지금 예제에서는 REST API를 쓰는지, kafka 이벤트는 쓰는 여부 말고는 오케스트레이션/코레오그래피 모두 서비스 1 -> 2 -> 3 호출 하는 시나리오와 보상 처리를 하는 방법이 크게 차이가 없는 것 같습니다 (DLQ외) 예제를 보니까 헷갈리게 되는 것 같은데 제가 어떻게 이해하면 좋을까요? 감사합니다!
안녕하세요, 폐쇄망에 챗봇을 구축하려 합니다. 하지만, GPU가 안 되는 환경입니다. 폐쇄망 환경에서 CPU 위주로 운용한다는 제약까지 고려했을 때, 강의에서 소개된 것처럼 LGAI-EXAONE/EXAONE-3.0-7.8B-Instruct를 생성 모델로 사용하고, intfloat/multilingual-e5-large-instruct를 임베딩 모델로 사용하는 조합이 한국어 중심 RAG 환경에서도 여전히 합리적인 선택이라고 보시는지 궁금합니다.
1. 현재 학습 진도 2-9부하테스트 2. 어려움을 겪는 부분 강의와 성능차이가 너무 많이나는데 이유가 궁금합니다. 3. 시도해보신 내용 해당 이미지는 제가 수행한 테스트인데, 로컬에서 진행한 동일 코드 인데도 성능차이가 너무 많이 나는데 뭐가 문제인걸까요? 추가적으로 성능개선코드를 적용전인 결과인점 참고부탁드립니다.