inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

커머스 서비스로 배우는 NestJS 실전 개발 (w. Prisma, Docker, Redis, Kafka)

서비스 로직 완성

Int 값들 null 처리

3

Ref

작성한 질문수 8

0

prisma generate로 생성했으면 qty, unit_price 같은 값들 number | null 이라 필터링을 한번 해줘야 될텐데 강사님 코드에는 그런 흔적이 없이 깔끔하게 처리되어 빌드가 잘되는거 같아보여요.

물론 사소한것이지만

라이브러리 버전차이인지 따로 처리해준게 있는건지 궁금합니다

docker kafka redis nestjs prisma

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. Ref님께서 질문하신 Prisma Client에서 number | null 타입의 값들을 어떻게 처리하는지에 대한 내용입니다.

Prisma에서는 기본적으로 필드들이 옵셔널로 정의될 경우, 타입이 number | null로 생성됩니다. 이러한 타입은 널 값을 수용할 수 있는 것을 의미하며, TypeScript에서는 이 두 타입의 값을 모두 처리할 수 있도록 타입을 설정해 주게 됩니다. 다른 개발자들이 코드 작성 시의 혼란을 줄이고, 타이핑을 통해 오류를 방지할 수 있도록 하는 것입니다.

하지만 강사님이 사용하신 코드가 간결해 보인다는 점을 미루어 볼 때, 다음과 같은 몇 가지 방법을 활용했을 가능성이 있습니다:

  1. Type Assertion 또는 Non-null Assertion (!):
    개발자가 필드가 항상 값이 있다고 믿을 경우, TypeScript에서는 !를 사용하여 널을 수용하지 않도록 강제할 수 있습니다. 그러나 이 방식은 기저 성능에 잠재적 위험성을 가할 수 있으므로 주의가 필요합니다.

  2. Optional-Chaining 및 Nullish Coalescing:
    JavaScript의 최신 문법을 사용하여, 값이 null일 경우 기본값을 사용할 수 있도록 코드를 작성할 수 있습니다.

  3. 라이브러리 또는 타입 유틸리티 사용:
    간결한 코드 작성을 위해 코드베이스에 타입 유틸리티를 도입해, 널 체크를 자동화하거나 축소할 수 있습니다.

추가적으로 Prisma와 관련된 이러한 타입 문제는 Prisma Prisma의 버전 변화나 config에 따라 달라질 수 있으며, 특정 버전의 변화가 영향을 줄 수도 있습니다.

유사한 상황에서 다른 수강생분들의 토론을 참고해주세요:

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

db table 관련질문

0

12

1

제미나이 api 연결오류

0

16

2

현업에서 prisma relationMode는 사용안하나요?

0

18

1

유튜브 시연 영상 추가 기능 강의 업로드 계획

0

15

1

도커 GUI 툴, 포르테이너 설치

0

21

2

config 밑에 이미 파일 많이 들어가 있는데요.

0

33

3

관리자 페이지 질문

0

21

1

실무 내용 문의드려요

0

28

2

aws 로드 밸런서가 생성되지 않습니다.

0

26

3

민구님 설치시 또 막혀서 질문드려요

0

34

2

git clone 명령어를 어디 터미널에다 붙여넣어야 하나요?

0

36

2

html 파일을 못 불러 옵니다.

0

35

2

twitterdb 연결이 안돼요

1

30

2

Kafka Cluster 구성도 질문

0

24

1

레디스로 재고 관리

0

44

2

FK 현업에서 실제 사용안하시나요

0

108

1

dto 관련 질문있습니다.

0

126

2

PrismaClientInitializationError: Prisma Client could not locate the Query Engine for runtime "linux-arm64-openssl-3.0.x". 에러

0

269

2

Module '"@prisma/client"' has no exported member 'cart'. 에러

0

194

3

모듈 래포지토리 등록에 관한 질문입니다.

0

174

2

timezone 관련 질문

0

301

2

섹션4 -> 5 넘어가는시점 강의 영상이 중간에 빠진건아니신지..?

2

251

2

강의 코드를 확인할 수 있는 깃허브 URL이 있을지 궁금합니다!

2

313

1

섹션3과 섹션4 같은 영상으로 확인됩니다

0

161

1