[TIL] 24.09.05 THU

GDORI·2024년 9월 5일
0

TIL

목록 보기
32/79
post-thumbnail

어릴 때 공부 좀 열심히 할걸.. 이라는 현타가 온다
고기도 먹어 본 놈이 안다고 공부와 손 땐지 오래인 난 앉아있는 시간이 길어도 집중력과 기억력이 낮은 것 같다...🤮

에휴 자책할 시간에 조금이라도 더 집중하자

[ 오늘 푼 알고리즘 코드카타 ]

155652. 둘만의 암호

점점 어려워지는 알고리즘.. 그래도 푸는 재미가 있다.
밑의 내용은 오늘 진행한 강의를 정리한 것이다.

ORM

아 세상... 외울게 너무 많습니다.
ORM 객체지향언어에서 사용하는 객체와 관계형 데이터베이스에서 사용하는 테이블을 자동으로 연결해주는 기술입니다. 데이터베이스를 다룰 때 SQL을 직접 작성하지 않고 객체지향방식으로 데이터를 처리하죠.
처음 모델링할 때 빼고는 편한 것 같습니다.

Prisma

Prisma는 ORM 도구 중 하나입니다. JS 환경 뿐 아니라 TypeScript 에서도 사용이 가능하며 학습하기 쉬운 도구이라고는 하나... 넵 ..

schema.prisma

schema.prisma 파일은 prisma가 사용할 데이터베이스 설정정보를 정의하는 파일입니다. 최초 파일은 datasourcegenerator로 이루어져 있죠.
datasource는 DB정보와 주소를 설정할 수 있고, generatorprisma가 어떤 코드를 자동생성할지 지정하는 역할을 합니다.

우리는 prisma-client-js를 사용할 예정이지만, 그 외에 prisma-migrate, prisma-studio 등이 있다고 합니다.

데이터베이스 URL의 경우
protocol://BaseURL/path/args 로 구성되며, 예시로
mysql://root:password@localhost:port/dbname?connection_limit=5 로 쓸 수 있습니다.

Prisma model

model 구문은 Prisma가 사용할 DB의 테이블 구조를 정의하기 위하여 사용됩니다.
위에 쓰인 schema.prisma 파일에 작성합니다.

// schema.prisma

model Products {
  productId   Int     @id @default(autoincrement()) @map("productId")
  productName String  @unique @map("productName")
  price       Int     @default(1000) @map("price")
  info        String? @map("info") @db.Text

  createdAt DateTime @default(now()) @map("createdAt")
  updatedAt DateTime @updatedAt @map("updatedAt")

  @@map("Products")
}

왼쪽에 쓰인 이름은 node.js 내에서 사용될 이름이고, @map()에 써있는 이름은 MySQL 내에서 사용될 이름입니다.

npx prisma db push
위와 같이 모델을 작성하고, 터미널에서 push 명령어를 입력하면 제네레이트가 같이 실행됩니다.
실제 데이터베이스에 반영되어 새로운 테이블을 만들거나 구조 변경 시 사용할 수 있습니다.

Prisma Method

Prisma는 데이터베이스와의 상호작용을 위해 다양한 CRUD 메서드를 제공합니다.

  1. Create (생성)

새로운 레코드를 데이터베이스에 생성합니다.

await prisma.user.create({ data: { name: "Gdori" } });
  1. Read (조회)

여러 레코드를 데이터베이스에서 조회합니다.

await prisma.user.findMany();
  1. Update (수정)

기존의 레코드를 수정합니다.

await prisma.user.update({ where: { id: 1 }, data: { name: "Gsooni" } });
  1. Delete (삭제)

특정 레코드를 삭제합니다.

await prisma.user.delete({ where: { id: 1 } });
profile
하루 최소 1시간이라도 공부하자..

0개의 댓글