인프런 강의실 개편, NestJS와 MikroORM 도입 후기
by DD
3년 전
조회수 0
FxJS, FxSQL 기반의 레거시 코드에서 NestJS, MikroORM 기반의 신규 스택으로 전환
동적 타입 언어의 문제점과 서버 시작 속도 저하 등 기존 시스템의 문제점 분석
테스트 코드 도입 및 MikroORM 사용 경험 공유, 코드 라인 수 증가에도 유지보수성 향상
레거시 시스템의 문제점
기존 인프런 강의실은 FxJS 기반의 함수형 프로그래밍 방식으로 구현되어, 동적 타입으로 인한 개발 생산성 저하가 있었다. 따라서 IDE 지원 부족으로 인한 오타, 널러블 필드 처리 누락 등의 문제가 발생했다. 서버 시작 속도 또한 1분 이상 소요되어 개발 효율성을 저해했다.
MikroORM 도입과 기술적 선택
TypeORM의 단점을 보완하고자 MikroORM을 도입했지만, Query Builder의 기능 제약과 엔티티 선언 방식의 불편함이 존재했다. 구체적으로, joinAndSelect 사용 시 불필요한 필드까지 조회되는 문제가 있었고, IdentifiedReference 사용으로 인해 라이브러리 의존성이 높아졌다.
테스트 코드의 중요성
이번 프로젝트에서 테스트 코드 작성을 최우선 목표로 삼고, 기존 로직을 테스트 케이스로 구현했다. 따라서 레거시 코드의 문제점을 파악하고, 새로운 요구사항 반영 시 코드 수정의 두려움을 줄일 수 있었다. 결과적으로, 유지보수성 향상에 기여했다.