상세 컨텐츠

본문 제목

​[DevLog] 잠자는 AI도 꿈을 꾸는가? : 인간의 수면 패턴을 모방한 'Self-Improving' 서버 아키텍처

인공지능

by njcin 2025. 12. 6. 13:38

본문

반응형

"인간은 잠을 자면서 낮 동안의 기억을 정리하고 뇌를 재배열한다. AI도 그래야 하지 않을까?"



어느 날 문득 든 생각 하나가 내 노트에 거칠게 적혔습니다. 낮에는 유저와 소통하느라 바쁜 AI, 하지만 밤이 되면 조용히 자신을 되돌아보고 내일을 준비하는 AI.

오늘은 제가 개발 중인 텍스트 RPG 게임 프로젝트에 적용하려는 '수면 주기를 가진 AI 아키텍처(Sleep-Wake Cycle Architecture)'에 대한 구상과 기술적 설계 과정을 공유하려 합니다.


1. 문제의 시작: 실시간 생성의 한계
현재 대부분의 생성형 AI 서비스는 '즉시성(Real-time)'에 집착합니다. 유저가 입력하면 그 즉시 LLM(거대언어모델)이 답을 하죠. 하지만 텍스트 RPG 게임을 개발하며 몇 가지 한계에 부딪혔습니다.

  • Latency (지연 시간): "동굴로 들어간다"를 선택했는데, 다음 스토리가 나올 때까지 3~5초씩 로딩이 걸리면 몰입감이 깨집니다.
  • 비용 효율성: 매번 API를 호출하는 비용이 만만치 않습니다.
  • 지속적 발전의 부재: AI는 어제 했던 실수를 오늘도 반복합니다. 프롬프트를 개발자가 직접 고치지 않는 한 말이죠.

그래서 저는 '밤에 일하는 서버'를 따로 두기로 했습니다.

2. 핵심 컨셉: 낮의 활동(Inference) vs 밤의 꿈(Training/Batch)

제 설계의 핵심은 서버의 역할을 인간의 생체 리듬처럼 두 가지로 분리하는 것입니다.

​🌞 Day Mode (활동 시간)

  • ​상태: Inference (추론) Only
  • ​역할: 유저에게 서비스를 제공하는 시간입니다.
  • ​특징: 무거운 연산을 하지 않습니다. 이미 준비된 데이터를 빠르게 서빙(Serving)하는 데 집중합니다.

🌙 Night Mode (수면 시간)

  • 상태: Batch Processing & Optimization
  • 역할: 유저가 잠든 시간, AI는 깨어납니다.
  • 특징:
    1. 기억 정리: 오늘 유저들의 로그를 분석합니다.
    2. 꿈(미래 예측): 유저가 내일 할 법한 행동(동굴 탐험, 마을 귀환 등)의 스토리를 미리 생성해 DB에 저장합니다.
    3. 반성(Self-Correction): 어제 발생한 오류나 어색했던 답변을 분석해, 시스템 프롬프트(System Prompt)를 스스로 최적화합니다.

3. 기술적 구현: 2-Server Architecture

이 개념을 현실화하기 위해 저는 MSA(Microservices Architecture) 패턴을 변형하여 두 개의 서버를 물리적으로 분리하는 설계를 잡았습니다.

🏛️ Server A: The Stage (서비스 서버)

  • Tech: Node.js / Python FastAPI
  • Mission: "무조건 빨라야 한다."
  • 유저가 접속하면 실시간으로 AI에게 물어보는 것이 아니라, DB에 캐싱된(어젯밤에 만들어진) 데이터를 0.1초 만에 보여줍니다. 안정성이 최우선입니다.

🧪 Server B: The Lab (수면/배치 서버)

  • Tech: Python (AI Libraries)
  • Mission: "깊게 생각해야 한다."
  • CronJob이나 Airflow를 통해 밤에만 실행됩니다. 고성능 GPU 자원을 활용해 대량의 데이터를 처리하고 꺼집니다. 유저가 접속해 있지 않아도 혼자 돌아가는 '백엔드의 백엔드'입니다.

4. 데이터의 흐름 (Data Flow)

이 두 서버는 직접 대화하지 않습니다. 오직 공용 데이터베이스(Shared DB)를 통해서만 소통합니다. 이것이 시스템의 안정성을 보장합니다.

  1. (낮) A서버: 유저의 행동 로그를 User_Logs 테이블에 쌓습니다.
  2. (밤) B서버: User_Logs를 읽어 분석한 뒤, 다음 진행될 스토리를 Pre_Generated_Story 테이블에, 수정된 설정값을 System_Config 테이블에 업데이트합니다.
  3. (아침) A서버: 업데이트된 DB를 참조하여, 더 똑똑해지고 빨라진 서비스를 제공합니다.

5. 마치며: 미래를 코딩하는 방법

이 아키텍처의 가장 큰 매력은 "시간의 단절을 기술로 연결한다"는 점입니다.

유저가 자는 동안 AI는 그 유저를 위해 맞춤형 스토리를 밤새 준비해 둡니다. 다음 날 유저가 접속했을 때, AI는 어제보다 나를 더 잘 알고, 더 매끄러운 이야기를 들려줍니다. 마치 우리가 자고 일어나면 머리가 맑아지는 것처럼요.

단순한 게임을 넘어, '스스로 성장하는 시스템'을 만드는 것. 이것이 제가 njcin을 통해 구현하고 싶은 미래 기술의 한 조각입니다.

반응형

관련글 더보기