Skip to content

Commit 8b6cf35

Browse files
committed
update post
1 parent fbe6379 commit 8b6cf35

File tree

5 files changed

+79
-0
lines changed

5 files changed

+79
-0
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
tags:
3+
- project
4+
- goedamjip
5+
- prisma
6+
createdAt: 2025-07-08 08:24:57
7+
modifiedAt: 2025-07-08 14:14:37
8+
publish: 프로젝트/괴담집
9+
related:
10+
- "[[괴담집]]"
11+
- "[[괴담집 프로젝트에 Prisma와 Supabase 설정하기]]"
12+
series: ""
13+
---
14+
15+
# 괴담집 프로젝트에서 Prisma 사용하기
16+
17+
![prisma-landing](_assets/attachments/괴담집/prisma-landing.png)
18+
19+
prisma는 Server Side에서 사용되아 하며 현제 프로젝트에서는 api호출을 통한 사용방법과 Server client를 활용한 방법 두가지가 존재한다.
20+
21+
## Prisma의 기본 사용 예시
22+
23+
```tsx
24+
import { PrismaClient } from "@prisma/client";
25+
26+
const prisma = new PrismaClient();
27+
28+
async function getAmbienceAssets() {
29+
const assets = await prisma.assets.findMany({
30+
where: {
31+
category_name: ASSET_CATEGORIES.AMBIENCE,
32+
tag_name: {
33+
in: ["CREEPY_DRONE", "EMPTY_HALLWAY_ECHO", "TENSION_MUSIC"],
34+
},
35+
},
36+
});
37+
return assets;
38+
}
39+
```
40+
41+
PrismaClient를 선언하여 인스턴스를 생성하고 해당 인스턴스를 변수에 담아 사용하게 된다.
42+
앞서 정의한 `schema``bunx prisma generate`을 통해 생성된 타입이 자동적으로 적용되어 개발하기 편하다.
43+
44+
## 싱글톤 패턴 사용하기
45+
46+
prisma를 사용할 때마다 인스턴스를 생성하게 되면 불필요한 리소스를 낭비하게되고 데이터베이스에 연결할 수 있는 연결 한계도 초과할수 있다.
47+
따라서 싱글톤 패턴을 활용하여 하나의 인스턴스만 사용해야 한다.
48+
49+
```typescript
50+
import { PrismaClient } from "@prisma/client";
51+
52+
const globalForPrisma = globalThis as unknown as {
53+
prisma: PrismaClient | undefined;
54+
};
55+
56+
export const prisma = globalForPrisma.prisma ?? new PrismaClient();
57+
58+
if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma;
59+
```
60+
61+
`lib > prisma.ts` 파일을 생성하고 위의 내용을 작성하여 싱글톤 패턴을 사용하였다.
62+
63+
이제 해당 파일에서 정의된 프리스마를 가져와 사용하면 된다.

public/link-map.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
"1.project/괴담집/괴담집 프로젝트 소개.md": "프로젝트/괴담집/괴담집 프로젝트 소개",
6161
"1.project/괴담집/괴담집 이야기 생성 워크플로우 구축.md": "프로젝트/괴담집/괴담집 이야기 생성 워크플로우 구축",
6262
"1.project/괴담집/괴담집 콘텐츠 인프라 구축.md": "프로젝트/괴담집/괴담집 콘텐츠 인프라 구축",
63+
"1.project/괴담집/괴담집 프로젝트에서 Prisma 사용하기.md": "프로젝트/괴담집/괴담집 프로젝트에서 Prisma 사용하기",
6364
"1.project/취업을 위한 알고리즘 공부/취업을 위한 알고리즘 공부.md": "프로젝트/알고리즘/취업을 위한 알고리즘 공부",
6465
"4.archive/물류 서비스 웹사이트 개발/물류 서비스 웹사이트 개발 회고-혼자서 외주 프로젝트 완성하기.md": "저장소/아임유어박스 웹사이트/물류 서비스 웹사이트 개발 회고-혼자서 외주 프로젝트 완성하기",
6566
"4.archive/개인 블로그 제작/개인 블로그를 제작하게 된 이유.md": "저장소/개인 블로그/개인 블로그를 제작하게 된 이유",

public/meta-data.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -670,6 +670,17 @@
670670
"modifiedAt": "2025-07-03 13:18:40",
671671
"publish": "프로젝트/괴담집"
672672
},
673+
{
674+
"urlPath": "프로젝트/괴담집/괴담집 프로젝트에서 Prisma 사용하기",
675+
"title": "괴담집 프로젝트에서 Prisma 사용하기",
676+
"summary": "",
677+
"image": "",
678+
"tags": ["project", "goedamjip", "prisma"],
679+
"series": "",
680+
"createdAt": "2025-07-08 08:24:57",
681+
"modifiedAt": "2025-07-08 14:14:37",
682+
"publish": "프로젝트/괴담집"
683+
},
673684
{
674685
"urlPath": "프로젝트/알고리즘/취업을 위한 알고리즘 공부",
675686
"title": "취업을 위한 알고리즘 공부",
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"content": "\n# 괴담집 프로젝트에서 Prisma 사용하기\n\n![prisma-landing](_assets/attachments/괴담집/prisma-landing.png)\n\nprisma는 Server Side에서 사용되아 하며 현제 프로젝트에서는 api호출을 통한 사용방법과 Server client를 활용한 방법 두가지가 존재한다.\n\n## Prisma의 기본 사용 예시\n\n```tsx\nimport { PrismaClient } from \"@prisma/client\";\n\nconst prisma = new PrismaClient();\n\nasync function getAmbienceAssets() {\n const assets = await prisma.assets.findMany({\n where: {\n category_name: ASSET_CATEGORIES.AMBIENCE,\n tag_name: {\n in: [\"CREEPY_DRONE\", \"EMPTY_HALLWAY_ECHO\", \"TENSION_MUSIC\"],\n },\n },\n });\n return assets;\n}\n```\n\nPrismaClient를 선언하여 인스턴스를 생성하고 해당 인스턴스를 변수에 담아 사용하게 된다.\n앞서 정의한 `schema`와 `bunx prisma generate`을 통해 생성된 타입이 자동적으로 적용되어 개발하기 편하다.\n\n## 싱글톤 패턴 사용하기\n\nprisma를 사용할 때마다 인스턴스를 생성하게 되면 불필요한 리소스를 낭비하게되고 데이터베이스에 연결할 수 있는 연결 한계도 초과할수 있다.\n따라서 싱글톤 패턴을 활용하여 하나의 인스턴스만 사용해야 한다.\n\n```typescript\nimport { PrismaClient } from \"@prisma/client\";\n\nconst globalForPrisma = globalThis as unknown as {\n prisma: PrismaClient | undefined;\n};\n\nexport const prisma = globalForPrisma.prisma ?? new PrismaClient();\n\nif (process.env.NODE_ENV !== \"production\") globalForPrisma.prisma = prisma;\n```\n\n`lib > prisma.ts` 파일을 생성하고 위의 내용을 작성하여 싱글톤 패턴을 사용하였다.\n\n이제 해당 파일에서 정의된 프리스마를 가져와 사용하면 된다.\n",
3+
"plainContent": "prisma는 Server Side에서 사용되아 하며 현제 프로젝트에서는 api호출을 통한 사용방법과 Server client를 활용한 방법 두가지가 존재한다.\nPrismaClient를 선언하여 인스턴스를 생성하고 해당 인스턴스를 변수에 담아 사용하게 된다.\n앞서 정의한 schema와 bunx prisma generate을 통해 생성된 타입이 자동적으로 적용되어 개발하기 편하다.\nprisma를 사용할 때마다 인스턴스를 생성하게 되면 불필요한 리소스를 낭비하게되고 데이터베이스에 연결할 수 있는 연결 한계도 초과할수 있다.\n따라서 싱글톤 패턴을 활용하여 하나의 인스턴스만 사용해야 한다.\nlib > prisma.ts 파일을 생성하고 위의 내용을 작성하여 싱글톤 패턴을 사용하였다.\n이제 해당 파일에서 정의된 프리스마를 가져와 사용하면 된다."
4+
}
99.3 KB
Loading

0 commit comments

Comments
 (0)