prisma service
PrismaService 타입 안전 작업
PrismaService는 생성된 Client를 Nest provider로 감싸 서비스에서 주입받게 한다. 모델 이름과 필드 이름이 타입으로 연결되어 쿼리 실수를 줄인다.
핵심 경험: this.prisma.user.create()모델 API가 자동완성과 타입 검사를 제공한다.
서비스 코드에서 쿼리가 실행되는 순서
1Inject
UsersService가 PrismaService를 생성자로 받는다.
2Model API
this.prisma.user처럼 모델별 API에 접근한다.
3Typed args
where, data, include 구조가 타입으로 검증된다.
4DB query
Prisma가 실제 SQL 또는 DB 명령으로 변환한다.
타입 안전성이 잡아 주는 것
01필드 오타
존재하지 않는 필드는 컴파일 단계에서 드러난다.
02관계 포함
include/select 구조가 모델 관계와 맞는지 확인된다.
03반환 타입
서비스 메서드의 Promise 타입을 예측하기 쉽다.
핵심 코드 경계
await this.prisma.user.create({
data: { email, name }
})
await this.prisma.user.findUnique({
where: { id }
})