인프런 커뮤니티 질문&답변

Risha님의 프로필 이미지
Risha

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

TypeORM 데이터 조회

해결된 질문

작성

·

159

0

안녕하세요!
개인 프로젝트를 진행 하면서 도저히 이해가 안되는 부분이 있어서 이렇게 글을 올려봅니다.

 

스크린샷 2024-05-28 14-34-17.png

userId 에 다대일로 User entity를 연결하고

 

스크린샷 2024-05-28 14-51-29.png

스크린샷 2024-05-28 14-40-50.png

사진과 같이 userId 에서 데이터를 불러온후

result 에서 조건에 맞게 데이터를 조회하려는데 타입이 맞지 않다면서 불러올 수 없었던 적이 많았습니다.
결국 방법을 찾지 못해서 쿼리빌더를 이용하여 데이터를 조회하는 방법으로 해결을 하고 있습니다.

 

타입이 맞지 않을때는 어쩔 수 없이 조회를 할 수 없는 것인지, 아니면 방법이 있는 것인지 궁금합니다!

답변 1

1

안녕하세요, 인프런 AI 인턴입니다.

Risha님의 질문 주셔서 감사합니다.

TypeORM에서 데이터를 조회할 때 타입 불일치로 인한 문제는 비교적 흔한 이슈 중 하나입니다. 이러한 문제가 발생하는 가장 큰 이유는 엔티티 정의 시 설정한 타입과 데이터베이스에 실제 저장된 데이터 타입이 일치하지 않을 때 발생할 수 있습니다. 또한, TypeScript의 타입 시스템과 TypeORM의 동적 쿼리 생성 방식 사이에 발생하는 타입 불일치도 원인일 수 있습니다.

쿼리빌더를 사용하여 문제를 해결하셨다고 하셨는데, 이는 유용한 우회 방법 중 하나입니다. 쿼리빌더를 사용하면 더 세밀하게 데이터 타입을 제어하고, 복잡한 쿼리를 생성할 때 발생할 수 있는 타입 불일치 문제를 회피할 수 있기 때문입니다.

다른 해결 방법으로는 다음과 같은 점들을 고려해볼 수 있습니다:

  1. 엔티티 및 데이터베이스 스키마 검토: 엔티티 정의 시 사용되는 타입과 데이터베이스 스키마가 정확히 일치하는지 확인합니다. 가령, TypeScript의 string 타입과 데이터베이스의 varchar, text 등과의 정확한 매칭이 중요합니다.

  2. TypeORM 옵션 조정: TypeORM 설정에서 strict 옵션을 조정하여 타입 체크의 엄격성을 조절할 수 있습니다. 이를 통해 일부 타입 불일치 문제를 관리할 수 있습니다.

  3. 사용자 정의 캐스팅 및 변환기 사용: TypeORM은 사용자 정의 타입 변환을 지원합니다. 이를 통해 데이터베이스에서 읽거나 쓰기 전에 특정 타입의 데이터를 원하는 형식으로 변환할 수 있습니다. 이 기능을 사용하여 타입 불일치 문제를 해결할 수 있습니다.

  4. TypeORM의 최신 버전 사용여부 확인: 때로는 TypeORM 자체의 버그나 한계로 인해 타입 불일치 문제가 발생할 수 있습니다. TypeORM의 최신 버전을 사용하여 이러한 문제가 해결되었는지 확인해보세요.

기술적 문제에는 여러 해결 방법이 있을 수 있으므로, 상황에 따라 가장 적절한 접근 방법을 선택하는 것이 중요합니다.

타입 불일치 문제는 종종 복잡할 수 있지만, 이러한 방법을 통해 해결책을 찾으시길 바랍니다. 추가적으로 궁금한 사항이 있다면 언제든지 질문해주세요.

Risha님의 프로필 이미지
Risha

작성한 질문수

질문하기