2. NestJS & TypeORM 환경에서 Monorepo 구성하기 - TypeORM 추가하기



• Monorepo 프로젝트에 TypeORM을 추가하기 위해 필요한 패키지를 설치하고, 로컬에서 실행할 PostgreSQL DB를 위한 docker-compose.yml 파일을 생성한다. 이후 DB를 실행시킨다.
• 프로젝트의 핵심 비지니스 로직을 가지고 있는 객체들이 모여있는 모듈인 Entity를 추가한다. 여기서는 User Entity와 Repository 클래스를 Data Mapper 패턴으로 만든다.
• TypeORM에서는 Active Record 패턴과 Data Mapper 패턴을 지원하며, 작은 앱에서는 어느 패턴을 사용해도 상관없지만 유지보수와 확장성을 고려하면 Data Mapper 패턴을 선호한다. Data Mapper 패턴은 도메인을 Persistence와 완전히 분리하여, 데이터베이스를 도메인 객체에서 격리시키고, 이로 인해 비즈니스 로직이 복잡한 경우 상대적으로 유지보수하기 쉽다.
• Data Mapper 패턴은 확장 가능성이 높아, TypeORM이 더 이상 발전하지 못해 다른 ORM을 사용해야 할 경우, 데이터 저장소가 RDBMS가 아니라 MongoDB, Redis, DynamoDB 등으로 전환이 필요할 때, 회원을 담당하는 로직 자체가 마이크로 서비스로 별도의 서비스로 분리되어 API 통신으로 진행해야 할 경우 등 다양한 상황에서 유용하다.

북마크
공유하기
신고하기