Home 5월 31일 Today I Learned
Post
Cancel

5월 31일 Today I Learned

오늘한 일

  • 프로젝트를 유지 보수했다
  • 블로그 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는 배우기는 싫어도 할 수 있는게 매우 다양한 것 같다

내일 계획

내일은 세미나를 해야겠다

This post is licensed under CC BY 4.0 by the author.

5월 30일 Today I Learned

6월 1일 Today I Learned