목록 보기
강의실 개편
백엔드

강의실 개편

인프런
인프런
2022년 7월 18일

두줄요약

강의실을 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 의존성 한계
  • 테스트 코드 작성 비용과 장기적 버그 대응·코드베이스 적응 효율성 교환

다음 읽기

#NestJS 주제를 다룬 다른 회사 글

NestJS v10 업데이트의 여정

NestJS v10 업데이트 과정에서 주요 변경점과 호환성 문제를 정리했습니다. 공통 라이브러리와 토큰 매핑을 활용해 점진적으로 마이그레이션하는 방법을 소개했습니다.

모두싸인
모두싸인
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...