inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

10-08 N:M 등록 / 조회 API

10-08 숙제 정답 질문입니다.

해결된 질문

221

작성자 없음

작성한 질문수 0

0

타입 문제라고 해서
dto랑 product.entity에 타입이 서로 각각

string[] , ProductTag[] 로 서로 다른 타입으로 설정 했더라구요 그래서 그냥 똑같이 ProductTag[] 으로 똑같이 설정 했더니 오류는 사라졌습니다 근데 이게 정답이 맞나요?

수정 전 dto
@Field(() => [String])
  productTags: string[];

product.entity.ts
 @Field(() => [ProductTag])
  productTags: ProductTag[];

수정후 dto
@Field(() => [ProductTag])
  productTags: ProductTag[];

javascript node.js docker rest-api nestjs

답변 2

0

지성

import { Field, InputType } from '@nestjs/graphql';


@InputType()
export class ProductTagInput {
  @Field(() => String)
  name: string;
}

생각해보니

ProductTag는 object 타입이라
이렇게 dto 따로 만들어서 했습니다.

 

0

노원두

안녕하세요! 지성님!

해당 숙제의 핵심은 타입과 관련된 문제였어요!
등록시에는 ProductTags 라는 string[]을 받아서, 태그 하나하나를 객체로 변경하여 object[] 형태로 등록을 하였었어요!

하지만, 수정하기에서도 동일한 .save() 기능을 사용하는데, 그렇다면 수정하기에서도 string[] 이 아닌, object[] 이 되어야 하겠죠?!
따라서, 해당 에러는 타입 불일치에 관한 에러가 발생한 것이었답니다!^^

0

인프런 AI 인턴

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

타입스크립트에서 DTO(Data Transfer Object)와 엔티티(Entity)의 타입이 일관되지 않을 때 발생하는 오류를 해결하는 방법에 대한 질문이군요. DTO는 데이터를 네트워크로 전송하거나 외부로 노출할 때 사용되며, 엔티티는 데이터베이스 모델을 나타냅니다. 서로 다른 구조여서 같은 타입으로 맞춰줘야 합니다.

원래 dto에서는 productTagsstring[]으로, product.entity.ts에서는 ProductTag[]로 되어 있었던 것을 모두 ProductTag[]로 맞췄다는 것은 좋은 접근법입니다. 이 방법은 데이터 전송 시 타입 일관성을 유지하는 데 도움이 됩니다. 특히, GraphQL 스키마 정의에서 사용하는 클래스 타입 정보(@Field(() => [ProductTag]))를 맞추면 옳은 결과물을 얻을 수 있습니다.

만약 ProductTag가 별도의 객체나 클래스를 의미하는 경우라면, 이를 이용해 dto와 entity 간의 타입 일관성을 유지해야 합니다. 단순히 string 타입 배열로 유지하면, 향후 타입 검증 문제에서 복잡할 수 있으니 객체 타입으로 맞춰주는 것이 더 바람직합니다.

참고 링크

해결이 되셨기를 바랍니다. 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

그래프 ql 문서 사용할때 느낌표 남는거 어떻게 없애나요?

0

83

2

강의 전체 소스 코드를 받고싶습니다.

0

76

2

fontawesome 사용 문의

0

77

2

소스 코드 부탁드립니다~

0

85

2

깃 레포지터리 소스

0

81

2

커리큘럼12.css 정렬 에 나오는 과제 정답알고싶어요

0

73

2

10-01 Entity TypeOrmModule.forRoot 에 entities

0

85

3

강의 버전관련 문의입니다

0

102

2

Ubuntu 설치 관련

0

61

1

schema.gql 질문 드립니다.

0

51

1

서버 재실행시 Many to Many

0

101

3

input 관련 문의

0

90

2

Rest API 보다는 graphql이 주된 내용인데

0

130

2

강의 전체 소스코드 받을수있을까요?

0

155

1

도커볼륨 마운트 관련

0

126

2

findOne 타입스크립트오류

0

109

1

http => htrtps 호출 인증서 신뢰 오류

0

349

1

self-signed certificate in certificate chain 에러 발생

0

411

1

mongoose 설치 오류

0

142

1

특정 API, 특정 IP 허용 (단일경로에 CORS 활성화)

0

281

2

08-06

0

177

3

구조랑 패턴 관련해서 질문

0

125

2

mydocker

0

128

2

coolsms statuscode 2000 인데 전송안돼는 경우 확인.

0

156

1