investica refactoring

topics 800-프로젝트 300-백엔드개발
types 최적화 학습
contexts 프로젝트
tags #nestjs #refactoring #architecture

investica refactoring

Investica 프로젝트를 진행하면서 코드 구조 개선과 아키텍처 리팩토링을 고민했다.

학습한 내용

Mapper vs Repository 패턴

NestJS에서 데이터 접근 계층을 어떻게 구성할지 고민했다.

Repository 패턴

  • 도메인 객체와 데이터 저장소 사이의 중재자 역할
  • 비즈니스 로직에서 데이터 저장 방식을 추상화

Mapper 패턼

  • DTO와 Entity 간 변환 담당
  • 레이어 간 데이터 형식 변환

왜 둘 다 필요한가: Repository는 데이터 접근을, Mapper는 데이터 변환을 담당한다. 관심사의 분리가 명확하다

헥사고날 아키텍처 적용 고민

계층형 아키텍처에서 헥사고날 아키텍처로의 전환을 고려했다.

장점

  • 비즈니스 로직이 외부 의존성으로부터 독립적
  • 테스트 용이성 향상
  • 포트와 어댑터 분리로 유연성 확보

단점

  • 초기 구조 설계 복잡도 증가
  • 학습 곡선이 높다

참고 자료

결론

본인의 경우, Investica는 짧은 기간의 데모 프로젝트이다 보니 전통적인 Repository 패턴과 Mapper 분리 구조를 선택했다. 헥사고날 아키텍처는 다음 프로젝트에 도입해볼 예정이다.

관련 문서