안녕하세요.
담당 매니저 김수민입니다.
기간제(상주) 프로젝트 희망 근무 시작일을
등록해 주시면, 파트너님의 일정에 맞는
적합한 프로젝트를 추천해 드려요.
플러스
사내 협업 그룹웨어 풀스택 단독 구축 — 실시간 채팅·CRDT 동시편집·전자결재·근태·회계 20개 도메인
개발 · 기획
SaaSㆍ솔루션, ERP 전사자원관리
프로젝트 배경
사내 협업 도구가 채팅 따로, 결재 따로, 근태·회계 따로 흩어져 있었다. 화면을 옮길 때마다 로그인과 맥락이 끊겼고, 개인 PC에 쌓인 파일은 담당자가 바뀌면 사라졌다. 부서마다 다른 도구를 오가느라 새는 시간을 한곳에서 끝내는 웹 그룹웨어가 필요했다. 기획부터 배포까지 혼자 맡았다.
프로젝트 성과
저장 용량 8.6GB→0.9GB
CRDT 동시편집 로그가 프로젝트당 8.6GB까지 불었다. 바이트 단위 압축과 오래된 기록 정리로 0.9GB로 약 90% 줄였다.
실시간 부하에도 안 멈추는 워커
메모리로 죽던 원인은 증설이 아니라, 끊긴 연결이 매 전송마다 밀려나던 팬아웃이었다. 연결 즉시 축출·큐 상한·워커 재활용으로 장시간 부하에도 멈추지 않게 했다.
20만 줄 단독 개발
직접 작성한 소스 기준 프론트 14.6만·백엔드 6.2만 줄. API 609개, DB 테이블 113개, 16개 업무 도메인을 라이브 데모에서 확인할 수 있다.
쿼리 오버페치 제거
부모 행마다 대용량 바이너리를 중복으로 끌어오던 쿼리를 54개 파일에서 걷어내, 동작은 그대로 두고 메모리 압박만 없앴다.
360px 모바일까지 반응형
데스크톱 전용으로 짠 20만 줄을 360px까지 다시 손봐, 라이브에서 가로 넘침·한글 깨짐 0으로 확인했다.
핵심 기능
실시간 채팅
WebSocket 단일 통로로 폴링 없이 메시지와 읽음 상태를 처리한다. 끊기면 재연결하며 놓친 이벤트를 따라잡는다.
진행 단계
기획·설계
2025.01
16개 도메인 범위를 확정하고 데이터 모델과 실시간·권한 구조를 설계했다.
프로젝트 상세
프론트는 React 18과 TypeScript(Vite), 백엔드는 FastAPI, 데이터는 PostgreSQL과 pgvector, 실시간은 WebSocket 한 줄기로 잡았다. 채팅과 알림은 폴링을 쓰지 않는다. WebSocket을 유일한 통로로 삼아서, 끊기면 재연결하며 놓친 이벤트를 따라잡는 방식으로 맞췄다. 읽음·안읽음 같은 상태는 클라이언트가 제각각 세지 않고 서버가 정답을 갖는다. 가장 까다로

비슷한 프로젝트를 준비 중이라면?
위시켓 매니저와 상담하세요.

참여 개발사와 미팅 연결

프로젝트 1:1 컨설팅 제공

무료로 프로젝트 등록하기

작업한 파트너 프로필 보기

su******
개발 · 개인사업자

프로젝트 정보

참여 기간
2025.01. ~ 2025.06.
참여율
참여율이 100%인 프로젝트는 해당 파트너님이 온전히 작업한 결과물입니다.
외부 공동 작업의 경우 기여도에 따라 참여율이 달라지며 역할, 프로젝트 설명을 통해 업무 분야 및 참여 범위를 확인할 수 있습니다.
100%
역할
단독 개발 (기획·설계·프론트엔드·백엔드·인프라·배포)
관련 기술
TypeScript
PostgreSQL
Docker
JavaScript
Redis
React
Nginx
Python