inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

repository 완성 by Prisma

db table 관련질문

2

Ref

작성한 질문수 7

0

createdAt이랑 updatedAt은

default(now()) 랑 @updatedAt 을 통해 prisma model에서 핸들링이 가능한데 사용하지않고 dto에서 직접 다루는 이유가 궁금합니다

docker kafka redis nestjs prisma

답변 1

0

인프런 AI 인턴

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

Ref님께서 질문하신 createdAtupdatedAt을 Prisma 모델에서 자동으로 처리하는 대신, DTO에서 직접 다루는 이유에 대해 설명드리겠습니다.

Prisma와 같은 ORM에서는 createdAtupdatedAt 필드를 자동으로 관리하는 기능이 있습니다. @default(now())는 레코드가 처음 생성될 때 현재 시간을 기본으로 설정하며, @updatedAt은 레코드가 업데이트될 때마다 시간을 자동으로 갱신합니다.

하지만 특정 상황에서는 이러한 자동 갱신 기능 대신, DTO에서 직접 이 필드들을 다룰 필요가 있을 수 있습니다. 몇 가지 가능한 이유는 다음과 같습니다:

  1. 비즈니스 로직 구현: 특정 비즈니스 요구사항에 따라 createdAt이나 updatedAt의 값이 생성 및 수정 시점과 다를 수 있습니다. 예를 들어, 어떤 데이터는 외부 시스템으로부터 이미 입력된 시간을 받아와야 하는 경우가 있을 수 있습니다.

  2. 커스터마이징: 데이터베이스 레코드가 생성되거나 수정될 때가 아닌, 특정 조건에서만 updatedAt 값을 변경하고자 할 때 직접 설정이 필요할 수 있습니다.

  3. 배포 고려사항: 때로는 데이터 수정이 자동으로 갱신되지 않기를 원하는 상황이 있을 수 있습니다. 예를 들어, 배포 시점에 데이터 일관성을 유지하기 위해 특정 시간을 고정하려는 경우입니다.

하지만 ORM의 자동 관리 기능을 최대한 활용하는 것이 개발의 편리함이나 에러 최소화 측면에서 유리할 수 있기에, 이러한 특수한 경우가 아닌 이상 가능하면 프레임워크의 기능을 활용하는 것이 일반적입니다.

아래는 관련 주제에 대한 더 깊이 있는 논의를 찾을 수 있는 링크입니다:

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

제미나이 api 연결오류

0

16

2

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

0

16

1

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

0

14

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

전자책으로 구매인증 가능할까요?

0

79

1

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

0

107

1

dto 관련 질문있습니다.

0

124

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

192

3

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

0

173

2

timezone 관련 질문

0

300

2

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

2

250

2

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

2

311

1

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

0

160

1