You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
prisma query를 호출하는 서비스 메서드 중 일부 메서드에서는 write query 전에 read query를 1회 이상 호출합니다.
예를 들어, 특정 notice를 업데이트하기 전에 해당 notice가 존재하는지 확인하기 위해 prisma.notice.findUnique 메서드를 호출하는 식입니다.
그러나, 사전 조회 연산 없이도 prisma.notice.update를 호출했을 때 대상이 확인되지 않으면 PrismaClientKnownRequestError를 받아 볼 수 있습니다. 어떤 PrismaClientKnownRequestError인지는 error.code로 구분할 수 있습니다.
따라서, 사전 조회 연산을 제거하고 서비스 메서드에서 PrismaClientKnownRequestError를 내보냄으로써 불필요한 연산을 줄여 성능을 높이고자 합니다.
서비스 메서드에서 발생하는 PrismaClientKnownRequestError를 비즈니스 예외로 변경
일부 메서드에서는 PrismaClientKnownRequestError를 발생시키는 경우, 해당 예외를 컨트롤러 단에서 처리합니다.
하지만 이 또한 비즈니스 예외로 감쌀 수 있는 케이스에 해당된다고 봅니다. PrismaClientKnownRequestError를 포함하여, 서비스에서 의도적으로 발생시키거나 발생할 것으로 예상되는 예외는 모두 비즈니스 예외에 포함시키고, 컨트롤러 단에서는 정의된 비즈니스 예외만 처리하도록 변경합니다.
Describe the problem and solution
Prisma Write Query에 선행되는 Read Query 제거
prisma query를 호출하는 서비스 메서드 중 일부 메서드에서는 write query 전에 read query를 1회 이상 호출합니다.
예를 들어, 특정 notice를 업데이트하기 전에 해당 notice가 존재하는지 확인하기 위해
prisma.notice.findUnique
메서드를 호출하는 식입니다.그러나, 사전 조회 연산 없이도
prisma.notice.update
를 호출했을 때 대상이 확인되지 않으면PrismaClientKnownRequestError
를 받아 볼 수 있습니다. 어떤PrismaClientKnownRequestError
인지는error.code
로 구분할 수 있습니다.따라서, 사전 조회 연산을 제거하고 서비스 메서드에서
PrismaClientKnownRequestError
를 내보냄으로써 불필요한 연산을 줄여 성능을 높이고자 합니다.서비스 메서드에서 발생하는 PrismaClientKnownRequestError를 비즈니스 예외로 변경
일부 메서드에서는
PrismaClientKnownRequestError
를 발생시키는 경우, 해당 예외를 컨트롤러 단에서 처리합니다.하지만 이 또한 비즈니스 예외로 감쌀 수 있는 케이스에 해당된다고 봅니다.
PrismaClientKnownRequestError
를 포함하여, 서비스에서 의도적으로 발생시키거나 발생할 것으로 예상되는 예외는 모두 비즈니스 예외에 포함시키고, 컨트롤러 단에서는 정의된 비즈니스 예외만 처리하도록 변경합니다.Validations
The text was updated successfully, but these errors were encountered: