프로젝트 02

LAWMATE

법무법인 업무보조 AI 플랫폼

법률 검색과 사건 분석, 권한별 협업 흐름을 하나의 업무 플랫폼으로 구성했습니다.

기간
2025.05.13 — 2025.07.07
역할
AI Engineer / Full-Stack Developer
플랫폼
Web
결과
기업 참여 프로젝트 우수팀 선정
기술
  • Jupyter
  • LangChain
  • LangGraph
  • Hugging Face
  • PyTorch
  • Django
  • JWT Token
  • OpenAI API
메인 대시보드

01 배경

LAWMATE의 제안 배경

하비(Harvey) — 법률 산업 특화 생성형 AI
  • Harvey는 법률 산업 특화 생성형 AI 서비스로 개발됨
  • 로펌과 사내 법률팀에 맞춤형 LLM 기능 제공
  • 글로벌 로펌들이 도입하며 빠르게 확산 중
  • 국내 법률 시장에도 유사한 혁신 도입 필요성 대두
전체 소송 건수 (2024 사법연감)
  • 2023년 전체 소송 건수 666만 건, 전년 대비 약 8.1% 증가
  • 최근 3년간 꾸준히 600만 건 이상 유지, 장기적 증가세 확인
  • 소송 건수 증가 → 실무자의 업무 부담으로 연결
  • 반복적·대량 사건 대응을 위한 AI 기반 지원 필요성 증대
2023년 소송 사건 구성 비율
  • 2023년 전체 소송 사건 약 691만 건 중 민사소송이 68.1% 차지
  • 형사사건(26.3%)보다 두 배 이상 높은 비중
  • 민사소송 증가세가 법률 업무 과중의 핵심 원인
  • 다수 사건이 민사 분야에 집중되어 효율적 대응 필요
  • 민사소송 중심의 업무 지원 플랫폼 수요 확대

02 기획 의도

LAWMATE의 기획 의도

“단순 반복작업을 넘어, 법률 전략과 협업을 지원하는 AI 플랫폼으로”

검색·추천 위주로 맞춤 전략 지원 한계

AI 맞춤 전략 추천으로 사건 대응 강화

초보 인력은 독자적 대응 어려움

AI 지원으로 초보 인력도 신속 대응 가능

법률 AI 서비스가 일반 사용자·구독형 중심

정보 검토 시간 단축, 사건 처리 속도 향상

로펌 실무·팀 협업에 최적화된 지원 부족

업무 부담 완화, 효율적 분배·관리 강화

03 구조

LAWMATE의 시스템 아키텍처

Frontend
  • HTML5
  • CSS3
  • Tailwind CSS
  • JavaScript
Backend
  • Django
  • FastAPI
  • Uvicorn
AI
  • Gemma3-1b
  • OpenAI API
Infra & Deployment
  • RunPod
  • AWS
  • Docker

04 주요 기능

LAWMATE의 주요 기능

변호사, 법률사무원

  • 사건 등록, 판례 검색, 문서 분석 등 실무에 필요한 기본 기능 제공
  • 유사 판례 검색 및 요약/분석 기능 활용 가능
  • 전략 수립 지원을 위한 AI 기반 추천 기능 제공
  • 팀 단위 협업 및 사건 진행 현황 확인 가능

관리자

  • 사용자 계정 관리 전용 권한 보유 (계정 생성 · 수정 · 삭제)
  • 로그인 시 관리자 페이지 전용 접근
  • 사건 검색이나 분석 등 일반 기능은 이용 불가
  • 사용자 계정 운영 및 권한 관리에만 집중

파트너 변호사

  • 사건 접수 시 사건 내용 등록 가능
  • LangGraph 기반 Agent가 유사 사건 + 업무량 고려하여 팀 추천
  • 추천된 팀과 가용 가능한 후보 팀 목록 확인
  • 담당 팀을 최종 선택하여 사건 배정
  • 사건 배정 결과는 해당 팀 메인 페이지에 즉시 반영

변호사, 법률사무원 — 사건 관리

  • 메인 페이지에서 팀에 배정된 사건 실시간 확인
  • 사건 진행 현황 관리 및 수정사항 반영
  • 판례 검색, 요약·분석, 전략 수립 기능 활용
  • 팀 단위 협업을 통한 사건 처리 진행
  • 진행 과정과 결과를 시스템에 기록·관리

변호사, 법률사무원 — 사건 상세와 AI 추천 전략

  • 사건 접수 후 배정된 사건의 상세 내용 열람 가능
  • 진행 중 사건에 대한 등록·수정 사항 실시간 반영
  • 등록/수정된 사건 전문이 Full Fine-tuning 모델에 전달됨
  • 클라이언트의 원고/피고 여부에 따라 전략을 구조화된 형태로 자동 작성
  • 작성된 전략은 DB에 저장되어 팀 전원이 최신 전략 확인 가능

변호사, 법률사무원 — 판례 검색 챗봇

  • 사용자의 입력을 OpenAI API를 통해 5가지 카테고리로 분류 (유사 판례 검색, 법률·용어 질문, 선택 판례 질문, 선택 판례 비교, 예외 처리)
  • 판례가 선택되지 않은 경우: 조건 기반 / 사건 내용 기반 검색으로 유사 판례 탐색 가능
  • 판례 1개 선택 시: 선택 판례에 대한 구체적 질문이나 유사 판례 검색 가능, GPT 모델이 해당 판례 중심으로 답변 생성
  • 판례 2개 선택 시: 판례 간 비교 및 관계 분석 질문 가능, 관련성 있는 답변 제공
  • 모든 질문은 GPT 모델이 분류한 파이프라인에 따라 맞춤형 답변 생성

05 고려사항

주요 고려사항

주요 고려사항 1

권한별 기능을 어떻게 차별화할 것인가?

“실제 로펌은 다양한 직무와 역할로 이루어져 있기 때문에, 권한별 기능 차별화를 위해 다음과 같은 기본 구조를 전제로 구현을 시작했습니다.”

로펌 역할 구조 — 클라이언트 → 파트너 변호사 → 민사 N팀
JWT 토큰 함수와 Django Middleware 인증 흐름
관리자 (전산팀)
  • 계정 생성
  • 계정 삭제
  • 권한 수정
변호사 · 법률사무원
  • 사건 내용 수정
  • 유사 판례 검색
  • 챗봇
파트너 변호사
  • 사건 등록 및 삭제
  • 팀 배정
  • 사건 내용 수정
  • 유사 판례 검색
  • 챗봇

구현 전제

  • JWT 토큰 관련 함수: 사용자의 권한을 확인하기 위해 사용하며, 모든 사용자 요청마다 JWT 함수를 호출해야 함
  • Middleware: 사용자의 JWT 토큰을 모든 요청에서 자동 검증하고, Django 서버 로직은 Middleware에서 인증 완료 후 실행

접근 방식

  • 사용자 정보 보호를 위해 모든 요청에 JWT 토큰 기반 권한 확인 적용
  • 권한이 없는 기능 접근 시 요청 차단 및 에러 처리 수행
  • 관리자, 변호사, 법률사무원, 파트너 변호사별 기능을 명확히 구분
  • 모든 사용자 요청은 JWT 토큰을 통해 자동 검증 후 서버에 전달
  • Django Middleware 클래스에서 JWT 토큰 유효성 검증 일괄 처리
  • 별도 미들웨어 모듈로 인증 로직을 분리해 코드 유지 보수성 확보
  • 클라이언트 요청마다 JWT 재발급·검증을 거쳐 보안성 강화
  • 시스템 차원에서 권한 관리와 접근 제어를 통합적으로 수행

주요 고려사항 2

AI 팀 추천 기능을 어떻게 구현할 것인가?

LangGraph 구조도

LangGraph 구조도

  • VectorSearch: 현재 사건과 유사한 사건 이력들을 조회하여 유사도 점수와 함께 사건의 정보를 반환
  • SQLSearch: 현재 가용 상태인 팀들의 업무량 확인
  • ScoreCalc: 팀별로 검색된 유사 사건의 유사도 점수 평균을 계산하고, 각 팀별 평균 유사도 점수와 현재 업무량을 고려하여 산출한 뒤 최종적으로 추천되는 팀을 선정
  • Explain: 추천된 팀과 추천 사유를 사용자에게 자연어로 응답

LangGraph 선택 이유

  • 모듈화된 노드 구조로 기능을 작은 단위로 개발·검증·교체 가능
  • 노드별 단위 테스트·롤백이 쉬워 운영 중 리스크를 최소화
  • 파이프라인을 코드 수준에서 조합·재구성할 수 있어 실험 속도와 반복 개선 용이
  • 다양한 검색·요약·평가 로직을 조건에 따라 유연하게 라우팅 가능
  • 가중치·임계값 등을 분리해 노드별 튜닝·운영 정책 적용 용이
  • 확장성·가시성 측면에서 기록 및 로그 수집이 쉬워 모니터링·디버깅에 유리

06 시연

시연 영상

원본 포트폴리오의 시연 영상을 그대로 실었습니다. 원본 포트폴리오(미리캔버스)에서 보기 ↗

사건 접수 기능
유사 판례 검색 및 Chatbot 질의응답 기능

07 회고

LAWMATE 회고

기획과 구현을 연결하는 역할

LAWMATE 프로젝트에서 공식적인 팀장은 아니었지만, 팀 내에서는 기획과 구현을 잇는 조율 역할을 맡아 프로젝트 전반을 이끌었다. 이 과정에서 가장 중요하게 느낀 점은, 팀장의 역량이 부족하다고 느껴지는 순간에도 이를 탓하기보다 팀원으로서 내가 할 수 있는 역할을 찾아 보완하는 태도였다. 단순히 개발을 잘하는 사람이기보다는, 현재 단계에서 무엇이 필요한지 정리하고 이를 팀원들에게 배분하며 프로젝트의 방향을 유지하는 데 집중했다. 기획이 구현으로 자연스럽게 이어지도록 중간에서 기준을 세우는 역할이 프로젝트의 안정성을 높인다는 것을 체감했다.

흐름을 만드는 선택과 판단

한정된 기간 안에서 모든 기능을 완벽하게 구현하는 것은 불가능했기 때문에, 프로젝트의 핵심 가치를 중심으로 선택과 집중을 했다. 판례 검색, 전략 분석, 팀 추천 등 서비스의 본질적인 기능을 우선순위로 두고 구현 순서와 범위를 조정했다. 이 과정에서도 주어진 역할에만 머무르기보다는, 필요하다고 판단되는 지점에서는 먼저 나서서 의견을 제시하고 적극적으로 피드백했다. 그 결과, 기술적 완성도는 개별 기능의 성능보다도 전체 흐름이 끊기지 않도록 설계하는 판단에서 나온다는 것을 배울 수 있었다.

협업과 소통이 성과로 이어진 이유

프로젝트를 진행할수록 문제의 원인은 코드보다 사람과 소통에서 발생하는 경우가 많다는 것을 알게 되었다. 팀원들의 이해 수준과 작업 속도를 고려해 설명 방식을 조정하고, 막히는 지점은 함께 정리해 다음 단계로 넘겼다. 때로는 팀장을 보조하는 역할로, 때로는 직접 나서서 방향을 제안하는 역할로 팀에 기여하며, 함께 성장할 수 있는 환경을 만드는 것이 중요하다는 것을 느꼈다. 이 경험을 통해, 기술을 잘 아는 것만큼이나 사람과 기술을 연결하는 역할이 프로젝트 성공에 핵심이라는 관점을 갖게 되었다.

연락처

이메일 안내

아래 이메일 주소로 연락해 주세요.