Search

세션2: 업스테이지 - 작은 팀이 AI로 생존하는 법

Document Parse

1.
OCR → parsing
document AI controller 컴포넌트 안에서 문서 파일 전처리를 하고 적합한 모델로 라우팅
go lang으로 controller 구현
2.
생긴 문제
controller쪽에서 segmentation fault가 났다.
문서 처리하는 쪽에서 발생
전체 서비스가 죽어버림.
문서 처리 컴포넌트를 분리하여 docmate 장애가 전체 서비스 장애로 전파되지 않도록 한다.
3.
하루 만건의 docmate 에러 발생
문서를 처리하는 오픈소스 내부에서 에러가 발생했다는 걸 알게 됨/
go, c library를 봐야했음. 그래서 소스코드를 직접 들여다보기 부담스러워 에러가 재현되는 데이터만 엣지케이스로 대응
4.
특정 Pdf 파일을 단건 요청 보내면 괜찮은데, 동시 요청 보냈을 때 segment error가 발생하는 걸 발견해서 cursor로 디버깅해보기로 함
동시 요청 시 에러 발생하는 pdf 파일, 서비스 코드, 문서 처리 라이브러리, c library를 깃클론해서
문제가 되는 부분을 컨텍스트로 넣어줌
근본 원인: c 엔진은 외부에서 lock 을 주입받아 스레드 safe하게 동작하도록 설계되었지만 go wrapper에서 락을 넣어주지 않아 동시성 버그가 발견했던 것.
또 다른 사례
1.
PDF 파일을 뷰어로 열면 잘 열리는데 추론 요청을 보내면 415(unsupported error) 에러가 남.
2.
실패하는 pdf 파일, 정상 동작하는 파일, 문서 처리 로직 일부를 AI에게 컨텍스트로 전달함
3.
비교군을 주니, 문제가 되는 파일은 pdf ~ eof 마커 바깥에 기대하지 않는 값이 들어가있었다는 것을 발견해냄.
고객사에서 데이터 반출이 어려운 경우 꿀팁
“에러를 재현할 수 있는 fake 데이터를 생성해서 전달해주시면 에러 원인 파악 및 서비스 개선에 도움이 될 수 있습니다.”

바이브 코딩으로 엔터프라이즈 포털 개발 사례

1.
온프렘 사업하면서 있었던 문제
모델, 서빙 엔진, 어플리케이션 등 50+ 종의 컴포넌트가 있음
모델팀, 플랫폼 개발 팀, 앱 개발 팀 각각 제품을 전달하는 방식이 다름.
고객사별로 나가야할 제품을 패키징하고 설치하는 과정이 너무 번거로움
오픈소스 같은 경우 어떤 버전이 딜리버리 되었는지 버전을 기록해두는 곳도 없었음.
카탈로그들을 usb, 구글 드라이브, s3 등 일원화되지 않은 채널 통해 고객사나 파트너사에 딜리버리
표준화된 설치 매뉴얼도 없었음.
2.
솔루션 패키징 과정
document parse에 필요한 모델들, 라이브러리들 리스트 업…
노션에서 document parse에 필요한 모델들의 경로 확인 후 NAS에서 아티팩트들을 압축해서 준비
깃헙 레포에 올라가있는 dockerfile로 docai-viewer를 직접 빌드해서 도커 이미지를 챙김
주먹 구구식으로 진행되던 패키징
3.
그래서 나온 것이 카탈로그 서비스와 엔터프라이즈 포탈
고객사별 패키지 버전관리
누가 무엇을 올리고 다운로드 받았는지 audit 로그 확인 가능
표준화된 매뉴얼 관리
4.
솔루션 관련 질문이 들어와서 이것도 AI가 대응할 수 있도록 함 → 회사 내부의 AI 스페이스 사용
AI 스페이스에 문서를 업로드해서 데이터를 쌓고
문서에 대한 질의 응답 가능
share 기능으로 url에 모두 접근해서 질의 가능
5.
엔터프라이즈 포탈이 도입된 후로는
클릭 몇번으로 필요한 카탈로그(데브옵스 분들이 만들어주신)를 패키징한 것을 다운 받을 수 있다.
파트너사에게 이관도 가능해짐. 엔터프라이즈 포탈에서 다운 받음
어떤 카탈로그가 어느 파트너사 고객사에 나갔는지 필터 검색이 용이하여 관리가 수월해짐.

결론

AI를 생산성 툴로 이용한 것에 그치지 않고, AI로 생산성을 높이는 툴을 만드는 것도 가능하다!
대체되는 사람이 아니라, 확장되는 개발자가 되자.

기획서 작성 대신 cursor로 UI 뼈대 먼저 만들어보기
AI의 도움을 받아 역할 구분 없이 작은 것 하나라도 넘나들기 (기획자도 코드 조금, 개발자도 디자인 조금)
AI에게 위임할 수 있는 일 찾아보고 위임하기
PR 리뷰, 로그 분석, 문서 정리, 간단한 툴 개발