
강의실 개편
두줄요약
강의실을 React·NestJS·MikroORM 기반으로 재구현하고 기존 서버를 인증 게이트웨이로 유지했습니다. 테스트와 계층화로 유지보수성을 높이고 ORM 의존성 한계도 점검했습니다.
문제 상황
- FxJS·FxSQL 기반 동적 타입 코드의 필드 추적, nullable 검증, 신규 입사자 적응 부담
- 클라이언트 빌드를 포함한 로컬 서버 초기 실행 1분 이상, 재시작 10~20초
- 단일 강의실 API의 과도한 테이블 조회와 최대 약 30kB JSON 응답
해결 방법
- DB 스키마 변경 없이 강의실 기능을 React, NestJS, TypeScript, MikroORM 기반으로 재구현
- Layered Architecture와 의존성 주입 적용, ORM 의존 코드를 repository 계층으로 한정
- 기존 동작 분석 결과를 테스트 케이스로 작성해 기능 동등성 검증
구조와 흐름
- 기존 서버의 세션 인증 및 API gateway 역할 유지
- CDN의 React 정적 파일 로드 후 기존 서버 경유로 신규 서버에 세션 정보 전달
- 신규 서버의 DB 조회 결과를 기존 서버를 통해 클라이언트로 반환
트레이드오프
- 코드 라인 증가와 ORM 제약에도 유지보수성 및 팀 친화적 구조 선택
- MikroORM의 지속 관리와 타입 안정성 장점, Query Builder·엔티티 wrapper 의존성 한계
- 테스트 코드 작성 비용과 장기적 버그 대응·코드베이스 적응 효율성 교환


