박승현상태창 ↗
← 포트폴리오

뇌대리

1인 개발

NAS가 감당하기 버거운 AI·미디어 연산을 별도 장비에 맡겨 처리하는 개인용 연산 대행 플랫폼

HTML5JavaScriptTypeScriptPython

개발 이유

로컬 AI를 직접 운영해보려고 Mac mini를 구입했지만, 실제로 써보니 서비스에 활용하기에는 성능이 많이 부족했습니다. 그래서 남는 자원을 그냥 두기보다는 NAS의 연산 부담을 덜어주는 용도로 써보기로 했습니다.

개인 서비스 대부분을 NAS에서 운영하다 보니 서비스가 늘어날수록 영상 변환이나 이미지 처리, AI 추론처럼 CPU와 메모리를 많이 사용하는 작업까지 NAS가 직접 처리하는 데 부담이 생겼습니다.

그래서 NAS는 웹 서비스와 데이터 저장 등 상시 운영이 필요한 역할에 집중시키고, 순간적으로 많은 연산 자원이 필요한 작업은 성능이 더 좋은 별도의 PC에 "외주를 맡기듯 위임한다"는 취지로 뇌대리를 개발했습니다.

각 서비스는 필요한 작업만 요청하고, 뇌대리가 사용 가능한 연산 자원과 워커를 이용해 작업을 처리한 뒤 결과를 돌려주는 구조입니다.

이를 통해 서비스와 실제 연산 환경을 분리하고, 앞으로 새로운 PC나 연산 자원이 추가되더라도 기존 서비스를 크게 수정하지 않고 활용할 수 있도록 구성했습니다.

주요 기능

1. 공통 연산 작업 큐

  • 파일 변환, AI 처리 등 무거운 작업을 서비스 요청과 분리하여 비동기로 실행

  • 작업 등록 > 입력 전달 > 워커 점유 > 실행 > 완료/실패 > 결과 정리의 공통 작업 생명주기 관리

  • 작업 종류에 따라 사용할 수 있는 워커가 작업을 가져가는 Pull 방식

  • 멱등성 키를 이용한 동일 작업 중복 실행 방지

  • 워커 장애나 점유 만료, 작업 취소 등 비정상 상황 처리

  • 작업 실행 이력과 실제 임시 파일의 수명주기를 분리하여 관리

2. 이미지, 영상 연산 위임

  • 이미지 썸네일 및 WebP 미리보기 생성

  • 이미지 메타데이터 및 결과 패키징

  • 영상 썸네일 생성

  • 원본 영상에서 480p/ 720p/ 1080p HLS 자동 생성

  • 처리 결과 및 다운로드 파일 패키징

  • 결과물의 제한 시간 보관 및 임시 작업 데이터 자동 정리

3. 호스트 하드웨어를 활용한 영상 처리

  • macOS 환경에서 VideoToolbox 하드웨어 가속을 우선 활용

  • 하드웨어 인코딩 실패 시 미완성 결과를 정리하고 CPU 방식으로 전환

  • 작업자가 하드웨어 가속 여부를 의식하지 않아도 기본적으로 적절한 실행 방법을 선택

  • 취소, 시간 초과, 저장공간부족등 재실행하면 안되는 실패 유형을 구분하여 처리

4. 공통 AI 연산 허브

  • 블로그 요약,태그 생성, 댓글작성, 문서 코드 분석, 일반 질답 등 여러 서비스의 AI 요청을 공통 작업으로처리

  • 텍스트 임베딩 API 제공

  • 문서 벡터 인덱싱 및 컬렉션 관리

  • 프로젝트 환경 컬렉션 별 벡터 유사도 검색

  • AI 공급자 모델 작업별 토큰 사용량 수집 및 조회

  • 각 서비스가 개별적으로 AI 공급자를 관리하지 않고 뇌대리를 통해 공통으로 사용할 수 있도록 구성

5. 작업 난이도에 따른 AI 모델 라우팅

  • Raya를 이용하여 요청 난이도를 먼저 판단

  • 판단 결과에 따라 여러 AI 모델 중 적절한 성능 등급을 선택

  • 선택한 공급자의 호출이 실패하면 사전에 정의한 하양 폴백 경로를 따라 다른 공급자로 자동 전환

  • 불필요하게 높은 성능의 모델을 호출하지 않도록 작업 특성에 맞는 모델 사용을 목표로 설계

  • n8n과 연동하여 여러 서비스의 AI 작업을 동일한 라우팅 흐름으로 처리

6. 연산 작업 운영 화면

  • 현재 대기 실행 완료 실패 작업 확인

  • 어떤 서비스의 작업인지, 어떤 워커가 실행 중인지 확인

  • 실행 단계와 결과를 작업 단위로 추적

  • 사용자별 자신의 작업과 결과 분리

  • 관리자 승인 기반 사용자 및 워커 관리

  • 서비스별 새로운 연산 기능을 점진적으로 추가할 수 있는 구조

핵심 특징

1. NAS는 서비스에 집중하고 연산은 뇌대리에 위임

2. Docker 를 사용하지 않은 유일한 서비스

연산을 실행하는 호스트 자체의 성능과 기능을 최대한 활용하는것이 서비스의 최대 목적이기 때문에 예외적으로 Native 환경을 선택했습니다.

3. 파일 처리 서버가 아닌 범용 '작업 실행 플랫폼'

4. 연산 자원의 추가를 서비스와 분리

추가 예정

  1. TTS

  2. STT , OCR

  3. 영상 자막

  4. 자동 번역