MZC-LMS: 멀티테넌트 SaaS 기반 학습 관리 시스템
7인 풀스택 분산팀 개발 팀장
과천 3명 + 부산 4명, 디자이너 각 1명 포함
책임 범위: 아키텍처 설계, 기술 스택 결정, 모듈 분할 기준 수립, 스프린트 계획 및 우선순위 결정
Java 21
Spring Boot 3.4
Spring Security
JPA/QueryDSL
React 19
TypeScript 5.6
AWS
Docker
SonarQube
Claude Opus 4.5
성과
- 6개 핵심 모듈 설계/구현 → 12스프린트 100% 일정 완주
- 메가존클라우드 사내 플랫폼 도입 검토 대상 선정
1. 문제해결
[멀티테넌시 데이터 격리]
- 문제: 테넌트 간 데이터 조회 가능한 보안 이슈
- 해결: 3단계 격리 체계 (도메인 식별 → JWT tenant_id 검증 → JPA Row-level 필터링), 인덱스 전략 병행
- 성과: 데이터 격리 100%, 신규 테넌트 코드 수정 없이 자동 적용
[모듈 간 통신 재설계]
- 문제: TS↔IIS 양방향 호출로 Race Condition/데드락 위험
- 해결: Master-Sub 관계 정의 → 단방향 통신 재설계
- 성과: 모듈 간 의존성 명확화, 독립적 배포/테스트 가능
[권한 체계 확장]
- 문제: 초기 2단계(ADMIN/USER) 설계로 요구사항 수용 불가
- 해결: 6계층 RBAC 재설계 (SYSTEM_ADMIN→TENANT_ADMIN→OPERATOR→DESIGNER→INSTRUCTOR→USER)
- 성과: 2개 비즈니스 모델(B2C/B2B) 단일 권한 체계로 통합 관리
2. 생산성 증가
[맥도날드 시스템 - LLM 기반 개발 표준화 프레임워크]
- 컨셉: "누가 LLM을 사용해도 동일한 품질의 코드가 나온다"
- 배경: LLM 활용 시 결과물 편차 (코드 스타일 불일치, 환각 현상, 컨벤션 위반)
- 액션: 대기업 사례 참고 → 컨텍스트 문서 + 프롬프트 템플릿 표준화
- 성과: 컨벤션 위반 70% 감소, 신규 팀원 즉시 투입 가능
[2중 코드 리뷰 + CI/CD]
- LLM 리뷰 → SonarQube 정적 분석 → GitHub Actions 자동 배포
- 성과: 휴먼 에러 사전 차단, 리뷰 커버리지 100%
3. 의사소통
[분산 팀 협업]
- Daily Scrum 기반 협업 체계 정착, 12주간 블로커 조기 발견/해소
- 성과: 12스프린트 전체 일정 완주 (지연 0건)
[개발-디자인 충돌 해결]
- Daily Scrum 디자이너 참여, 기술 제약 시각화 + UX 근거 공유 양방향 소통
- 성과: UX 유지 + 일정 내 구현, 크로스펑셔널 협업 문화 구축
담당 모듈 (전체 8개 중 6개, 부산팀 전담)
| 모듈 |
주요 기능 |
| SA/TA |
테넌트 생성/관리, 브랜딩 설정 |
| UM |
JWT 인증, 6계층 RBAC 권한 관리 |
| TS |
강의 일정 관리, 스케줄 충돌 검사 |
| SIS/IIS |
학생/강사 정보 관리, 수강 신청 |