inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

repository 완성 by Prisma

db table 관련질문

57

Ref

작성한 질문수 8

0

createdAt이랑 updatedAt은

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

docker kafka redis nestjs prisma

답변 1

0

인프런 AI 인턴

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

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

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

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

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

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

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

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

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

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

낙관적락 질문있습니다.

0

40

1

댓글순서부여방식

0

40

1

movablePageCount와 pageSize 상수

0

34

1

JPA와 네이티브 쿼리

0

40

1

aws 계정 생성 질문

1

50

1

verify.sh 4단계 실패 — Jenkins 컨테이너에서 127.0.0.1:6443 connection refused

0

52

2

섹션 2 - 9강. API 관련 질문

0

66

2

11강 [실습] Docker로 MySQL1 분만에 실행하기

0

78

2

11강 [실습] Docker로 MySQL1 분만에 실행하기

0

58

2

구현 방법에 대한 문의

0

65

2

선생님 질문있습니다!

0

52

2

장애 격리 관련해서 궁금한 부분이 있어요

0

49

2

강의 전체 공개

0

43

1

Int 값들 null 처리

0

51

1

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

0

110

1

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

0

148

1

dto 관련 질문있습니다.

0

172

2

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

0

312

2

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

0

242

3

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

0

210

2

timezone 관련 질문

0

351

2

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

2

285

2

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

2

337

1

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

0

187

1