일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- frontend
- ts
- react
- GAN
- threejs
- Express
- mongo
- CV
- API
- PRISMA
- review
- DM
- js
- Git
- html
- PyTorch
- DB
- CSS
- sqlite
- SOLID
- C++
- Linux
- UI
- ML
- figma
- ps
- nodejs
- vscode
- postgresql
- python
- Today
- Total
목록Backend/DB (17)
아카이브

1. 프로젝트 생성New Project로 새로운 프로젝트를 생성합니다.프로젝트의 이름을 입력하고, 필요에 따라 분류에 쓰일 태그 값을 지정합니다.함께 작업(=DB에 접근해야 하는)할 팀원을 추가합니다.2. 클러스터 생성프로젝트를 생성한 후, 본격적으로 DB를 생성하기 위해 클러스터를 만들어줍니다.플랜을 선택합니다. 제한적인 기능으로 무료 플랜도 사용 가능합니다.클러스터의 이름과 이용할 서비스(AWS, Google Could, Azure), 그리고 지역을 선택합니다.모두 설정했다면 최하단의 Create Deployment로 진행해줍니다.다음으로 DB를 사용할 사용자 계정을 생성합니다.처음에 mongoDB에서 임의로 사용자 이름과 암호를 생성해주는데, 원하는 대로 수정하여 사용할 수도 있습니다.이름과 암호를..

MongoDB는 NoSQL*의 일종으로, SQL을 사용하지 않는 document 지향형 DBMS입니다.Document 모델에서 데이터는 키와 그에 해당하는 document의 매핑으로 이루어집니다. * NoSQL : 관계형 데이터베이스(RDBMS)의 SQL 뿐만이 아닌 다른 방식도 사용하는 데이터베이스 시스템의 총칭 쉽게 말하면, 하나의 document가 일반적인 DB에서 하나의 row에 해당됩니다. Document의 집합은 collection으로, DB의 table에 해당합니다. 이러한 특징에 의해 MongoDB는 고정된 schema를 사용하지 않고, json 형식을 이용해 schema를 동적으로 관리합니다. MongoDB는 이를 지원하는 호스팅 웹 서비스인 MongoDB Altas에서 사용할 수 있습니..

1. PostgreSQL 웹 DB 생성1) New > PostgreSQL을 선택합니다.2) 아래와 같이 정보를 입력합니다.- Name : 원하는 이름- Database : PostgreSQL DB의 이름- Region : Singapore (Southeast Asia)- PostgreSQL Version : 설치한 PostgreSQL의 버전3) 플랜을 선택합니다.4) DB가 생성될 때까지는 시간이 걸립니다.생성된 후에는 Connections > Internal Database URL을 복사합니다.2. Render 웹 서비스 생성1) New > Web Services를 선택한 뒤, 배포하고자 하는 Github 저장소를 선택합니다.만약 연동된 Git 플랫폼이 없다면, [여기] 참고2) 다음과 같이 설정합니다..
DB API를 구현할 때는 한 번의 요청에 대해 여러 개의 함수를 실행하는 경우가 있습니다.이 때 중요한 것은 모든 함수가 한 번에 수행되어야 하는 것인데,중간에 오류가 발생해 처리가 중단되면, 처리가 완결되지 않은 불완전한 상태로 남기 때문입니다. 예를 들어 상품 재고를 관리하는 서버를 생각해봅시다.아래 코드는 주문(order) 요청을 처리하는 엔드포인트로, 크게 두 가지 절차를 진행합니다. 1. order 테이블에 새로운 주문정보에 해당하는 record를 추가 2. 해당 주문에서 요청한 상품들의 수량만큼 product 테이블에서 각 record들의 quantity를 감소(자세한 구현사항은 생략했습니다)const prisma = new PrismaClient();app.post('/order..

일대다/일대일/다대다 관계를 구현하기 위해서는 '다'에 해당하는 테이블에 foreign key를 정의해야 합니다.Prisma에서는 @relation 속성을 이용해 이 foreign key를 정의할 수 있습니다.1. 일대다 아래는 일대다 관계의 예시로, 사용자(User) 테이블과 주문(Order) 테이블의 관계를 나타내었습니다.하나의 사용자는 여러 주문과 연결될 수 있고, 주문 테이블에 userId라는 foreign key 를 추가해 구분합니다.아래는 각각 User와 Order의 Prisma model 코드입니다.Order에는 User를 타입으로 하고 @relation 속성을 가지는 user 필드가 추가됩니다.model User { id String @id @default(uuid()) ..
PrismaClient는 DB의 다양한 CRUD(Create / Read / Update / Delete) 기능을 구현할 수 있도록 함수들을 제공합니다.아래는 PrismaClient에서 사용할 수 있는 함수들의 목록입니다.지속적으로 갱신됩니다. 함수매개변수 기능 count( ){ where: 필드이름 }필드에서 where 조건을 만족하는 record들의 개수를 구합니다.create( ){ data: JSON }data를 값으로 하는 새로운 record를 생성합니다.delete( ){ where: 필드이름}필드에서 where 조건을 만족하는 record를 삭제합니다.findMany( ) 모든 record들을 가져옵니다.findFirst( ){ where: 필드이름}필드에서 where 조건을 만족..

Prisma를 이용해 데이터 시딩(DB에 초기 record 들을 삽입하는 것)을 할 때는API를 만들때와 마찬가지로 PrismaClient 라이브러리를 사용합니다. 우선 시딩을 위해서는 두 가지 JS 코드가 필요하며,코드파일은 schema.prisma 코드와 같은 경로(=터미널로 실행시킬 수 있는 경로)에 있어야 합니다. - 시딩할 데이터를 기록한 mock 파일 (mock.js)- 데이터 시딩을 실행할 시딩 파일 (seed.js) seed.js의 코드는 다음과 같습니다.PrismaClient.user.deleteMany( ) 를 사용해 기존에 있던 데이터들을 초기화하고,PrismaClient.user.createMany( ) 를 사용해 mock.js에 기록된 새로운 데이터들을 추가합니다.두 함수 모두 ..
DB 서버로부터 CRUD(Create / Read / Update / Delete) 기능을 요청하는 API를 구현할 때,미들웨어 함수를 구현할 수 있는 Express 프레임워크를 사용할 수도 있습니다.Prisma를 이용해 Express의 미들웨어 함수를 구현하려면 PrismaClient 라이브러리가 필요합니다.import * as dotenv from 'dotenv';dotenv.config();import express from 'express';import { PrismaClient } from '@prisma/client';const prisma = new PrismaClient();const app = express();app.use(express.json()); PrismaClient에서 사용할..