카테고리 없음

패스트캠퍼스 환급챌린지 42일차 : 코드팩토리의 백엔드 아카데미 : 한 번에 끝내는 NestJS 패키지 - 기초부터 MSA까지 강의 후기

Laftel 2025. 4. 15. 17:54
반응형

***본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다 
TypeORM 엔티티 상속을 학습하면서 코드의 재사용성을 높이고 데이터 모델을 더욱 명확하게 구조화할 수 있는 강력한 방법을 이해하게 되었습니다. 단순히 반복되는 컬럼 정의를 줄이는 것을 넘어, 객체 지향 프로그래밍의 핵심 원칙인 상속을 데이터베이스 모델링에 적용함으로써 얻는 다양한 이점을 체감할 수 있었습니다.
첫째, 코드 중복 감소와 유지보수성 향상을 직접적으로 경험했습니다. createdAt, updatedAt, version과 같이 여러 엔티티에서 공통적으로 사용되는 컬럼들을 BaseEntity라는 추상 클래스로 분리하고, 이를 상속받아 사용하는 방식은 코드의 중복을 효과적으로 제거했습니다. 이는 코드베이스를 더욱 간결하고 이해하기 쉽게 만들어 유지보수성을 크게 향상시키는 요인이라고 생각합니다. 마치 여러 문서에서 반복되는 회사 정보를 BaseDocument 클래스로 관리하고, 각 문서 클래스가 이를 상속받아 사용하는 것과 유사한 효율성을 느꼈습니다.
둘째, 데이터 모델링의 일관성 확보와 설계 효율 증대를 확인했습니다. 모든 엔티티가 BaseEntity를 상속받도록 강제함으로써, 애플리케이션 전반에 걸쳐 공통 컬럼들의 존재와 속성 정의를 일관되게 유지할 수 있게 되었습니다. 이는 데이터베이스 스키마를 설계할 때 각 엔티티마다 공통 컬럼을 반복적으로 정의해야 하는 번거로움을 줄여주고, 설계 과정을 더욱 효율적으로 만들어줍니다. 마치 건축 설계에서 모든 건물의 기초 공사 방식을 통일함으로써 설계 시간을 단축하고 시공의 일관성을 확보하는 것과 유사한 효과를 느꼈습니다.
셋째, 객체 지향 설계의 장점을 데이터베이스 모델링으로 확장할 수 있다는 점이 흥미로웠습니다. 상속은 클래스 간의 "IS-A" 관계를 명확하게 표현하는 객체 지향 프로그래밍의 핵심 개념입니다. 이를 엔티티 모델링에 적용함으로써, 데이터베이스 테이블 간에도 논리적인 상속 관계를 설정하고 이를 코드에 반영할 수 있게 되었습니다. 이는 데이터 모델을 더욱 직관적이고 이해하기 쉽게 만들어, 도메인 모델과 데이터베이스 모델 간의 불일치를 줄이는 데 기여한다고 생각합니다. 마치 생물 분류 체계처럼, 공통 속성을 가진 엔티티들을 묶어 관리함으로써 데이터 모델의 구조를 더욱 명확하게 표현할 수 있습니다.
넷째, TypeORM의 유연성이 상속을 통해 더욱 강력해짐을 느꼈습니다. TypeORM은 다양한 상속 전략을 지원하며, 개발자는 프로젝트의 요구사항에 따라 가장 적합한 전략을 선택할 수 있습니다. 단일 테이블 상속(Single Table Inheritance, STI), 클래스 테이블 상속(Class Table Inheritance, CTI), 조인 테이블 상속(Joined Table Inheritance, JTI) 등 다양한 옵션을 통해 데이터베이스 스키마를 최적화하고, 쿼리 성능을 향상시킬 수 있습니다. 이는 단순히 코드를 재사용하는 것을 넘어, 데이터베이스 설계까지 고려한 유연한 모델링을 가능하게 한다는 점에서 큰 매력을 느꼈습니다. 마치 다양한 건축 자재를 활용하여 건물의 용도와 디자인에 최적화된 구조를 만들 수 있는 것과 유사한 유연성을 제공한다고 생각합니다.
마지막으로, 엔티티 상속은 단순히 기술적인 편의성을 넘어 도메인 모델링의 깊이를 더할 수 있는 중요한 도구라는 인사이트를 얻었습니다. 공통 속성을 가진 엔티티들을 묶어 추상화하고, 구체적인 엔티티들이 이를 상속받아 자신만의 고유한 속성을 가짐으로써, 현실 세계의 복잡한 관계를 더욱 정확하게 데이터 모델에 반영할 수 있습니다. 이는 애플리케이션의 요구사항을 더욱 충실하게 구현하고, 비즈니스 로직을 보다 명확하게 표현하는 데 기여한다고 생각합니다. 마치 복잡한 가족 관계를 상속이라는 개념을 통해 명확하게 이해하고 표현할 수 있는 것처럼, 엔티티 상속은 데이터 모델링을 더욱 풍부하고 의미있게 만들어줍니다.
이번 학습을 통해 TypeORM의 엔티티 상속 기능은 코드 재사용성을 높이는 것은 물론, 데이터 모델링의 일관성과 설계 효율성을 증대시키고, 객체 지향 설계의 장점을 데이터베이스 레벨로 확장하는 강력한 도구임을 깨달았습니다. 앞으로 다양한 상속 전략들을 깊이 있게 탐구하고, 실제 프로젝트에 적용하여 더욱 효과적인 데이터 모델링을 경험해보고 싶습니다.


#패스트캠퍼스 #직장인자기계발 #직장인공부 #환급챌린지 #패스트캠퍼스후기 #오공완
https://bit.ly/4hTSJNB

반응형