Enterprise Platform

사내 그룹웨어 플랫폼

MSA 기반 그룹웨어 플랫폼 설계부터 배포까지

기간
2025.03 — 2026.08
규모
2–3명
역할
기획 · 아키텍처 · 풀스택 · DevOps

분산된 협업과 업무 관리 기능을 하나의 서비스로 통합하도록 설계한 MSA 기반 그룹웨어 플랫폼입니다. 메일·전자결재·게시판 등 기본 기능에 근태·연차 프로세스를 연동하고, 필요한 솔루션의 공백에는 직접 MVP를 구축하며 구조 설계부터 배포까지 전 과정을 주도했습니다.

11→10서비스 재구성으로 개발 환경 메모리 절감
사내 그룹웨어 플랫폼 대표 이미지
01 · Context

확장 가능한 그룹웨어를 처음부터 설계하다

메일, 게시판, 전자결재, 캘린더, 근태 등 서로 다른 업무 도메인을 하나의 플랫폼 안에서 일관되게 제공해야 했습니다.

기업별 데이터와 권한이 분리되는 멀티 테넌시 구조를 기반으로, 개발자에게는 찾기 쉬운 코드 구조를, 사용자에게는 학습이 적은 인터페이스를 목표로 삼았습니다.

  • 기획·설계·개발 리드 및 타사 서비스 분석을 통한 화면·기능 설계
  • Next.js·NestJS와 API Gateway 중심 MSA 구조
  • React Native 모바일 앱 AI 활용 0→1 구축
그룹웨어 초기 화면 레이아웃
초기 홈 대시보드 화면 기획
02 · Problem 01

이벤트 처리 모듈과 발행 모듈을 분리하다

낮은 결합도를 목표로 11개의 마이크로서비스를 구성했지만 개발 중 OutOfMemory와 CPU 사용량 증가로 기동이 멈추는 현상이 발생했습니다.

자원 모니터링과 로그를 확인한 뒤 유사 도메인 한 쌍을 통합해 서비스 수를 11개에서 10개로 조정하고, 서비스 구성과 DB 커넥션 구조를 함께 리팩터링했습니다. 낮은 결합도와 현실적으로 활용 가능한 자원의 한계를 함께 고려해야 한다는 점을 배웠습니다.

  • 유사 도메인 통합과 서비스 경계 재정의
  • 서비스 구성 및 DB 커넥션 구조 점검·리팩터링
  • 개발 환경의 메모리 부담과 응답 지연 완화
그룹웨어 MSA 아키텍처
리소스 최적화 이후 서비스 아키텍처
03 · Problem 02

메인 요청과 후처리 이벤트의 생명주기를 분리하다

메인 기능 트랜잭션에 푸시 알림과 메일 발송 로직이 동기적으로 묶여 있어 연동 지연이나 실패가 핵심 기능의 오류로 전파되고, 긴 발송 로직을 함수마다 재작성하는 중복이 발생했습니다.

Kafka와 RabbitMQ를 비교한 뒤 대규모 스트리밍보다 이벤트 라우팅이 중요한 프로젝트 특성에 맞춰 RabbitMQ를 선택했습니다. 각 서비스에는 이벤트 발행 모듈을, Notification 서비스에는 처리 모듈을 구성했습니다.

  • 이벤트 발행 모듈과 처리 모듈 분리
  • 메인 API를 막지 않는 비동기 후처리
  • 팀 공통 이벤트 발행 규칙과 재사용 구조 정립
04 · Domain

인사 담당자와 협업해 근태·연차 프로세스를 자동 연동하다

메일·전자결재·게시판에 더해 근태와 연차 업무를 하나의 플랫폼에서 처리할 수 있도록 인사 담당자와 협업했습니다.

연차·반차 반영 방식, 연차 차감 기준과 근태 인정 범위의 기본 규칙 및 예외 조건을 정리하고, 복잡한 예외를 흡수하는 정책 생성 프로세스와 비즈니스 로직을 설계했습니다. 프로세스에 따라 근태·연차 데이터가 그룹웨어에 자동 반영되도록 구현했습니다.

  • 인사 담당자 피드백 기반 요구사항 도출
  • 연차·반차 및 근태 인정 범위의 기본·예외 규칙 정리
  • 복잡한 예외 조건을 흡수하는 정책 생성 프로세스 설계
  • 반복 수동 업무를 줄이는 그룹웨어 자동 연동
05 · 0 to 1

외부 솔루션의 공백을 AI 활용 메신저 MVP로 대응하다

외부 메신저 솔루션 도입이 어려워져 사내 실시간 소통 기능을 별도로 마련해야 했습니다.

그룹웨어 안에서의 위치와 사용 흐름을 먼저 정하고 1:1 채팅, 파일 첨부, 클립보드 이미지 붙여넣기를 MVP 범위로 정의했습니다. AI 도구를 활용해 Node.js와 WebSocket 기반 기능을 구현하고 3일 안에 필요한 범위의 MVP를 완성했습니다.

  • 그룹웨어 내 메신저 화면 위치와 사용 흐름 설계
  • 1:1 채팅·파일 첨부·클립보드 이미지 붙여넣기 구현
  • Node.js·WebSocket 기반 실시간 메신저 MVP
  • AI 도구를 활용해 3일 만에 요구사항 구현
06 · Cowork

AI를 쓰는 팀의 코드 정합성을 문서로 지키다

AI 도구 활용이 늘면서 팀원마다 다른 코드 패턴과 중복 함수·컴포넌트가 생성되기 시작했습니다.

폴더 구조, 컴포넌트 재사용 기준, API 호출 패턴과 커밋 규칙을 주제별 Markdown 문서로 명문화하고, 관련 문서의 경로와 참조 순서를 안내하는 인덱스를 구성했습니다. 프롬프트에는 인덱스 번호를 전달해 AI가 필요한 문서만 선택적으로 참고하도록 했습니다.

  • 주제별 가이드와 문서 경로를 체계화한 인덱스 구조
  • 프롬프트 내 인덱스 기반 선택적 문서 참조
  • 코드 패턴 일관성 확보와 중복 생성 억제
  • 불필요한 컨텍스트 로딩을 줄여 토큰 사용 효율 개선
07 · Delivery

인프라팀 가이드를 바탕으로 GitOps 배포와 가오픈까지

완료된 기능이 검증 단계를 거쳐 가오픈 환경에 안정적으로 반영되도록 GitHub 브랜치 흐름을 정리했습니다.

인프라팀이 제공한 가이드에 따라 Helm 차트 기반 GitOps 배포 구성을 작성하고, development에서 통합한 기능을 stage에서 검증한 뒤 production에 반영했습니다. 브랜치 merge 후 Jenkins에서 빌드·이미지를 푸시하고 ArgoCD가 배포하는 흐름을 시스템에 적용했습니다.

  • 방화벽 등 기반 인프라 설정을 인프라팀과 협업
  • 인프라팀 가이드에 따른 Helm 기반 GitOps 배포 구성
  • development → stage → production 브랜치 전략
  • AI 기반 오류 검증을 활용한 Kubernetes 가오픈 배포
Outcome

결과로 남은 것

11→10서비스 경계 재정의
3일메신저 MVP 0→1 구축
GitOpsKubernetes 가오픈 배포
Next.jsNestJSTypeORMMariaDBRabbitMQKubernetesJenkins
Next project

사내 자산 관리 시스템