AI와 함께 만드는 삶

PM으로 일하며 AI와 함께 무언가를 만들어가는 삶을 기록합니다.

분류 전체보기 30

지금, 그리고 앞으로 — 누구나법률 개발기를 마치며 (에필로그)

지금까지 온 거리4월 16일 첫 커밋부터 지금까지 약 넉 달. 그 사이 있었던 일을 한 줄로 요약하면 이렇다.무료로 시작 → 무료를 유지할 방법을 밖에서 두 번 찾다 실패 → 원래 계획대로 직접 벌기로 함 → 벌기 시작하니 운영이라는 새로운 산이 나타남.기술적으로 남은 것도 정리하면: LLM 하나에 의존하지 않는 폴백 체인, 실제 법조문·판례를 인용하는 RAG 파이프라인, 긴 계약서도 끝까지 읽는 청킹 엔진, 한글 파일까지 읽는 파서, 버전 간 변경사항을 자동으로 비교하는 리드라인 엔진, 회사별 기준과 대조하는 플레이북 시스템. 그리고 그 사이사이 죽어있던 API, 깨졌던 로컬 환경, 지워야 했던 옛 호스팅의 흔적들.로드맵에 아직 안 지워진 줄 하나ROADMAP.md를 다시 열어보다가 재밌는 걸 발견했다..

서비스 둘러보기 — 누구나법률 지금까지 나온 화면들 (번외)

앞의 일곱 장 동안 "왜 이렇게 만들었는지", "뭐가 잘못됐고 어떻게 고쳤는지"만 이야기했다. 이번엔 그래서 지금 뭐가 남았는지, 실제 화면으로 보여준다.카테고리 선택 — 일반과 기업은 처음부터 갈라진다들어오자마자 "일반 사용자"와 "기업"으로 갈라진다. 일반은 주거·근로·소상공인 같은 생활 밀착 카테고리, 기업은 B2B·인사노무·IP·투자·컴플라이언스 5개 카테고리로 나뉜다. 1장에서 "취약계층 대상"으로 시작한 서비스가, 5장을 거치며 기업형 유료 서비스까지 같이 갖추게 된 결과가 이 갈림길이다.AI 법률 상담 — 카테고리별로 다른 전문가가 답한다 노무 카테고리에서 물으면 노무사 톤으로, 이혼 카테고리에서 물으면 가사 전문 변호사 톤으로 답한다. 답변 아래엔 실제로 검색된 법조문·판례가 인용 카드 형..

PM을 위한 AI 실무 사전 7편 — 청킹, 바이너리 파싱, diff 알고리즘

누구나법률 7장(기업형 계약 분석 엔진 만들기)에서 나온 개념: 텍스트 청킹, 바이너리 파일 파싱, diff(비교) 알고리즘, 규칙 기반 판정.청킹(Chunking) — LLM에게 긴 문서를 나눠서 주는 기술모든 LLM은 한 번에 처리할 수 있는 텍스트 양(컨텍스트 길이)에 한계가 있다. 문서가 그 한계보다 길면, 통째로 넣을 수 없다. 청킹은 긴 문서를 의미 있는 단위로 쪼개서, 나눠서 처리한 뒤 결과를 다시 합치는 기법이다.여기서 실무적으로 중요한 건 "어디서 자르는가"다. 그냥 글자 수로 뚝뚝 자르면, 문장이나 조항 중간이 잘려서 문맥이 끊긴다. 그러면 LLM이 잘린 조각만 보고 엉뚱하게 판단할 수 있다. 그래서 이 프로젝트에서는 계약서의 자연스러운 구조 단위(제N조)를 기준으로 잘랐다. 문서 종류..

카테고리 없음 2026.08.08

기업형 계약 분석 엔진 만들기 — 청킹, HWP 파서, 버전 비교, 플레이북 (7장)

6,000자 컷 — 계약서 뒷부분이 통째로 안 읽히고 있었다계약서를 AI에게 분석시키는 코드를 열어보니, 이런 줄이 있었다. pythonprompt = f"""다음 계약서를 분석해주세요.계약서 전문:---{contract_text[:6000]}---"""[:6000] — 앞 6,000자만 잘라서 LLM에 넘기고 있었다. 짧은 근로계약서라면 문제없지만, 기업 간 용역계약서나 공급계약서는 보통 2만~4만 자다. 뒤쪽 70~80%, 그러니까 손해배상·관할법원·비밀유지 같은 정작 중요한 조항이 대부분 들어있는 구간이 아예 AI 눈에 안 들어가고 있었다. 그런데 화면엔 "분석 완료"라고만 뜬다. 사용자는 자기 계약서의 3/4가 검토조차 안 됐다는 걸 알 방법이 없었다.조항 경계로 자르고, 병렬로 분석하고, 다시 ..

PM을 위한 AI 실무 사전 6편 — 죽은 API와 의존성 함정

누구나법률 6장(완성 그 이후)에서 나온 개념: 안 쓰이는 코드의 위험성, 버전 고정의 함정, 인코딩 문제."완성"의 함정 — 안 불러본 코드는 검증된 적이 없다서비스에 기능이 100개 있다고 해서, 그 100개가 다 검증됐다는 뜻은 아니다. 실제로 사용자가 눌러본 경로만 검증된 것이다. 6장의 /api/config/status 500 에러가 정확히 이 경우였다 — 코드는 있었지만, 아무도 그 엔드포인트를 실제로 호출하지 않았기 때문에 NameError(존재하지 않는 함수/변수를 부르는 오류)가 배포 이후 계속 방치돼 있었다.실무에서 이걸 막는 방법은 결국 두 가지다.모든 엔드포인트를 최소 한 번씩 직접 호출해보는 점검(smoke test) — 복잡한 테스트 코드가 아니어도, 배포 후 "이 API들 다 ..

완성 그 이후 — 운영이라는 두 번째 산, 방치된 버그와 흔적 청소기 (6장)

"완성"이라 부른 지 한 달, 아무도 몰랐던 500 에러7월 2일 유료화 전환까지 마치고, MVP v2는 문서상 "완성"이었다. 그런데 7월 31일, 무심코 시스템 상태를 확인하는 API(/api/config/status)를 호출했다가 500 에러를 받았다.원인은 어이없을 만큼 단순했다. claude_available()이라는 함수를 호출하는 코드는 있는데, 그 함수를 import하는 줄이 빠져 있었다. NameError. 배포된 지 오래됐지만, 이 엔드포인트를 실제로 호출해본 사람이 아무도 없어서 아무도 몰랐다. 서비스가 "완성"됐다는 건 화면에 보이는 기능이 다 돌아간다는 뜻이지, 한 번도 안 눌러본 구석까지 다 멀쩡하다는 뜻은 아니었다.로컬에서 그냥 켜는 것조차 순탄하지 않았다같은 날, 로컬 개발 ..

PM을 위한 AI 실무 사전 5편 — PG, CORS, 도메인, OAuth

누구나법률 5장(그래서 직접 벌기로 했다)에서 나온 개념 네 가지: PG(결제대행사), CORS, 도메인/DNS, OAuth.PG(결제대행사)란온라인에서 카드 결제를 직접 처리하려면 PCI-DSS 같은 보안 인증, 카드사별 개별 계약이 필요하다. 개인·소규모 서비스가 감당하기 어려운 진입장벽이다. **PG(Payment Gateway, 결제대행사)**는 이 복잡한 과정을 대신 처리해주고, 서비스는 PG가 제공하는 SDK/API만 붙이면 결제를 받을 수 있게 해준다. 토스페이먼츠, 아임포트(포트원), 나이스페이먼츠 같은 곳들이 국내 PG의 예다.실무 흐름은 대체로 이렇다. 사용자가 "결제하기" 클릭→ PG가 제공하는 결제창 호출 (실제 카드정보는 PG 서버가 처리, 우리 서버는 안 봄)→ 결제 성공 시 P..

그래서 직접 벌기로 했다 — 경쟁사 분석과 유료화 전환기 (5장)

남들은 어떻게 돈을 받고 있나부터 봤다해커톤을 접은 날(6월 30일), 같은 커밋에 docs/COMPETITIVE_ANALYSIS.md가 같이 들어갔다. 기업 법률 서비스 시장에서 이미 돈을 받고 있는 곳들을 정리했다.서비스타겟가격핵심 차별점Law.aiB2B 대기업 법무팀1인 ₩20,000/월(최소 5명)6모듈 통합(계약·자문·송무·인감·IP·사규)로폼 비즈니스B2B 중대형 기업문의 가격CLM + ERP 연동슈퍼로이어변호사 전용₩99K~198K/월458만 판례 데이터법률구조서비스경제적 약자무료정부 공식 무료 지원정리하면서 확인한 건 두 가지였다. 첫째, 경쟁사들은 전부 대기업 법무팀 아니면 변호사 전용이었다 — 중소기업·1인 사업자가 들어갈 자리가 비어있었다. 둘째, ₩20,000/월 × 5명 = ₩10..

PM을 위한 AI 실무 사전 4편 — 사회적기업 인증과 공모전 생태계

누구나법률 4장(공짜로 메꿔보려 두 번 걸었다)에서 나온 개념: 사회적기업 인증 제도, 정부 지원사업·공모전 생태계, 그리고 "왜 둘 다 대안이 될 수 없었는가".사회적기업 인증이란사회적기업은 취약계층 고용이나 사회서비스 제공 같은 사회적 목적을 우선하면서도, 영리 활동으로 수익을 내는 조직 형태다. 정부(고용노동부·한국사회적기업진흥원)가 일정 요건을 갖춘 조직을 "사회적기업"으로 인증하면, 인건비 지원이나 사업개발비 지원 같은 혜택을 받을 수 있다.핵심은 인증 자체가 자동으로 돈을 주는 게 아니라, 심사를 통과해야 지원 자격이 생긴다는 것. 그리고 심사 기준이 밖에서 보기엔 불투명할 때가 많다 — 4장에 나온 것처럼 "사유 불명"으로 탈락 통보를 받는 경우도 실제로 있다.공모전·경진대회 생태계정부기관·..

공짜로 메꿔보려 두 번 걸었다 — 사회적기업 인증 탈락과 해커톤 철회기 (4장)

탈락, 사유 불명4월 24일, PROJECT_SUMMARY.md에 이렇게 적었다.SEIS 사회적기업 창업팀 | ❌ 1차 신청 탈락 (2026-04) — 사유 불명MVP를 완성하고 채 열흘도 안 돼서 낸 지원서였다. 취약계층 무료 법률 서비스라는 취지도, 실제로 돌아가는 서비스도 있었다. 그런데 떨어졌다. 왜 떨어졌는지는 지금도 모른다. 심사 결과 통보에 사유가 없었다.돌이켜보면 이게 이 프로젝트의 돈 문제를 관통하는 진짜 첫 질문이었다. 취약계층에게 무료로 서비스를 주려면, 그 비용은 누가 내나. API 비용, 호스팅 비용은 실제로 나가는데, 사용자한테는 못 받는다. 그래서 사회적기업 인증이든 지원사업이든, 외부에서 그 비용을 충당할 방법을 찾으려 했다. 첫 시도가 실패한 거였다.다음 카드 — 해커톤곧바..