# [[μƒνƒœ 관리 (State Management)]] ## πŸ“Œ Brief Summary μ—μ΄μ „νŠΈ ν•˜λ„€μŠ€μ—μ„œ μƒνƒœ 관리(State Management)λŠ” 기본적으둜 λ¬΄μƒνƒœ(Stateless)인 λŒ€κ·œλͺ¨ μ–Έμ–΄ λͺ¨λΈ(LLM)이 닀쀑 μ„Έμ…˜ 및 μž₯κΈ° μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆλ„λ‘ λ§₯락과 μž‘μ—… μ§„ν–‰ 상황을 λ³΄μ‘΄ν•˜λŠ” 핡심 인프라 κΈ°λŠ₯이닀 [1-3]. μ΄λŠ” λͺ¨λΈμ΄ 이전 μ„Έμ…˜μ˜ 기얡을 μžƒμ§€ μ•Šκ³  μž‘μ—…μ„ μž¬κ°œν•  수 μžˆλ„λ‘ μ„Έμ…˜ μƒνƒœλ₯Ό λ””μŠ€ν¬λ‚˜ 파일 μ‹œμŠ€ν…œμ— 기둝(Session Persistence)ν•˜λŠ” 것을 ν¬ν•¨ν•œλ‹€ [4-6]. μƒνƒœ 관리λ₯Ό 톡해 μ—μ΄μ „νŠΈλŠ” 도ꡬ μ‹€ν–‰ κ²°κ³Ό, ν•˜μœ„ μž‘μ—… μ™„λ£Œ μ—¬λΆ€, μ§„ν–‰ λ…ΈνŠΈ 등을 영ꡬ적으둜 μΆ”μ ν•˜λ©°, μ‹œμŠ€ν…œ 좩돌이 λ°œμƒν•΄λ„ μ²˜μŒλΆ€ν„° λ‹€μ‹œ μ‹œμž‘ν•˜μ§€ μ•Šκ³  이전 μƒνƒœλ₯Ό 볡ꡬ할 수 μžˆλ‹€ [2, 4, 7]. ## πŸ“– Core Content * **μƒνƒœ λΉ„μ €μž₯μ„±(Statelessness) 극볡:** LLM은 본질적으둜 λ¬΄μƒνƒœμ΄λ―€λ‘œ ν•˜λ„€μŠ€κ°€ κ°œμž…ν•˜μ§€ μ•ŠμœΌλ©΄ μ—μ΄μ „νŠΈλŠ” λ§€ μ„Έμ…˜λ§ˆλ‹€ 이전 μž‘μ—…μ˜ 지식 없이 λ°±μ§€μƒνƒœμ—μ„œ μ‹œμž‘ν•˜κ²Œ λœλ‹€ [1-3]. μ—μ΄μ „νŠΈ ν•˜λ„€μŠ€λŠ” μ΄λŸ¬ν•œ λͺ¨λΈμ˜ ν•œκ³„λ₯Ό κ·Ήλ³΅ν•˜κΈ° μœ„ν•΄ λ©”λͺ¨λ¦¬λ₯Ό μ €μž₯, 검색, λ³΅κ΅¬ν•˜λ©° μž₯κΈ° μž‘μ—…(Long-running tasks)을 κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” μ œμ–΄ ν‰λ©΄μ˜ 역할을 μˆ˜ν–‰ν•œλ‹€ [2, 3]. * **파일 μ‹œμŠ€ν…œ 및 영ꡬ μ €μž₯μ†Œ 기반 μƒνƒœ 관리:** ν•˜λ„€μŠ€λŠ” 파일 μ‹œμŠ€ν…œμ„ ν™œμš©ν•˜μ—¬ 쀑간 μƒνƒœλ₯Ό λ””μŠ€ν¬μ— μ§€μ†μ‹œν‚€κ³ , μ»¨ν…μŠ€νŠΈ μœˆλ„μš°μ˜ ν•œκ³„λ₯Ό λ„˜μ–΄ 정보λ₯Ό μ˜€ν”„λ‘œλ”©(Offloading)ν•œλ‹€ [5, 6, 8]. μΌλ‘€λ‘œ μ΄ˆκΈ°ν™”-μ‹€ν–‰μž 뢄리(Initializer-executor split) νŒ¨ν„΄μ„ μ‚¬μš©ν•˜λ©΄ 폴더 ꡬ쑰, κΈ°λŠ₯ λͺ©λ‘, μ§„ν–‰ 파일 λ“± 내ꡬ성 μžˆλŠ” ν”„λ‘œμ νŠΈ ν™˜κ²½ μƒνƒœκ°€ μ„€μ •λ˜λ©°, 후속 μ„Έμ…˜μ€ 이 μƒνƒœλ₯Ό 읽어 μ μ§„μ μœΌλ‘œ μž‘μ—…μ„ μˆ˜ν–‰ν•œλ‹€ [9]. * **μ„Έμ…˜ μƒνƒœ(Session State)와 μ²΄ν¬ν¬μΈνŒ…:** μ—μ΄μ „νŠΈμ˜ μƒνƒœ κ΄€λ¦¬λŠ” ν˜„μž¬ μž‘μ—… κΈ°κ°„ λ™μ•ˆμ˜ 도ꡬ μ‹€ν–‰ κ²°κ³Ό, μ™„λ£Œλœ ν•˜μœ„ μž‘μ—…, μ§„ν–‰ λ…ΈνŠΈ 등에 λŒ€ν•œ 내ꡬ성 μžˆλŠ” 둜그λ₯Ό κ΄€λ¦¬ν•˜λŠ” 과정을 ν¬ν•¨ν•œλ‹€ [7]. LangGraph와 같은 μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ ν”„λ ˆμž„μ›Œν¬λŠ” κ·Έλž˜ν”„ 기반 μƒνƒœ λͺ¨λΈκ³Ό μ²΄ν¬ν¬μΈνŒ…(Checkpointing) κΈ°λŠ₯을 μ œκ³΅ν•˜μ—¬, μ‹€νŒ¨ 후에도 μž₯κΈ° μž‘μ—…μ„ μž¬κ°œν•  수 μžˆλ„λ‘ μ—μ΄μ „νŠΈ μƒνƒœμ— λŒ€ν•œ λͺ…μ‹œμ μ΄κ³  μ„Έλ°€ν•œ μ œμ–΄λ ₯을 μ œκ³΅ν•œλ‹€ [10, 11]. * **관찰적 λ©”λͺ¨λ¦¬ 및 μƒνƒœ μ••μΆ• 관리:** Mastra와 같은 ν”„λ ˆμž„μ›Œν¬λŠ” λ°±κ·ΈλΌμš΄λ“œ μ—μ΄μ „νŠΈλ₯Ό 톡해 λŒ€ν™”λ₯Ό μ‹€μ‹œκ°„ λͺ¨λ‹ˆν„°λ§ν•˜κ³ , 이λ₯Ό κ΅¬μ‘°ν™”λœ κ΄€μ°° 결과둜 지속 μ••μΆ•ν•˜λŠ” 관찰적 λ©”λͺ¨λ¦¬(Observational memory) μ‹œμŠ€ν…œμ„ μ‚¬μš©ν•˜μ—¬ μƒνƒœμ˜ 밀도와 ν’ˆμ§ˆμ„ μžλ™ μœ μ§€ν•œλ‹€ [12, 13]. λ”λΆˆμ–΄ μ»¨ν…μŠ€νŠΈ μœˆλ„μš°κ°€ μ±„μ›Œμ§μ— 따라 이전 단계λ₯Ό μš”μ•½λ³ΈμœΌλ‘œ μ••μΆ•(Auto-summarization)ν•˜μ—¬ 쀑간 μƒνƒœλ₯Ό κ΄€λ¦¬ν•˜κΈ°λ„ ν•œλ‹€ [8, 14]. ## βš–οΈ Trade-offs & Caveats * **데이터 좜처 및 계보 좔적 상싀:** μ»¨ν…μŠ€νŠΈ μ••μΆ• 및 μžλ™ μš”μ•½μ„ 톡해 μƒνƒœλ₯Ό 관리할 경우 λ°μ΄ν„°μ˜ 좜처(Provenance)κ°€ 쑰용히 손싀될 수 μžˆλ‹€ [8]. μ—μ΄μ „νŠΈκ°€ μš”μ•½Β·μ••μΆ•λœ μƒνƒœ(μ»¨ν…μŠ€νŠΈ)λ₯Ό 읽을 λ•Œ ν•΄λ‹Ή μ •λ³΄μ˜ κΈ°μ›μ΄λ‚˜ 데이터 계보(Lineage)λ₯Ό μ—°κ²°ν•˜λŠ” 좔적 λ©”μ»€λ‹ˆμ¦˜μ΄ λŠμ–΄μ§€κΈ° λ•Œλ¬Έμ—, 잘λͺ»λœ κ²°κ³Όκ°€ λ„μΆœλ  경우 κ·Όλ³Έ 원인을 νŒŒμ•…ν•˜κΈ° μ–΄λ €μ›Œμ§„λ‹€ [8]. * **μ˜€μ—Όλœ 데이터 μœ μž…μ— λ”°λ₯Έ μƒνƒœ 쀑독:** λŒ€λΆ€λΆ„μ˜ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ ν”„λ ˆμž„μ›Œν¬λŠ” μƒνƒœμ— μ£Όμž…λ˜λŠ” μž…λ ₯ 데이터가 κΉ¨λ—ν•˜λ‹€κ³  κ°€μ •ν•  뿐 이λ₯Ό 직접 κ²€μ¦ν•˜μ§€λŠ” μ•ŠλŠ”λ‹€ [11, 15, 16]. μŠ€ν‚€λ§ˆ λ“œλ¦¬ν”„νŠΈλ‚˜ μΈμ¦λ˜μ§€ μ•Šμ€ 좜처의 'μ˜€μ—Όλœ 데이터'κ°€ ν•˜λ„€μŠ€μ˜ μ»¨ν…μŠ€νŠΈλ‘œ μœ μž…λ˜λ©΄, μ—μ΄μ „νŠΈκ°€ 잘λͺ»λœ 기얡을 λ°”νƒ•μœΌλ‘œ 연쇄 μž₯μ• (Cascading failures)λ₯Ό μΌμœΌν‚€κ±°λ‚˜ λͺ¨λΈ μŠ€μŠ€λ‘œλŠ” μ œκ±°ν•  수 μ—†λŠ” 'μ’€λΉ„ λ©”λͺ¨λ¦¬' 문제λ₯Ό κ²ͺ을 수 μžˆλ‹€ [17-19]. * **인프라 및 운영 λ³΅μž‘μ„± 증가:** 쀑간 μƒνƒœλ₯Ό μœ μ§€ν•˜κΈ° μœ„ν•΄ 파일 μ‹œμŠ€ν…œ λ°±μ—”λ“œμ— λ§₯락을 μ˜€ν”„λ‘œλ”©ν•˜λŠ” 방식은 μ»¨ν…Œμ΄λ„ˆν™”λœ 배포 ν™˜κ²½μ—μ„œ 운영 λ³΅μž‘μ„±μ„ 크게 μ¦κ°€μ‹œν‚¨λ‹€ [20]. λ˜ν•œ AutoGenκ³Ό 같은 νŠΉμ • ν”„λ ˆμž„μ›Œν¬μ˜ 경우 λŒ€ν™”ν˜• μƒνƒœ(μ»¨ν…μŠ€νŠΈ)κ°€ λˆ„μ λ  λ•Œ μžλ™ν™”λœ 관리 κΈ°λŠ₯이 μ—†μ–΄ 토큰 μœˆλ„μš°κ°€ 가득 μ°¨λ©΄ μˆ˜λ™μœΌλ‘œ μƒνƒœλ₯Ό κ°€μ§€μΉ˜κΈ°(Pruning)ν•΄μ•Ό ν•˜λŠ” μ œμ•½ 사항이 μ‘΄μž¬ν•œλ‹€ [21]. --- *Last updated: 2026-05-05*