오늘한 일
- 프로젝트를 유지 보수했다
- 블로그 TIL을 작성하였다
- 1일 1커밋을 하였다
느낌 점
출시전 고치지 못한 버그를 이제서야 또 발견하여 고쳤는데 아직도 버그를 남아있다는 것에서 놀랐고 아마도 이러한 문제는 한번에 해결되지 않고 출시 후에도 계속 계속 유지보수 해야될 거 같다
배운 점
Prisma
Prisma는 데이터베이스를 다루는 데 사용되는 ORM(Object-Relational Mapping) 도구로 Prisma를 사용하면 Sql 문법 대신 TypeScript와 JavaScript를 사용하여 데이터베이스와 상호 작용하는 작업을 쉽게 수행할 수 있다 이러한 Prisma는 다양한 데이터베이스 시스템과 호환되며 데이터베이스 스키마를 사용하여 모델을 정의하고 데이터베이스 쿼리를 작성하는게 가능하다
또한 강력한 쿼리 빌더를 제공하여 데이터베이스에서 필요한 데이터를 손쉽게 검색 및 필터링, 정렬할 수 있고 이외에도 관계형 데이터베이스에서 사용되는 JOIN 작업도 간단하게 처리할 수 있는데 Prisma는 데이터베이스의 변경 사항을 추적하여 마이그레이션을 자동으로 관리하고, 데이터 유효성 검사 및 유효성 제약 조건을 쉽게 구현할 수 있는 기능도 제공하기에 매우 유용하다
아래에는 예시 코드이다
// schema.prisma
model User {
id Int @id @default(autoincrement())
name String
email String @unique
posts Post[]
}
model Post {
id Int @id @default(autoincrement())
title String
content String
author User @relation(fields: [authorId], references: [id])
authorId Int
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
async function main() {
const users = await prisma.user.findMany();
console.log(users);
const user = await prisma.user.findOne({
where: { id: 1 },
include: { posts: true },
});
console.log(user);
const newUser = await prisma.user.create({
data: {
name: 'John Doe',
email: 'john.doe@example.com',
},
});
console.log(newUser);
}
main()
.catch((e) => {
throw e;
})
.finally(async () => {
await prisma.$disconnect();
});
친구가 내일 발표할 세미나 준비를 하면서 코딩애플 영상을 보여줘서 알게 되었는데 역시 JS는 배우기는 싫어도 할 수 있는게 매우 다양한 것 같다
내일 계획
내일은 세미나를 해야겠다