카테고리 없음

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

Laftel 2025. 4. 24. 17:24
반응형

***본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다
Movie 엔티티와 Genre 엔티티 간의 @ManyToMany 관계를 설정하고, 이를 위한 API 엔드포인트를 구현하는 과정을 학습하면서 관계형 데이터베이스 모델링의 복잡성과 유연성, 그리고 다대다 관계를 효율적으로 관리하기 위한 전략의 중요성을 깊이 깨달았습니다. 특히, 중간 테이블(Join Table)의 역할과 데이터 연결 및 관리 방식에 대한 이해를 넓힐 수 있었습니다.
첫째, 현실 세계의 복잡한 다대다 관계를 데이터베이스로 효과적으로 표현하는 @ManyToMany 관계의 강력함을 실감했습니다. 하나의 영화가 여러 장르에 속할 수 있고, 하나의 장르에 여러 영화가 속할 수 있는 다대다 관계는 현실 세계에서 흔히 발생하는 복잡한 관계성을 데이터베이스에 자연스럽게 반영할 수 있도록 해줍니다. 이는 데이터 모델의 표현력을 높이고, 다양한 비즈니스 요구사항을 충족시키는 데 필수적인 기능이라고 생각합니다. 마치 여러 명의 학생이 여러 개의 동아리에 가입할 수 있는 상황을 모델링하는 것처럼, @ManyToMany 관계는 엔티티 간의 자유로운 연결성을 효과적으로 표현합니다.
둘째, 다대다 관계를 관리하기 위한 중간 테이블(Join Table)의 역할과 중요성을 명확히 이해했습니다. @ManyToMany 관계는 물리적으로 두 엔티티 테이블 외에 관계를 관리하기 위한 별도의 중간 테이블을 생성합니다. 이 중간 테이블은 양쪽 엔티티의 외래 키를 포함하여 레코드 간의 연결 정보를 저장하며, 다대다 관계를 효율적으로 관리하고 데이터를 연결하는 핵심적인 역할을 수행합니다. 마치 복잡한 도로망에서 여러 도시를 연결하는 고속도로와 같은 역할을 하여, 엔티티 간의 다양한 연결 경로를 효율적으로 관리할 수 있도록 돕습니다.
셋째, @ManyToMany 관계에서 데이터를 생성하고 관리할 때의 복잡성과 주의사항을 인지했습니다. 영화와 장르 간의 관계를 설정할 때, 단순히 영화와 장르 엔티티를 생성하는 것 외에도 중간 테이블에 연결 정보를 추가하고 관리해야 합니다. 또한, 관계를 업데이트하거나 삭제할 때 중간 테이블의 데이터도 함께 고려해야 하므로, 데이터 일관성을 유지하기 위한 세심한 처리가 필요합니다. 마치 여러 사람이 함께 사용하는 공유 폴더에서 파일을 관리하는 것처럼, 다대다 관계에서는 연결 정보를 정확하게 유지하고 관리하는 것이 중요합니다.
넷째, TypeORM에서 @JoinTable 데코레이터를 사용하여 중간 테이블의 속성과 관계를 명시적으로 정의하는 방법을 학습했습니다. @JoinTable 데코레이터를 통해 중간 테이블의 이름, 외래 키 컬럼 이름, 참조하는 테이블 등을 상세하게 설정함으로써 데이터베이스 스키마를 원하는 대로 구성하고 관계를 효과적으로 관리할 수 있습니다. 이는 ORM의 편리함을 유지하면서도 데이터베이스 설계를 세밀하게 제어할 수 있도록 돕는 중요한 기능이라고 생각합니다. 마치 악보에 연주 방법과 속도를 상세하게 지시하는 것처럼, @JoinTable은 다대다 관계를 위한 중간 테이블의 구조와 동작 방식을 명확하게 정의합니다.
**다섯째, 다대다 관계와 관련된 데이터를 효율적으로 조회하기 위한 다양한 TypeORM 쿼리 옵션과 관계 로딩 전략(Eager/Lazy Loading)**의 중요성을 깨달았습니다. 영화와 장르 목록을 함께 조회하거나, 특정 장르에 속하는 영화 목록을 조회하는 등 다양한 데이터 접근 패턴에 따라 적절한 쿼리 옵션과 로딩 전략을 선택하는 것은 애플리케이션의 성능에 큰 영향을 미칩니다. 따라서 데이터 접근 방식을 고려하여 효율적인 데이터 조회 전략을 수립하는 것이 중요합니다. 마치 복잡한 검색 엔진에서 다양한 검색 옵션을 활용하여 원하는 정보를 빠르게 찾는 것처럼, TypeORM의 쿼리 기능을 숙달하는 것은 효율적인 데이터 관리를 위한 필수적인 능력입니다.
마지막으로, @ManyToMany 관계 설정 및 엔드포인트 작업은 애플리케이션의 핵심 비즈니스 로직을 구현하고 다양한 데이터 연관성을 효과적으로 제공하는 기반임을 다시 한번 강조하고 싶습니다. 영화와 장르 간의 관계를 통해 영화 목록을 장르별로 필터링하거나, 특정 장르의 인기 영화를 추천하는 등 다양한 비즈니스 요구사항을 충족시킬 수 있습니다. 따라서 다대다 관계를 포함한 데이터 모델링은 애플리케이션의 기능 요구사항을 정확히 이해하고, 이를 효율적인 데이터 구조와 API 엔드포인트로 구현하는 데 초점을 맞춰야 한다는 인사이트를 얻었습니다. 마치 다양한 재료를 조합하여 새로운 요리를 만드는 것처럼, 다대다 관계는 다양한 데이터 간의 연관성을 활용하여 풍부한 기능을 제공하는 데 중요한 역할을 합니다.
이번 @ManyToMany 관계 설정 및 엔드포인트 작업 학습을 통해 복잡한 데이터 관계를 모델링하고 관리하는 방법을 이해했으며, 실제 애플리케이션 개발에서 이러한 관계를 효율적으로 활용하는 전략에 대해 깊이 생각해보는 계기가 되었습니다. 앞으로 더욱 다양한 다대다 관계 시나리오를 경험하고, 데이터 접근 성능 최적화 기법을 학습하면서 더욱 확장성 있고 효율적인 백엔드 애플리케이션을 개발하는 데 기여하고 싶습니다


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

반응형