-
내용 꼭 정리하기*****//NestJS와 TypeORM에서 Entity 생성 및 저장 시 주의사항TIL (Today I Learned) 2024. 1. 2. 23:36
NestJS와 TypeORM을 사용하여 애플리케이션을 개발하는 동안 Entity를 생성하고 저장하는 과정에서 발생할 수 있는 다양한 상황에 대해 알아봅니다. TypeScript와 TypeORM이 어떻게 상호 작용하는지를 이해하면서 효율적이고 안정적인 코드를 작성하는데 도움이 될 것입니다.
# TypeScript와 데코레이터의 동작 차이
NestJS와 TypeORM을 사용하면 데코레이터를 통해 Entity를 정의하게 됩니다. 그러나 TypeScript는 정적 타입 언어이기 때문에, 컴파일 시점에 타입 정보를 확인합니다. TypeORM의 데코레이터는 런타임에 동적으로 동작하며, 이로 인해 Entity 생성 시점과 TypeScript의 런타임이 일치하지 않을 수 있습니다.
# Entity 생성 예시
// example.entity.ts import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm'; @Entity() export class ExampleEntity { @PrimaryGeneratedColumn() id: number; @Column() name: string; }
# Service 코드 작성
Entity를 저장하는 Service 코드를 작성하는 과정에서 id 값을 얻는 방법에 대해 다양한 시나리오를 살펴봅니다.
async/await 사용
// example.service.ts async createExample(exampleData: Partial<ExampleEntity>): Promise<ExampleEntity> { const example = this.exampleRepository.create(exampleData); const savedExample = await this.exampleRepository.save(example); return savedExample; }
save 메소드 사용
// example.service.ts async createExample(exampleData: Partial<ExampleEntity>): Promise<ExampleEntity> { const savedExample = await this.exampleRepository.save(exampleData); return savedExample; }
id 값을 불러오지 못하는 이슈와 해결책
Entity를 저장한 후 id 값을 불러올 때 발생하는 문제에 대한 원인과 해결 전략에 대해 자세히 알아봅니다. async/await나 save 메소드를 통해 이 문제를 극복할 수 있습니다.
# 데이터베이스로 올라갈 때의 차이점과 주의사항
데이터베이스 설정, 환경, 연결 등이 데이터베이스로 올라갈 때의 동작에 영향을 줄 수 있습니다. 배포 전에 테스트를 통해 예상치 못한 동작에 대비하는 것이 중요합니다.
'TIL (Today I Learned)' 카테고리의 다른 글
LexoRank에 대하여**** (1) 2024.01.10 메모장-LexoRank (0) 2024.01.05 NestJS_온라인 공연 예매 서비스 프로젝트_entity 관계 설정 수정 (0) 2023.12.29 NestJS_온라인 공연 예매 서비스 프로젝트 5편_공연 기능 구현(수정중) (1) 2023.12.28 NestJS_온라인 공연 예매 서비스 프로젝트 4편_유저기능 구현(회원가입 및 로그인[下]) (0) 2023.12.27