LangGraph 메모리 상태 관리
- LangGraph에서 메모리 상태 관리는 그래프가 실행되는 동안 생긴 대화, 중간 결과, 실행 위치, 장기 지식을 어떻게 저장하고 다시 꺼내 쓸지 정하는 설계다.
- 강의자료 기준 핵심은 LangGraph Checkpointer와 LangGraph Store를 구분하는 것이다.
- 둘 다 "기억"처럼 보이지만, 저장 목적과 사용 범위가 다르다.
큰 그림
Mermaid스크롤로 확대 · 드래그로 이동
Memory란 무엇인가
- Memory는 LLM이 이전 대화나 저장된 정보를 참고할 수 있게 만드는 기법이다.
- LLM 자체는 기본적으로 stateless다.
- stateless라는 말은 LLM이 이전 실행을 자동으로 기억하지 않는다는 뜻이다.
- 그래서 LangGraph에서는 기억을 크게 두 곳에 맡긴다.
- 하나는 같은 대화를 이어가기 위한 LangGraph Checkpointer다.
- 다른 하나는 대화를 넘어 재사용할 지식을 저장하는 LangGraph Store다.
Checkpointer
- Checkpointer는 그래프의 실행 상태를 매 단계마다 저장하는 장치다.
- 같은 대화, 즉 같은 LangGraph thread_id를 이어갈 수 있게 해준다.
- 예를 들어 사용자가 한 번 질문하고, 다음 질문에서 이전 대화를 이어가려면 checkpointer가 필요하다.
- Checkpointer가 저장하는 것은 "장기 지식"이라기보다 "그래프가 어디까지 실행됐는가"에 가깝다.
- 그래서 LangGraph interrupt로 멈췄다가 다시 실행하는 Human-in-the-loop에서도 checkpointer가 중요하다.
Mermaid스크롤로 확대 · 드래그로 이동
InMemorySaver
- LangGraph InMemorySaver는 checkpointer의 한 종류다.
- 이름 그대로 메모리(RAM)에 실행 상태를 저장한다.
- 세션별로 대화 메모리를 관리할 수 있다.
- 서로 다른
thread_id는 기억을 공유하지 않는다.
- 메모리 상에 저장되기 때문에 코드 실행 상태가 내려가면 저장된 내용도 함께 휘발된다.
- 그래서 실습에는 좋지만, 운영 환경의 영구 저장 용도로는 부족하다.
SqliteSaver
- LangGraph SqliteSaver는 checkpointer의 한 종류다.
- 그래프의 상태(state)를 SQLite 데이터베이스 파일에 저장한다.
- InMemorySaver와 똑같이 LangGraph thread_id를 기준으로 세션별 기억을 관리한다.
- 차이는 런타임이 죽거나 세션이 끝나도 SQLite 파일이 남아 있으면 기억이 유지된다는 점이다.
- 저장 형식은 사람이 읽는 텍스트가 아니라 msgpack 같은 바이너리 직렬화 데이터다.
- 그래서 DB 파일을 열어도 일반 대화록처럼 읽기 쉽지는 않다.
Store
- Store는 대화 thread를 넘어 재사용할 지식을 저장하는 장치다.
- Checkpointer가 "같은 대화 이어가기"라면 Store는 "다른 대화에서도 기억하기"다.
- Store는 보통 LangGraph namespace를 이용해 기억을 분류한다.
- 예를 들어 사용자별 기억, 프로젝트별 기억, 도메인별 기억을 namespace로 나눌 수 있다.
- Store에 들어가는 것은 실행 위치가 아니라 재사용 가능한 정보다.
- 예를 들면 사용자 선호, 프로젝트 규칙, 과거 작업 요약 같은 것들이다.
InMemoryStore
- LangGraph InMemoryStore는 Store의 한 구현체다.
- 기억을 메모리(RAM)에 저장한다.
- 대화 세션을 넘어 유지할 지식을 누적하는 개념을 실습하기 좋다.
- 다만 RAM 기반이므로 프로세스가 종료되면 저장된 장기 기억도 사라질 수 있다.
- 운영에서는 보통 PostgreSQL, MySQL, Redis, Vector DB 같은 외부 저장소를 함께 고려한다.
Mermaid스크롤로 확대 · 드래그로 이동
Checkpointer vs Store
- Checkpointer는 같은
thread_id 안에서 대화를 이어가게 해준다.
- Store는
thread_id가 달라져도 다시 꺼내 쓸 수 있는 지식을 저장한다.
- Checkpointer는 "지금 그래프가 어디까지 왔는가"를 기억한다.
- Store는 "앞으로도 참고할 지식이 무엇인가"를 기억한다.
실습에서 보는 기준
저장소 선택 기준
한 줄 요약
관련