| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 위드굿즈
- Git 팀 작업
- express.js 환경 셋팅
- 성공비법
- 30일 글쓰기
- CSS
- 도서 원씽
- 실시간 통신
- 카카오뷰 온라인 수익화
- ppt 다이어그램
- 카카오뷰 성장
- 카카오뷰 수익
- Axios 라이브러리
- 위드굿즈 굿즈샵
- 원씽
- 웹기초
- 이석증
- HTML
- 엑셀 프린트하기
- 책 원씽
- 카뷰 수익 인증
- ppt 도형 색
- 엑셀 기초 함수
- 카카오뷰 탭이동
- 성공에 대한 거짓말
- 카카오뷰 부업
- 카카오뷰N잡
- 자기관리
- git 협업하기
- 카카오뷰 초보
- Today
- Total
김데이의 개발공부
[ TIL ] Day 19 - DB 기초이론 & ER모델 / 관계형 데이터베이스(Postgres)와 서버 본문
[ TIL ] Day 19 - DB 기초이론 & ER모델 / 관계형 데이터베이스(Postgres)와 서버
theday365 2025. 10. 22. 20:11🗓️ 수업 일자 : 2025.10.22
✨ 오늘의 수업 평가 : [ GOOD ] 배움이 팡팡 터진 날 🍿💡
진짜 아기다리고기다리던 !!!!!!!!!!!
너무너무 배우고 싶던 DB 영역인데, 내 손으로 이걸 만들어 냈다는게 너무 좋다 🤩
아직 별거 아닌 구조이지만 벌써부터 개인 프로젝트에 적용 할 아이디어가 무궁무진하게 샘솟는다!
📝 오늘 배운 내용
- DB 기초 이론
- Prisma ORM 사용하기
1. DB 기초 이론
DBMS
- DataBase Management System으로, DB를 생성하고 관리 가능
- DB는 엑셀, 표 같이 행과 열로 구성되어있음
- 이러한 DB를 SQL 문법을 사용하여 원하는 데이터를 조회 / 처리 진행
ER 모델

- 기본 설명 : Entity Relationship Model로, 데이터 베이스를 개체, 속성, 관계로 표현하는 설계 방식을 가짐
- 주요 구성 요소
- 개체, Entity : 저장해야 할 대상
- 속성, Attribute : 개체의 세부 정보, 속성 => 컬럼에 맵핑 되는 정보
- 관계, Relationship : 여러 Entity들 간의 관계, 즉 각각의 Entity Model( = 실제 DB의 table) 사이의 관계
- PK, Primary Key : 각 로우를 식별 할 수 있는 컬럼
- FK, Foreign Key : 다른 테이블의 PK를 현재 테이블에서 참조하는 컬럼 => 연결된 테이블과 "관계"를 만든다
- 카디널리티, cardinality : 두 테이블의 개체간 관계, 수량적 대응 표기법
1) 1 : 1 관계 - A 테이블의 a 개체가 B 테이블 b 개체와 단일로 연관
예시) 디스코드 가입 후 생성되는 "마이페이지"
2) 1 : N 관계 - A 테이블의 a 개체가 B 테이블 b,c,d ... 같이 여러 개체와 연관
예시) Node 6기 커뮤니티에 내가 작성한 여러 글들
3) N : M 관계 - A 테이블의 여러 개체와 B 테이블 여러 개체가 연관
예시) 나는 디스코드 내 여러 커뮤니티를 가입 할 수 있고, 커뮤니티도 여러 가입자를 받을 수 있음
관계 설명
||--|| : 1:1 관계, One and only one
||--o{ : 1:n 관계, Zero or many
}o--o{ : n:m 관계, Many to many
관계 설명 예시
User ||--|| UserSetting : "sets" // 한 유저는 하나의 설정만 가짐
User ||--o{ Comment : "writes" // 한 유저는 여러 글 작성 가능
User }o--o{ Community : "joins" // 유저와 커뮤니티는 다수 대 다수
2. Prisma ORM 사용하기
Prisma란?
여러 기능이 있지만 그 중에서, 다양한 관계형 데이터 베이스와 상호작용할 때 사용하는 ORM 제공
Prisma 홈페이지 : https://www.prisma.io/orm
Prisma | Next-generation ORM for Node.js & TypeScript
Prisma is a next-generation Node.js and TypeScript ORM for PostgreSQL, MySQL, SQL Server, SQLite, MongoDB, and CockroachDB. It provides type-safety, automated migrations, and an intuitive data model.
www.prisma.io
Prisma Schema
- 기본 설명
: 데이터 구조(테이블, 컬럼, 관계 구조)를 미리 설정하는 것
: 이 파일을 바탕으로 Prisma가 DB 테이블을 자동을 생성하거나 업데이트 해 줌
: Overview On Prisma Schema (https://www.prisma.io/docs/orm/prisma-schema/overview)
Prisma Schema Overview | Prisma Documentation
The Prisma schema is the main method of configuration when using Prisma. It is typically called schema.prisma and contains your database connection and data model.
www.prisma.io
1. 기본 사용법
- 여러 제약 조건 설정하기
1) 속성 설정 - Int, datetime, string?(옵셔널하게 저장 가능) 등
2) PK / Unique 설정 - @id : 기본키(PK) , @defalult(uuid()) : 기본값으로 고유 ID자동 생성 , @unique : 중복 불가
3) 특수 속성 입력 - @updatedAt : 리소스가 수정될 때 자동으로 시간 업데이트, @defalult(now()) : 생성 시 현재 시간 저장
- 관계 설정하기
1) Relation 설정 - @relation 을 사용해 FK 설정
2) 다른 모델 가져오기(전체) - 속성 입력칸에 "Product[ ]" 작성 = "model Product" 가져오기

2. 실습 해 보기
환경 설정
- 프로젝트 초기화 작업 및 Data sources 안에 DB 입력
: 작업하는 프로젝트 터미널에서 npx prisma init --datasource-provider postgresql
작업 공간 설명 with schema.prisma 파일
1) Generators : 서버와 연동할 때 사용할 클라이언트를 지정
2) Data sources : 작업 시 사용해야 하는 DB URL 셋팅 영역
3) Data model Definition : 실제 우리가 model 을 작성하는 공간

마이그레이션, Migration
- schema.prisma파일에 정의 해 둔 Data model을 바탕으로 "실제 테이블"을 만들어 줌, 일종의 schema 동기화
- Data model을 작성 한 뒤 터미널에 입력
: npx prisma migrate dev
Enter a name for the new migration: › 나오면 신규 마이그레이션 이름 입력 (간단한 commit 느낌으로)

Prisma Studio 실행하기
- 사용자가 model Schema 사용하기 편하게 UI 제공
- 명령어 : npx prisma studio




+ 추가 [ window 환경에서 Postgres 접속 불가 인 경우 with Ubunt ]
kimDay@DESKTOP-Q123456:~$ sudo apt update
# Window APT(패키지 관리자) 업데이트
kimDay@DESKTOP-Q123456:~$ sudo apt install postgresql postgresql-contrib -y
# APT 패키지를 사용해서 postgresql 다운로드
kimDay@DESKTOP-Q123456:~$ psql --version
# postgresql 버전 확인
kimDay@DESKTOP-Q123456:~$ sudo service postgresql start
# postgresql 실행 명령어
kimDay@DESKTOP-Q123456:~$ sudo service postgresql status
# postgresql 잘 실행 됬는지 상태 확인하는 명령어
kimDay@DESKTOP-Q123456:~$ sudo -u postgres psql
ALTER USER postgres PASSWORD '실제 사용할 password 입력';
# window postgresql 계정정보
# user(Super) = postgres 자동생성
# password = 추가로 셋팅 해야함
📃 내일은 뭘 배울까 🤔
- Prisma를 이용한 CRUD 하기
- Prisma 여러 문법 익히기
'코드잇 Node.js(BE) 부트 캠프 > TIL (Today I Learn) 📑' 카테고리의 다른 글
| [ TIL ] Day 21 - 관계형 데이터베이스 / Postgres 사용하기 2 (0) | 2025.10.24 |
|---|---|
| [ TIL ] Day 20 - 관계형 데이터베이스 / Postgres 사용하기 (0) | 2025.10.23 |
| [ TIL ] Day 18 - 💡드디어 데이터 베이스와 ORM / MongoDB & Mongoose / 서비스 배포하기! ✨🖥️🌐 (0) | 2025.10.21 |
| [ TIL ] Day 17 - Node.js / Express.js 초기 셋팅하기 📖 (왕 초보 기초!) (0) | 2025.10.20 |
| [ TIL ] Day 16 - Git 심화 학습 (0) | 2025.10.17 |