묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
멀티턴, MemorySaver,MessagesState 질문 입니다
안녕하세요 강의 보다가 헷갈리는 부분이 있어서 질문드립니다 질문1. 3.3 LangGraph에서 도구(tool) 활용 방법아래 agent 함수는 여러번 호출되는데 리턴하는 부분에서 새로운 배열을 만드는것 처럼 보이지만 add_messages에 의해 자동으로 누적되어 멀티턴 대화가 된다고 이해하면 맞을까요? def agent(state: MessagesState) -> MessagesState: """ 에이전트 함수는 주어진 상태에서 메시지를 가져와 LLM과 도구를 사용하여 응답 메시지를 생성합니다. Args: state (MessagesState): 메시지 상태를 포함하는 state. Returns: MessagesState: 응답 메시지를 포함하는 새로운 state. """ # 상태에서 메시지를 추출합니다. messages = state['messages'] # LLM과 도구를 사용하여 메시지를 처리하고 응답을 생성합니다. response = llm_with_tools.invoke(messages) # 응답 메시지를 새로운 상태로 반환합니다. return {'messages': [response]} 질문2. 3.5 Agent의 히스토리를 관리하는 방법MemorySaver()의 목적은 주피터 노트북 각 블록을 사용하는데 있어 그 전에 실행해서 얻은 message를 메모리에 저장후 다음 요청 (update_query)에 반영하기 위해 사용된게 맞을까요?
-
미해결LangGraph를 활용한 AI Agent 개발 (feat. MCP)
새로운 메시지에 summary 추적 질문드립니다.
from langchain_core.messages import SystemMessage def agent(state: AgentState) -> AgentState: """ 주어진 `state`에서 메시지를 가져와 LLM과 도구를 사용하여 응답 메시지를 생성합니다. Args: state (AgentState): 메시지 기록과 요약을 포함하는 state. Returns: MessagesState: 응답 메시지를 포함하는 새로운 state. """ # 메시지와 요약을 state에서 가져옵니다. messages = state['messages'] summary = state['summary'] # 요약이 비어있지 않으면, 요약을 메시지 앞에 추가합니다. if summary != '': messages = [SystemMessage(content=f'Here is the summary of the earlier conversation: {summary}')] + messages # LLM과 도구를 사용하여 메시지에 대한 응답을 생성합니다. response = llm_with_tools.invoke(messages) # 응답 메시지를 포함하는 새로운 state를 반환합니다. return {'messages': [response]}부분에summary = state['summary']agent시작하자마자 summary를 넣게되는데 해당 소스부분은 몇 번을 질문해도 처음에는 빈값이 들어가는게 맞나요?summary를 연속질문에 처음 시작 부터 적용하기 위해서는 아래처럼 session정보를 받아서 처리해야하는지 궁금합니다.from langchain_core.messages import HumanMessage query = '안녕' for chunk in graph.stream({'messages': [HumanMessage(query)], 'summary': graph.get_state(config).values['summary']}, config=config, stream_mode='values'): chunk['messages'][-1].pretty_print()
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@Transactional 어노테이션을 썻지만, h2 DB가 롤백이 되지 않습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]***문제해결****JDBCRepository 구현시이걸 안 붙혀넣고이렇게 써서 생긴 오류인 것 같습니다.. 다른 질문글에서 보고 알았습니다 하하..***************@Transactional 어노테이션을 썻지만, h2 DB에서 롤백이 되지 않습니다.롤백이 되지 않은 이유가 스프링 버전과 h2 버전이 바뀌어서 그런건가요?테이블을 초기화하고 스프링통합memberServiceTest 를 진행하니 회원가입한 정보가 테스트가 끝난 후 DB에 고스란히 남아있었습니다.#스프링 환경Java-> 17spring->3.4.3h2 : 2.3.232-> 서버모드 접근함(jdbc:h2:tcp://localhost/~/test)#알아본것h2에 서버모드로 접근하면, spring->네트워크->h2이렇게 접근이 되어서 외부에 있는 DB는 롤백을 안한다고 들었습니다.다른 곳에서도 접근해서 고칠 수 있기 때문에,,그래서 대신 메모리모드를 사용하라고 답변을 들었습니다.
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
server-side옵션에 대해 궁금합니다.
annotations: kubectl.kubernetes.io/last-applied-configuration 부분을 kubectl에서 내용을 업데이트해준다 .kubernetes에서 알아서 내용들을 업데이트 해준게 아니라. 클라이언트가 동시에 리소스에 수정하게 될때 충돌을 관리하는데 유리하다. 그래서 server-side옵션을 주면 서버가 주도해서 이 리소스에 대한 모든 내용을 수정관리 해주기 때문에 리소스에 대한 충돌이 일어나지 않는다. . 모든 리소스가 이렇게 server-side로 관리하면 kubernetes가 부담되기 때문에 클라이언트가 이런내용들은 알아서 계산해서 저장 할때 같이 반영한다.이렇게 말씀하셨는데요...저 annotation부분의 내용은 실제 아래 리소스 yaml내용을 반영을 했다 client가~~~ 이런의미인가요?근데 저렇게 annotation 바로 밑에 kubectl.kubernetes.io/last-applied-configuration 항목에 저 내용들이 들어간들 무슨 의미가 있는지 궁금해요..실제 필요한건..그밑에 name,namespace 나 spec 이하부분들이 중요한거 아닌가요?거기에 추가로 server-side로 하면 client다른 수정과 충돌을 피한다고 했는데실무에서 운영인데 함부로 누가 같은 리소스를 따로 공유도 없이 수정할려고 들까요? 그런 상황이 있을리 만무하지 않나싶어요...그래서 결론은 client에서 누군가 수정을 동일리소스에 할거 같아서 server-side옵션을 주는건 발생하기 희박할거 같단 생각이 들고.그리고 yaml안에 last-applied-configuration이라 내용의 쓰임이...단순이 그냥 정보성정도아닌가 여쭤봅니다. 저 값들로 뭔가 하지않을것 같아서요
-
해결됨Figma 디자인부터 퍼블리싱까지
오토레이아웃
오토레이아웃을 했더니이미지처럼 간격이 틀어집니다어떻게 해야되나요?ㅠㅠ
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의자료 부탁드립니다
dhkddkwjd3@naver.com
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
선생님 답변 부탁드려요 예시문제 작업형2 신버전에서 ID고유번호 수치형데이터로?
회원ID는 고유한 값인데도 수치형 데이터로 넣어서 예측을 해야하나요?
-
미해결쿠버네티스 어나더 클래스-Sprint4 (#Promethues #Grafana #Loki #OpenTelemetry)
containerd버전관련문의드려요
강사님이 언급하신 말씀중에리눅스버전을 설치를 하면서 연결되어 있는 레파지토리의 containerd 버전을 보면 이 버전이 최상위버전으로 레파지토리에 올라가 있다.이렇게 하셧는데...같은 rocky버전일텐데..yum --showduplicates list containerd.io또는dnf --showduplicates list containerd.io이 명령어로 확인하셨을가요?저는 해보면 32버전까지만 보여서요 containerd.io.x86_64 1.6.32-3.1.el8 docker-ce-stable
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
drop
customerID를 필요없을거라고 판단하는 이유는 뭔가요? 그리고 customerID를 drop 하지 않아도 값은 변화가 없나요 ?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
drop
customerID를 필요없을거라고 판단하는 이유는 뭔가요? 그리고 customerID를 drop 하지 않아도 값은 변화가 없나요 ?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2회 기출유형 작업형1)저는 표준편차 값이 다르게 나오네요
아직 중앙값으로 대체전인데 선생님이 구하신 표준편차랑 값이 다른데왜그런걸까요?
-
해결됨[2025 리뉴얼]플러터플로우로 코딩 없이 한달 안에 앱 만들기
이미지 업로드 버튼 클릭시
이미지를 실제 올려보려고 하는데,업로드 버튼을 클릭하면 로딩 화면에서 더 이상 변화가 없습니다.테스트, run 모드 다 마찬가지인데요.뭔가 더 설정을 해줘야 하나요?
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
쿠버네티스에 만든 앱 그라파나에서 확인
[👍좋은 질문을 했을 때 좋은 답변이 돌아 옵니다] 영상대로 쿠버네티스에서 파드 생성해서 그라파나로 확인하려고 하여 파드 생성 후 그라파나에서 데이터가 안물려 여기저기 찾다 restart chronyd 로 해결하고 그래프가 올라오는걸 확인했습니다 그 후 explore에 가서 로키로 로그를 보려고 하는데 제가 만든 앱이 없는데 이경우엔 어떻게 해결할까요?
-
해결됨개발자를 위한 쉬운 도커
강의 재생 오류
다른강의들은 다 잘 재생이 되는데 50.도커볼륨 강의만 중간에 로딩 spinner가 뜨면서 재생에 문제가 생겼어요 alert 창과 함께 영상이 재생되지 않습니다. 이럴 경우는 어떻게 해야할까요?
-
해결됨실무 환경 그대로 주문게시판 만들기 웹개발 기초 마스터
마지막 주문 등록 후, 오류가 발생합니다!
주문 등록 내용을 작성하고 이후 등록 버튼을 클릭하면 서버쪽에서의 로직은 잘 동작하는 듯하지만, DB에 저장되는 값을 못가져오는지 넥사크로 화면에서는 오류가 다음과 같이 발생합니다. 테스트로 로그 값들을 추가한 것은 무시해주세요Nexacro (20908)> UD 13:20:51:906 gfnCallback : SvcID>>selectCommonCode, errorCode>>0, errorMsg>>SUCCESS, isAsync>>true, sStartDate>>2025-04-23 13:20:51 814, sEndDate>>2025-04-23 13:20:51 906, nElapseTime>>0.092Nexacro (20908)> UD 13:20:51:911 고객구분 콤보박스 세팅 완료Nexacro (20908)> UD 13:20:51:918 gfnCallback : SvcID>>selectItemList, errorCode>>0, errorMsg>>SUCCESS, isAsync>>true, sStartDate>>2025-04-23 13:20:51 835, sEndDate>>2025-04-23 13:20:51 918, nElapseTime>>0.083Nexacro (20908)> UD 13:20:51:935 주문상품 콤보박스 세팅 완료Nexacro (20908)> UD 13:20:57:199 123Nexacro (20908)> UD 13:20:57:207 123Nexacro (20908)> UD 13:20:57:214 123Nexacro (20908)> UD 13:20:57:235 123Nexacro (20908)> UD 13:20:57:240 PNexacro (20908)> UD 13:20:57:245 A0002Nexacro (20908)> UD 13:20:57:271 this is goodNexacro (20908)> SD 13:20:57:347 file://C:/eclipse/eclipse-workspace/orderBoard/src/main/webapp/packageN/nexacrolib/component/CompBase.js(12):Uncaught TypeError: Cannot read property 'length' of undefinedif(nexacro._Browser!="Runtime"&&!nexacro.Element){"use strict";var process=true;if(nexacro.Browser=="IE"&&nexacro._BrowserVersion<=8){nexacro.__createCanvasElementHandle=function(_a,_b,_c,_d,_e,_f){어떤 문제가 발생한걸까요??
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
스레드 실행 순서
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]public class ManyThreadMainV2 { public static void main(String[] args) { log("main() start"); HelloRunnable runnable = new HelloRunnable(); for(int i=0; i<100; i++){ Thread thread = new Thread(runnable); thread.start(); } log("main() end"); } }안녕하세요, 여러 스레드 만들기에서 반복문을 사용하여 스레드를 생성하면 콘솔에 스레드의 실행 순서가 보장되며 출력이 됩니다. 사진처럼 몇 번을 다시 수행해도 Thread0, 1, 2 ... 98, 99로 강의와 다르게 순서가 항상 일정하게 출력되는데 혹시 무엇이 문제인지 알 수 있을까요 ?
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
전체 고양이 조회 라우터 중 error.message 오류
app.get("/cats", (req, res) => { try { const cats = Cat; res.status(200).send({ success: true, data: { cats, }, }); } catch (error) { res.status(400).send({ success: false, error: error instanceof Error ? error.message : String(error) }); } });강의에서는 단순히catch (error) { res.status(400).send({ success: false, error: error.message }); }이렇게 나오는데, 저는 이렇게 적으면 error의 타입이 'unknown'이라는 오류 메시지가 뜹니다.상단에 있는 코드처럼 적어야 오류가 해결됩니다. 강의에서는 왜 오류가 나지 않을까요?
-
해결됨[2025 리뉴얼]플러터플로우로 코딩 없이 한달 안에 앱 만들기
Stack 안에 Container를 절반만 채우고 싶습니다.
[2025 리뉴얼] Container, Stack으로 프로필 페이지 만들기 여기에서 Column 안에 Stack 넣고 꽉차게 flex 옵션 선택한 상태에서container, circle을 추가했습니다.궁금한것이 있는데 파란색 container를 컬럼의 딱 절반만 채우고 싶어서 height를 50% 지정했습니다.그런데 아무리 봐도 50% 이상 대략 60 ~ 70% 정도 인거 같습니다. circle은 화면 정 가운데 배치를 했구요.원래 그런건지요? 딱 절반은 못채우는 걸까요?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
동시세션제어 기능에서 로그아웃하기
안녕하세요"인가 설정 실시간 반영하기" 코드에서 동시 세션 제어 기능을 추가할려고 합니다.http.sessionManagement(session -> session .maximumSessions(1) .maxSessionsPreventsLogin(true) )위 코드를 추가한 후 REST 방식으로 로그인후 로그아웃을 하면 SessionRegistry의 principals 객체에 있는 정보가 삭제되지 않아 다시 로그인을 시도하면 인증오류가 발생합니다.로그아웃을 할 경우 SessionRegistry.removeSessionInformation(sessionId)가 호출되어 principals 정보가 삭제되어야 할 것 같은데 제가 잘못 이해하고 있는 지 궁금합니다.
-
미해결ITSM(IT 서비스 관리)을 위한 ITIL 4 Foundation 이해하기
54장을 다 봐도 3.26초에서 다시 이어보기가 계속나오네요
54장을 다 봤는데도 수업 완료가 안됩니다.확인 부탁드립니다.