Mike 소개
Mike (또는 MikeOSS)는 법률 문서를 다루는 로펌과 사내 법무팀을 위한 오픈소스 AI 법률 어시스턴트입니다. Harvey, Legora 같은 상용 법률 AI 도구가 제공하는 채팅 기반 문서 검토, 매터(matter) 단위 작업 공간, 수백 건 문서의 표 형식 추출, 재사용 가능한 워크플로우를 한 묶음으로 묶어 AGPL-3.0 라이선스로 공개합니다. 본 게시물에서는 Mike의 핵심 기능, 기술 스택, 설치·운영 방식을 정리합니다.
기존 상용 리걸 AI는 좌석당 연간 구독료가 빠르게 누적되고, 모델 선택과 데이터 흐름이 벤더의 블랙박스 안에 있다는 한계가 있습니다. Mike는 코드와 프롬프트가 모두 공개되어 있어 로펌이 자체 인프라 안에서 직접 호스팅할 수 있으며, 모델 키(Anthropic, Google Gemini, OpenAI)를 사용자 본인의 계정으로 연결해 BYOK(Bring Your Own Key) 방식으로 운영합니다. 그 결과 문서가 로펌의 보안 경계를 벗어나지 않고, 모델 API 호출 비용 외에 추가 라이선스 비용이 발생하지 않습니다.
기술 스택은 TypeScript 기반으로, 프런트엔드는 Next.js, 백엔드는 Express, 인증과 데이터베이스는 Supabase(Auth + Postgres), 문서 저장은 Cloudflare R2 또는 MinIO 같은 S3 호환 버킷을 사용합니다. 별도로 학습된 자체 모델 없이 외부 LLM 제공자에 위임하는 구조라, 호스팅 환경에 GPU 자원을 둘 필요 없이 일반적인 웹 인프라 위에서 동작합니다.
Mike의 핵심 기능
문서를 읽고 인용하는 어시스턴트(Assistant)
업로드된 문서를 컨텍스트로 두고 대화할 수 있는 채팅 인터페이스입니다. 일반적인 LLM 챗과 달리 답변의 근거가 되는 문장을 원문에서 그대로 인용하며, 여러 단계로 이어지는 워크플로우를 실행하거나 계약서 초안을 작성·수정하는 작업까지 한 대화 안에서 처리합니다. 사용자가 직접 등록한 Claude, Gemini, OpenAI 키 중 어느 것이든 모델 선택이 가능합니다.
매터(matter) 단위로 묶이는 프로젝트(Projects)
법무 업무는 보통 매터(matter, 하나의 거래·소송·자문 건)를 단위로 진행됩니다. Mike의 프로젝트는 그 매터에 해당하는 작업 공간으로, 신용계약서, 주식매매계약서(SPA), 임대차계약서, 실사 자료(diligence pack) 등을 한 곳에 올려두면 어시스턴트가 모든 문서와 이전 대화 맥락을 유지한 채 응답합니다.
수백 건 문서를 스프레드시트처럼 보는 표 형식 검토(Tabular Review)
여러 문서에서 같은 항목을 일관된 기준으로 뽑아 비교하는 작업을 위해, 행은 문서이고 열은 추출 항목인 스프레드시트 형태의 검토 화면을 제공합니다. 각 셀의 값은 원문 페이지 번호와 인용 문장으로 역추적되며, 환각된 답이나 끊어진 출처가 셀에 들어가지 않도록 설계됐다는 점을 프로젝트는 강조합니다.
반복되는 검토를 템플릿화한 워크플로우(Workflows)
자주 쓰는 프롬프트와 검토 절차를 워크플로우로 저장해 두면 다른 매터에서도 한 번에 다시 실행할 수 있습니다. 기본 제공 템플릿에는 CP 체크리스트, 신용계약서 요약, 경영권 변동(change-of-control) 검토 같이 트랜잭션 업무에 흔한 절차가 포함되어 있고, 로펌이 자체 검토 양식을 만들어 주니어 변호사가 한 번의 클릭으로 돌릴 수 있게 할 수도 있습니다.
Mike의 기술 스택과 배포 구조
| 영역 | 사용 기술 |
|---|---|
| 프런트엔드 | Next.js (TypeScript) |
| 백엔드 API | Express (TypeScript) |
| 인증 / DB | Supabase Auth + Postgres |
| 문서 저장소 | Cloudflare R2, MinIO 등 S3 호환 버킷 |
| 모델 제공자 | Anthropic, Google Gemini, OpenAI (BYOK) |
| 문서 변환 | LibreOffice (DOC/DOCX → PDF) |
저장소는 frontend/ 와 backend/ 디렉토리로 나뉘며, backend/schema.sql 에는 신규 Supabase 프로젝트용 전체 스키마가, backend/migrations/ 에는 기존 운영 DB 에 적용할 증분 마이그레이션이 들어 있습니다. 운영 데이터에 풀 스키마 파일을 그대로 적용하지 말고 마이그레이션 파일만 순차 적용하라는 안내가 README 에 명시되어 있습니다.
모델 키는 두 가지 방식으로 둘 수 있습니다. 인스턴스 단위로 운영하려면 backend/.env 에 ANTHROPIC_API_KEY, GEMINI_API_KEY, OPENAI_API_KEY 를 두고, 사용자별로 분리하려면 앱의 Account > Models & API Keys 화면에서 각 사용자가 자기 키를 입력합니다. backend/.env 에 키가 있으면 해당 제공자가 기본 활성화되고, 사용자 화면의 같은 칸은 읽기 전용이 됩니다.
Mike 설치 및 실행
전제 조건은 Node.js 20 이상, npm, git, Supabase 프로젝트, S3 호환 버킷(R2/MinIO 등), 최소 하나의 모델 제공자 API 키이며, DOC/DOCX 를 PDF 로 변환할 일이 있다면 로컬에 LibreOffice 가 설치되어 있어야 합니다.
# 1) 환경 파일 생성 (README 의 키 목록을 채워 넣습니다)
touch backend/.env
touch frontend/.env.local
# 2) 패키지 설치
npm install --prefix backend
npm install --prefix frontend
# 3) 로컬 실행 (각각 별도 터미널에서)
npm run dev --prefix backend
npm run dev --prefix frontend
브라우저에서 http://localhost:3000 을 열어 회원 가입한 뒤, backend/.env 에 모델 키를 두지 않았다면 Account > Models & API Keys 에서 Anthropic, Gemini, OpenAI 중 한 곳의 키를 등록하면 프로젝트를 만들고 문서와 대화할 수 있습니다.
운영 단계의 주의사항으로, Supabase 의 기본 메일러는 강한 레이트 리밋이 걸려 있어 가입 확인 메일이 도착하지 않는 경우가 흔합니다. 로컬 개발에서는 Supabase > Authentication > Providers > Email 에서 이메일 확인을 끄는 방식이, 운영 환경에서는 Supabase 에 커스텀 SMTP 를 연결하는 방식이 권장된다고 README 는 안내합니다.
Mike 라이선스
Mike는 GNU AGPL-3.0 라이선스로 공개되어 있습니다. 네트워크를 통해 서비스 형태로 제공하는 경우(SaaS)에도 수정한 소스 코드를 사용자에게 공개해야 하므로, 사내 자가 호스팅이나 자체 포크 후 공개 버전을 만드는 데는 자유롭지만, Mike 를 기반으로 폐쇄형 SaaS 를 만들려는 경우에는 동일한 AGPL-3.0 조건을 따라야 합니다.
Mike 공식 홈페이지
Mike 프로젝트 GitHub 저장소
더 읽어보기
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()




