์ค๋ฆฌ์ฝ๋ฐธ๋ฆฌ์์ ๋ ์์จ ๋ฐ์ดํฐ๋ฒ ์ด์ค - 1. MySQL ์๊ฐ/์ค์น์ ์์ ๋ฐ์ดํฐ ์๊ฐ
1. MySQL ์๊ฐ
- ์คํ์์ค์ ์ ๋ฃ๋ฒ์ ์ด ์กด์ฌ
- Maria DB : MySQ์ด ์ค๋ผํด์ ์ธ์๋๋ฉฐ ์ ๋ฃํ ์ฌ๋ถ๊ฐ ์์ ์ด ๋ ํ MySQL ์ด๊ธฐ ๊ฐ๋ฐ์ ์ค ํ๋์ธ Monty๊ฐ MySQL๊ณผ ํธํ๋๋ ์คํ์์ค ๊ฐ๋ฐ. MySQL 5.5 ๊ธฐ๋ฐ์์ ๊ฐ๋ฐ๋ฌ์ผ๋ฉฐ ์ธํฐํ์ด์ค๋ ๋์ผํ๋ ์ฑ๋ฅ์ด ๋ ์ข๋ค.
- ํน์ง
- Postgres์ ํจ๊ป ๊ฐ์ฅ ๋๋ฆฌ ์ฐ์ด๋ ํ๋ก๋์ ์ฉ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์๋ฒ ํ๋์ง๋ฆฌ ์๋ฃจ์ → ์ฌ๋ฌ๋ ์๋ฒ์ ๋ถ์ฐ ๋์ํ์ง ๋ชปํ๋ค. ์ฉ๋ ์ด์๊ฐ ์๊ธธ ์ ์์.
- ์ฉ๋ ์ฆ๋ ๋ฐฉ์ :
- Scale-UP : ์๋ฒ์ CPU์ Memory ์ถ๊ฐ. ์๋ฒ์ ์ฌ์์ ๋์ธ๋ค → but ํ๊ณ๊ฐ ์์
- Scale-out : Master-Slave ๊ตฌ์ฑ. ์ผ๋ฐ์ ์ผ๋ก ํด๋ฌ์คํธ ๊ตฌ์ฑ์ ์ด์ผ๊ธฐํ๋ MySQL์ ์ด๋ฅผ ์ง์ํ์ง ๋ชปํจ.
- : MySQL์์ Scale-out์ Master-Slave ํํ๋ก ํ๋(Master)๊ฐ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ๋ค์์ ์๋ฒ์ ๋ณต์ฌํจ์ผ๋ก์ ์ฝ๊ธฐ ๋์์์ ๋ ํฐ ์ฉ๋์ ์ง์ํ๋ค. → ์ฒ๋ฆฌ๋ Master๋ง ํ ์ ์์
2. ํด๋ผ์ฐ๋/AWS ์๊ฐ
ํด๋ผ์ฐ๋ : ์ปดํจํฐ ์์์ ๋คํธ์์ ํตํด ์๋น์ค ํํ๋ก ์ ๊ณต
→ No Provisioning, Pay As You Go
→ ์์(์๋ฒ)๋ฅผ ํ์ํ ๋งํผ ์ค์๊ฐ์ผ๋ก ํ ๋นํ์ฌ ์ฌ์ฉํ๋งํผ ์ง๋ถํ๊ธฐ๋๋ฌธ์ ํ๋ ฅ์ ์ผ๋ก ํ์ํ ๋งํผ ์์์ ์ ์งํ๋ ๊ฒ์ด ์ค์ํ๋ค.
ํด๋ผ์ฐ๋๊ฐ ์์ ๋
→ ๋ฐ์ดํฐ์ผํฐ ๊ณต๊ฐ์ ์ง์ ํ๋ณดํด์ผํ๋ค.
→ Peak time์ ๊ธฐ๋ถ์ผ๋ก Capaxity planning์ ํด์ผํด์ ๋ ธ๋ ์์์ด ๋ง์ ์ง๋ค.
AWS
- ๊ฐ์ฅ ํฐ ํด๋ผ์ฐ๋ ์ปดํจํ ์๋น์ค ์ ์ฒด - ๋ค์ํ ์๋น์ค ์ ๊ณต,,
- EC2 (Elastic Cloud Compute) : AWS ์๋ฒ ํธ์คํ
์๋น์ค
- ๋ฆฌ๋ ์ค ํน์ ์๋์ฐ ์๋ฒ๋ฅผ ๋ก ์นญํ๊ณ ๋ก๊ทธ์ธ ๊ฐ๋ฅ
- ๊ฐ์ ์๋ฒ๋ค์ด๋ผ ์ ์ฉ์๋ฒ์ ๋นํด ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค.
- ๊ตฌ๋งค์ต์ : On-Demand* / Reserved / Spot Instance
- S3 (Simple Storage Service) :์๋ง์กด์์ ์ ๊ณตํ๋ ๋์ฉ๋ ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง ์๋น์ค
- ๋ฐ์ดํฐ ์ ์ฅ๊ด๋ฆฌ๋ฅผ ์ํด ๊ณ์ธต์ ๊ตฌ์กฐ๋ฅผ ์ ๊ณต
- Database Service
- RDS(Relational Database Service) : MySQL, PostgreSQL, Oracle ๋ฑ
- AI & ML Service
- Alexa : Voice Bot Platform
- Connect : Contact Center Solution ์ฝ์ผํฐ ๊ตฌํ์ด ์ฌ์์ง
- Lambda
3. MySQL ์ค์น - Docker
- Docker : ์ํํธ์จ์ด๋ค์ ํ๋์ ํจํค์ง๋ก ๋ง๋ฌ์ผ๋ก์ ํด๋น ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐ๊ณผ ์ฌ์ฉ์ ๋์์ฃผ๋ ์คํ์์ค ํ๋ซํผ
- ํจํค์ง๋ฅผ ๋จผ์ ํ์ผ ์์คํ ํํ๋ก ๋ง๋๋๋ฐ ์ด๋ฅผ Docker Image๋ผ๊ณ ํ๋ค.
- Docker Image ๊ณต์ ์๋ฅผ Docker Registry(Docker Hub)๋ผ๊ณ ๋ถ๋ฆ - ์คํ์์ค
- Image๋ฅผ ์คํ์ํค๋ ๊ฒ์ Docker Containr๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ ์์ฉํ๋ก๊ทธ๋จ์ ํด๋นํ๋ค.
- Virtualization vs .Containerization
- Docker๋ก SQL ์ค์น
- ์ปดํจํฐ์ Docker Engine ์ค์น
- https://docs.docker.com/desktop/
- MySQL Docker Image ๋ค์ด๋ก๋
- ๋ค์ด๋ก๋๋ MySQL Docker Container ์คํ
4. MySQL ์ค์น - AWS RDS
AWS RDS : AWS๊ฐ ์ ๊ณตํด์ฃผ๋ ๋ค์ํ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค
5. MySQL DDL๊ณผ ์์ ํ ์ด๋ธ ์๊ฐ
โ ์น์๋น์ค ์ฌ์ฉ์/์ธ์ ์ ๋ณด ๋ค๋ฃจ๊ธฐ
- ์ฌ์ฉ์ ID : ์น์์ง์ค์ ๋ฑ๋ก๋ ์ฌ์ฉ์๋ง๋ค ์ ์ผํ ID
- ์ธ์
ID : ์ธ์
๋ง๋ค ๋ถ์ฌ๋๋ ID
- ์ธ์
: ์ฌ์ฉ์์ ๋ฐฉ๋ฌธ์ ๋
ผ๋ฆฌ์ ์ธ ๋จ์๋ก ๋๋ ๊ฒ
- ์๊ฐ ๋จ์ - ๋ฐฉ๋ฌธ์๊ฐ 30๋ถ๊ฐ interaction์ด ์๋ค๋ฉด ์ธ์ ์ ๋๊ณ ๋ญ๊ฐ๋ฅผ ํ๋ ๊ฒฝ์ฐ ์๋ก์ด ์ธ์ ์์ฑ
- ๊ณ์ ์ฌ์ฉ์ ํ๋ค๊ฐ๋ ๋งํฌ๋ฅผ ํ๊ณ ๋ค์ ์ ์์ ํ๋ฉด(๋ณดํต ๊ด๊ณ ๋ฅผ ํตํด) ๊ธฐ์กด ์ธ์ ์ ๋ซ๊ณ ์๋ก์ด ์ธ์ ์ ์์ฑ
- ํ๋์ ์ฌ์ฉ์๊ฐ ์ฌ๋ฌ๊ฐ์ ์ธ์ ์ ๊ฐ์ง ์ ์๋ค.
- ๋ณดํต ์ธ์ ์ ๋ง๋์ด๋ธ ๊ฒฝ์ ์ง๋ฅผ ์ฑ๋์ด๋ ์ด๋ฆ์ผ๋ก ๊ธฐ์ต, ๋ํ ์ธ์ ์ด ์๊ธด ์๊ฐ๋ ๊ธฐ๋ก
- ์ธ์
: ์ฌ์ฉ์์ ๋ฐฉ๋ฌธ์ ๋
ผ๋ฆฌ์ ์ธ ๋จ์๋ก ๋๋ ๊ฒ
- ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง
์ปฌ๋ผ | ํ์ | ์์ฑ |
id | int | NOT NULL AUTO_INCREMENT PRIMARY KEY |
user_id | int | NOT NULL |
created | timestamp | NOT NULL DEFAULT CURRENT_TIME |
channel_id | int | NOT NULL FOREIGN KEY |
session ํ ์ด๋ธ
์ปฌ๋ผ | ํ์ | ์์ฑ |
id | int | NOT NULL AUTO_INCREMENT |
channel | vsrchar(32) | NOT NULL |
channel ํ ์ด๋ธ
- ํ
์ด๋ธ ํ๋ ์์ฑ
- PRIMARY KEY : ํ ์ด๋ธ์ ๋ฌ์ฝ๋์ ์ ์ผ์ฑ์ ์ ์ํ๋ ํ๋. ์ค๋ณต๊ฐ์ ๊ฐ๋ ๋ ์ฝ๋๊ฐ ์๊ธฐ๋ ๊ฒ์ ๋ฐฉ์งํจ
- Foreign Key : ํ ์ด๋ธ์ ํน์ ํ๋๊ฐ ๋ค๋ฅธ ํ ์ด๋ธ์ ํ๋์์ ์ค๋ ๊ฐ์ ๊ฐ๋ ๊ฒฝ์ฐ - ๋ฐ์ดํฐ์ ์ ํฉ์ฑ
- NOT NULL : ํ๋๊ฐ์ด ํญ์ ์กด์ฌํด์ผํ๋ ๊ฒฝ์ฐ
- DEFUALT value : ํ๋์ ๊ฐ์ด ์ฃผ์ค์ง์ง ์๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ์ ์ ์ํด์ค (timestamp ํ์ : CURRENT TIMESTAMP)
CREATE TABLE channel(
id int not null auto_increment,
chennel varchar(32) not null,
primary key(id)
);
CREATE TABLE session(
id int not null auto_increment primary key,
user_id int not null,
created timestamp not null default current_timestamp,
channet_id int not null,
foreign key(channel_id) references channel(id)
);
์ถ์ฒ - ํ๊ธฐ์ฉ ๊ฐ์ฌ๋ : ์ค๋ฆฌ์ฝ๋ฐธ๋ฆฌ์์ ๋ ์์จ ๋ฐ์ดํฐ ๋ฒ ์ด์ค
'Back-end ๋ฐ๋ธ์ฝ์ค > week 01 - 02 TIL (java, DB)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] 221027 - ๋ฐ์ดํฐ๋ฒ ์ด์ค SQL : JOIN (0) | 2022.10.28 |
---|---|
[TIL] 221026 - ๋ฐ์ดํฐ๋ฒ ์ด์ค SQL : SELECT, GROUP BY (0) | 2022.10.26 |
[TIL] 221024 - ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์๊ฐ (0) | 2022.10.24 |
[TIL] 221021 - Java ์ค์ต ํ๋ก์ ํธ : ์ซ์์ผ๊ตฌ ๊ฒ์ (0) | 2022.10.21 |
[TIL] 221020 - Java์ Collection (0) | 2022.10.21 |
๋๊ธ