IT 기업용 지능형 그룹웨어 'Workpresso'
역할: 팀장, 에이전틱 워크플로우 설계 및 구현, 외부 API(Slack/Jira) 통합, 설정 및 권한 체계 설계
🔎 프로젝트 개요
- 기존의 무거운 일체형 그룹웨어를 탈피하여, 마크다운 결재 및 일정 관리라는 핵심 코어 위에 Agentic AI와 외부 협업 툴(Jira, Slack) 익스텐션을 결합한 IT 전용 지식 플랫폼을 개발
- 단순한 정보 요약을 넘어 실제 시스템을 제어하는 Actionable AI를 구현하여 업무 단절을 해소하고 사내 지식을 자산화함
🚩 프로젝트 수행과정 요약
- (기획 및 분석) 툴 파편화로 인한 데이터 단절 및 퇴사 시 발생하는 정보 휘발 문제를 정의하고, ‘Zero-UI’ 기반의 대화형 인터페이스를 해결 방향으로 수립
- (아키텍처 설계) Turborepo 기반 모노레포 환경을 구축하고, Supabase와 pgvector를 활용하여 멀티소스(문서, 일정, 채팅, 회의록) 정보를 통합 검색할 수 있는 RAG 파이프라인 설계
- (모듈별 개발) 5개 핵심 Pod(전자결재, 캘린더, AI 채팅, 음성 회의록, 팀 채팅)를 병렬 개발하고, Vercel AI SDK를 통해 2초 이내의 스트리밍 응답 환경 구축
- (배포 및 최적화) Vercel을 통한 실서비스 수준의 배포를 완료하고, 웹 자산을 80% 이상 재활용한 Expo/RN 하네스 방식의 모바일 앱 전략 이식
🪄 활용된 기술
- Framework / Mobile
- [Web] Next.js 14 (App Router), TypeScript 5.6
- [Mobile] Expo 54, React Native (Web Harness 방식)
- AI / Data Pipeline (본인 역할 핵심)
- [LLM] Vercel AI SDK, OpenRouter (Gemini, GPT-4o 등), Whisper STT
- [Vector DB] Supabase pgvector (1536차원 임베딩 기반 유사도 검색)
- Integration / UI
- [External] Slack API, Jira REST API (마감일 동기화 및 자동 브리핑)
- [UI/UX] Radix UI, TailwindCSS, WaveSurfer.js (음성 시각화)
⚠️ 프로젝트 과정 중 발생한 문제-해결 과정
- AI 스트리밍 응답과 Supabase SSR 쿠키 충돌 (HTTP 500)
- 문제: 스트리밍 응답 시작 후 Supabase SSR이 세션 갱신을 위해
set-cookie를 시도하며 서버 크래시 발생 - 해결: 인증은 ‘읽기 전용’ 클라이언트로 분리하고, DB 쓰기는 별도의 서버 클라이언트로 역할을 격리하여 헤더 전송 후 쿠키 수정 문제를 원천 차단
- 문제: 스트리밍 응답 시작 후 Supabase SSR이 세션 갱신을 위해
- Vercel 배포 시 환경 변수 및 동적 라우팅 오류
- 문제: 로컬 환경(localhost:3000) 하드코딩과
.gitignore설정 오류로 인해 Vercel 배포 후 API 404 에러 발생 - 해결:
getAppBaseUrl()유틸리티를 통한 동적 URL 처리와force-dynamic선언으로 배포 환경 안정화
- 문제: 로컬 환경(localhost:3000) 하드코딩과
- Jira API Token 관리 및 보안 정책 문제
- 문제: Atlassian의 보안 정책으로 웹에 노출된 API Token이 자동 삭제되어 연동 기능 중단
- 해결: 네트워크 환경(사설망 배제) 개선 후 토큰을 재발급하고, Vercel 환경 변수 설정을 통해 보안 취약점 해결
🎬 최종 성과 및 회고
- 정량적 성과: 의도 분류 정확도 95%+, RAG 정보 인출 정확도 90%+, 외부 API 연동 성공률 100% 달성
- 회고
- 9일이라는 단기간 내에 5개 모듈을 End-to-End로 완성하며 에이전틱 워크플로우 설계 역량을 확보함
- 다만, Agent의 기능을 일정 생성 외 Jira 쓰기 등으로 확장하지 못한 점은 향후 고도화 과제로 남음
- ‘그룹웨어’라는 개념을 한번도 접해보지 못한 팀원들에게 필요 기능 및 UI/UX를 하나의 컨센서스로 만들어 가는 과정이 쉽지 않았지만 모두 잘 받아들여주고 실제로 구현해 낸 것이 보람찼음
- 짧은 기간동안 AI를 적절하게 활용한 최신 개발과정을 체험해볼 수 있는 시간이었음
(번외) 최종평가결과
[ 2팀 APP 프로젝트 평가 ]
-
팀원들 모두 본인들이 사용한 기술에 대해 명확하게 알고 사용한 것 같아 잘한했다고 생각한다.
-
2팀 Zirosoft의 발표를 지켜보며 실무 수준의 클라우드 네이티브 MSA 아키텍처와 다중 AI 에이전트를 엔터프라이즈 ERP에 어떻게 녹여냈는지 그 치열한 고민의 흔적을 엿볼 수 있었습니다. 발표 플로우는 단순한 기능 나열을 배제하고 영업 기회 발굴부터 도입과 유지보수까지 이어지는 복잡한 B2B 소프트웨어 라이프사이클을 논리적인 데이터 파이프라인으로 풀어내는 데 집중했습니다. 특히 프레젠테이션 중반부에 백엔드의 비동기 이벤트 통신과 OpenRouter를 통한 에이전트 간 동기화 과정을 아키텍처 다이어그램과 로그 모니터링으로 시각화하여 증명한 부분은 심사위원들에게 시스템의 확장성과 안정성을 확신시키기에 충분했습니다. 개발 과정에서 마주했던 레이스 컨디션과 동기화 이슈를 어떻게 극복했는지 담담하게 서술하는 모습에서 상용 서비스를 당장 운영해도 손색없을 프로페셔널한 엔지니어링 성숙도를 확인할 수 있었습니다.
-
잘 모르는 내용이 많다보니 프레젠테이션에 짧게라도 설명 글을 넣어줬으면 좋았을 것 같습니다.
• PM이 경험이 많으신 걸 느낄 수 있었습니다. • 초기에 구조설계에 더 시간을 쓰는게 훨씬 더 후반부에 효율적인 시간분배가 구현시에 가능할 것이라고 생각합니다. • Slack, JIRA등 이미 잘 쓰고있는 app들을 활용해서 통합된 app을 만들면서 불편한점들을 해소할 수 있다면 가장 효과적인 방법이라고 봅니다. • Calendar, 회의록 UI에서 일반적인 방법보다 click수를 줄이고 한번에 편하게 볼 수 있게 UI구성한 부분은 좋았고 각 module들을 서로 연동시킨것도 같은 의미에서 좋았습니다. • Trouble shooting과정을 tracking하신것도 잘하신 부분으로 보이구요 개발시에 늘 필요한 부분으로 생각합니다.” 그룹웨어를 한번도 안써봤음에도 실제 바로 사용 가능해도 좋은 어플을 만들었습니다.
-
개발 과정에서 자동화 툴을 잘 사용한 것, 팀웍이 좋았던 것, 그룹웨어 경험이 없는 분들이 상상력을 구현해서 최대한의 결과물을 낸 것
-
ERP 생소하지만 정말 많이 배웠고 어려웠던 길에 좋은 결과물 이였습니다.
-
회사 하나가 만든 그룹웨어 같습니다. 압도적인 스케일입니다.
-
팀장이신 지호님의 그룹웨어 경험을 토대로 개발 시 필요했던 명세서와 기획서등이 잘 준비된 상태로 개발을 준비할 수 있어 협업개발을 위한 준비들을 위한 프로젝트 폴더 구조, 각 개발을 맡은 개인 별 skill.md 파일등을 쉽고 빠르게 구축한 상태에서 개발에 진입할수있어 좋았습니다. 아쉬웠던 점은 팀에 대한 아쉬움보다는 프로젝트의 기간이 9일밖에 되지 않아 웹과 앱을 동시에 구현하기에는 플루터와 같은 동시 개발 방법을 사용할수 없는 환경(웹에서 next.js를 사용해야했기 때문에)이었기 때문에 앱을 구현하기 위한 시간이 부족해서 아쉬웠습니다.