Notice
Recent Posts
Recent Comments
Link
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
Tags
- ๋น๋๊ด๋ฆฌ๋๊ตฌ ์ฐจ์ด
- ์ด์ฝํ 2021
- ๊ธฐ์ฌ๋จ์์ ๋ฌด๊ธฐ ํ์ด์ฌ
- build.gradle ์ค์ ์ค๋ฅ
- ์๊ณ ๋ฆฌ์ฆ 1000000007 ๋๋๊ธฐ
- www.google.com๏ปฟ ๊ฒ์ํ๋ฉด ์ผ์ด๋๋ ์ผ
- ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ ํ์ด์ฌ
- ๋ฐฑํธ๋ํน
- ๋ชจ๋๋ก ์ฐ์ฐ
- Python 1000000007
- DDL DML DCL ์ฐจ์ด
- @RequestMapping๊ณผ @GetMapping
- Spring Security 5
- java ๋๊ธฐํ
- ์คํ๋ง ๋ถํธ์ AWS๋ก ํผ์ ๊ตฌํํ๋ ์น ์๋น์ค
- finalize ์๋ ํธ์ถ
- OOP์ ํน์ง
- RDBMS์ NoSQL ์ฐจ์ด
- ์ ๊ทํ ์ฅ๋จ์
- ์น ๋์ ๊ณผ์
- ํ๋ก์ธ์ค
- ๊ธฐ์ฌ๋จ์์ ๋ฌด๊ธฐ ์ ๊ณฑ๊ทผ
- Spring Security ๋ฒ์ ๋ฌธ์
- MySQL RIGHT()
- MySQL LEFT()
- commit message convention
- ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ ํ์ด์ฌ ์๊ฐ์ด๊ณผ
- ํ๋ก๊ทธ๋๋จธ์ค 142086
- PCB
- ๋น๋๊ด๋ฆฌ๋๊ตฌ
Archives
- Today
- Total
BUILD_SSO
[Database/๋ฐ์ดํฐ๋ฒ ์ด์ค] ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ข ๋ฅ์ ํน์ง ๋ณธ๋ฌธ
Tech Interview
[Database/๋ฐ์ดํฐ๋ฒ ์ด์ค] ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ข ๋ฅ์ ํน์ง
sohyeonnn 2023. 5. 2. 17:13๐๐ป๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
- ์ข
์์ฑ์ผ๋ก ์ธํ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๋ค.
์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ ํ์ผ์ด ์ํธ ์์กด์ ์ธ ๊ด๊ณ์๋ ๋ฐ์ดํฐ ํ์ผ์ด ๋ณด์กฐ๊ธฐ์ต์ฅ์น์ ์ ์ฅ๋๋ ๋ฐฉ๋ฒ์ด๋ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ์ ๊ทผ ๋ฐฉ๋ฒ์ ๋ณ๊ฒฝํ ๋ ์์ฉ ํ๋ก๊ทธ๋จ๋ ๊ฐ์ด ๋ณ๊ฒฝํด์ผ ํ๋ค. - ์ค๋ณต์ฑ์ผ๋ก ์ธํ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๋ค.
- ์ผ๊ด์ฑ: ์ค๋ณต๋ ๋ฐ์ดํฐ ๊ฐ์ ๋ด์ฉ์ด ์ผ์นํ์ง ์๋ ์ํฉ์ด ๋ฐ์ํ๋ค. ๋ฐ๋ผ์ ์ผ๊ด์ฑ์ด ์์ด์ง๋ค.
- ๋ณด์์ฑ: ์ค๋ณต๋์ด ์๋ ๋ชจ๋ ๋ฐ์ดํฐ์ ๋๋ฑํ ๋ณด์์์ค์ ์ ์งํ๊ธฐ ์ด๋ ต๋ค.
- ๊ฒฝ์ ์ฑ: ์ ์ฅ๊ณต๊ฐ์ ๋ญ๋น์ ๋์ผํ ๋ฐ์ดํฐ์ ๋ฐ๋ณต ์์ ์ผ๋ก ๋น์ฉ์ด ์ฆ๊ฐํ๋ค.
- ๋ฌด๊ฒฐ์ฑ: ์ ์ด์ ๋ถ์ฐ์ผ๋ก ๋ฐ์ดํฐ์ ์ ํ์ฑ์ ์ ์งํ ์ ์๋ค. - ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์ ํจ๊ณผ๋ก ์๋ ์ด๊ฐ์ง๊ฐ์๋ค.
1. ๋ฐ์ดํฐ์ ๋ ผ๋ฆฌ์ ๋ฌผ๋ฆฌ์ ๋ ๋ฆฝ์ฑ์ด ๋ณด์ฅ๋๋ค.
2. ๋ฐ์ดํฐ์ ์ค๋ณต์ ํผํ ์ ์์ด ๊ธฐ์ต๊ณต๊ฐ์ด ์ ์ฝ๋๋ค.
3. ์ ์ฅ๋ ์๋ฃ๋ฅผ ๊ณต๋์ผ๋ก ์ด์ฉํ ์ ์๋ค.
4. ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ ์ ์งํ ์ ์๋ค.
5. ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ ์ ์๋ค.
6. ๋ณด์์ ์ ์งํ ์ ์๋ค.
7. ๋ฐ์ดํฐ๋ฅผ ํ์คํ ํ ์ ์๋ค.
8. ๋ฐ์ดํฐ๋ฅผ ํตํฉํ์ฌ ๊ด๋ฆฌํ ์ ์๋ค.
9. ํญ์ ์ต์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ๋ค.
10. ๋ฐ์ดํฐ์ ์ค์๊ฐ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
๐๐ปDDL, DML, DCL์ฐจ์ด๋ฅผ ์ค๋ช ํด์ฃผ์ธ์.
๊ฐ๊ฐ SQL์ ์ฉ๋์ ๋ฐ๋ฅธ ๋ถ๋ฅ์ ๋๋ค.
DDL, DML, DCL, TCL๋ก ๋๋๋ค.
- DDL: ๋ฐ์ดํฐ ์ ์์ด/๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ ๋๋ ์คํค๋ง๋ฅผ ์ ์ํ๋๋ฐ ์ฌ์ฉํ๋ค.
- create, alter, drop, rename, comment, truncate
- DML: ๋ฐ์ดํฐ ์กฐ์์ด/๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ๊ด๋ฆฌ๋ ์กฐํ์ ์ฌ์ฉ๋๋ค.
- select, insert, update, delete, …
- DCL: ๋ฐ์ดํฐ์ ์ด์ด/๋ฐ์ดํฐ์ ๋ํด ๋ฌด๊ฒฐ์ฑ ์ ์ง, ๋ณํ ์ํ ์ ์ด, ๋ณดํธ์ ๊ด๋ฆฌ๋ฅผ ์ํ ์ธ์ด
- grant, revoke
- TCL: ํธ๋์ญ์
์ ์ด์ด/DCL๊ณผ ๋น์ทํ ๋งฅ๋ฝ์ด์ง๋ง ๋ฐ์ดํฐ๋ฅผ ์ ์ดํ๋ ์ธ์ด๊ฐ ์๋ **ํธ๋์ญ์
**์ ์ ์ดํ ๋ ์ฌ์ฉํ๋ค. ๋
ผ๋ฆฌ์ ์ธ ์์
๋จ์๋ฅผ ๋ฌถ์ด DML์ ์ํด ์กฐ์๋ ๊ฒฐ๊ณผ๋ฅผ ํธ๋์ญ์
๋ณ๋ก ์ ์ดํ๋ค.
- commit, rollback
*DCL๊ณผ TCL์ ์ฐจ์ด
๐๐ปRDBMS์ NoSQL์ ์ฐจ์ด์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์.
RDBMS๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ 2์ฐจ์ ํ ์ด๋ธ ํํ๋ก ์ ์ฅํฉ๋๋ค.
NoSQL์ RDBMS์ ๋ฐ๋๋ก ๋ฐ์ดํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์ํ์ง ์๊ณ , ์คํค๋ง๊ฐ ์์ด ์ข๋ ์์ ๋กญ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ์ ์์ต๋๋ค. ์ปฌ๋ ์ ์ด๋ผ๋ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
RDBMSํน์ง
- ์ฅ์ : ์คํค๋ง์ ๋ง์ถฐ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ๋ณด์ฅํ ์ ์๋ค.
- ๋จ์ : ์์คํ ์ด ์ปค์ง ์๋ก ์ฟผ๋ฆฌ๊ฐ ๋ณต์กํด์ง๊ณ ์ฑ๋ฅ์ด ์ ํ๋๋ฉฐ Scale-out์ด ์ด๋ ต๋ค(Scale-up๋ง ๊ฐ๋ฅ)
NoSQLํน์ง
- ์ฅ์ : ์คํค๋ง ์์ด Key-Value ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํด ์์ ๋กญ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ ์ ์๋ค.
- ๋ฐ์ดํฐ ๋ถ์ฐ์ด ์ฉ์ดํ์ฌ ์ฑ๋ฅ ํฅ์์ ์ํ scale-up ๋ฟ๋ง์๋ scale-out ๋ํ ๊ฐ๋ฅํ๋ค.
- ๋จ์ : ๋ฐ์ดํฐ ์ค๋ณต์ด ๋ฐ์ํ ์ ์๊ณ , ์ค๋ณต๋ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ์์ ์ ๋ชจ๋ ์ปฌ๋ ์ ์์ ์ํํด์ผ ํ๋ค.
- ์คํค๋ง๊ฐ ์กด์ฌํ์ง ์๊ธฐ์ ๋ช ํํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฅํ์ง ์์ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๊ฒฐ์ ์ด ์ด๋ ค์ธ ์ ์๋ค.
๐๐ป๊ทธ๋ ๋ค๋ฉด RDBMS์ NoSQL์ ์ด๋ ๊ฒฝ์ฐ์ ์ ํฉํ๊ฐ์?
- RDBMS๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ๋ช ํํ๊ณ , ๋ณ๊ฒฝ ๋ ์ฌ์ง๊ฐ ์์ผ๋ฉฐ ์คํค๋ง๊ฐ ์ค์ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ํ ์ค๋ณต๋ ๋ฐ์ดํฐ๊ฐ ์์ด(๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ) ๋ณ๊ฒฝ์ด ์ฉ์ดํ๊ธฐ ๋๋ฌธ์ ๊ด๊ณ๋ฅผ ๋งบ๊ณ ์๋ ๋ฐ์ดํฐ๊ฐ ์์ฃผ ๋ณ๊ฒฝ์ด ์ด๋ฃจ์ด์ง๋ ์์คํ ์ ์ ํฉํฉ๋๋ค.
- Nosql์ ์ ํํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ์ ์๊ฑฐ๋ ๋ณ๊ฒฝ / ํ์ฅ ๋ ์ ์๋ ๊ฒฝ์ฐ์ ์ฝ๊ธฐ(read)์ฒ๋ฆฌ๋ฅผ ์์ฃผํ์ง๋ง, ๋ฐ์ดํฐ๋ฅผ ์์ฃผ ๋ณ๊ฒฝ(update)ํ์ง ์๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ฉด ์ข์ต๋๋ค.
๐๐ปCAP ์ด๋ก ์ด๋?
๋ถ์ฐ ์ปดํจํ ํ๊ฒฝ์ ์ผ๊ด์ฑ(Consistency), ๊ฐ์ฉ์ฑ(Availability), ๋ถํ ๋ด์ฑ(Partition tolerance)์ ์ธ ๊ฐ์ง ํน์ง์ ๊ฐ์ง๊ณ ์๋๋ฐ, CAP์ด๋ก ์ ์ด 3๊ฐ์ง์ค ์ต๋ 2๊ฐ์ง๋ง ๋ง์กฑํ ์ ์๋ค๋ ์ด๋ก ์ ๋๋ค.
- ์ผ๊ด์ฑ(Consistency) - ๋ชจ๋ ๋ ธ๋๋ค์ด ๋์ผ ์๊ฐ ๋์ผ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค์ผ ํ๋ ๊ฒ
- ๊ฐ์ฉ์ฑ(Availability) - ํน์ ๋ ธ๋์ ์ฅ์ ๊ฐ ๋ฐ์ํด๋ ์ฑ๊ณต์ ์ผ๋ก ์๋น์ค๋ฅผ ์ง์ํ๋ ๊ฒ
- ๋ถํ ๋ด์ฑ(Partition tolerance) - ์ฐ๊ฒฐ์ด ๋์ด์ ธ๋ ์ฐ์ํด์ ๋์ํ๋ ๊ฒ
- RDBMS๋ ์ผ๋ฐ์ ์ผ๋ก CA๋ฅผ ๋ง์กฑํ๊ณ ,
NoSQL์ CP, APํํ๋ฅผ ๊ฐ์ง ์ ์๋ค. CPํํ๋ฅผ ๊ฐ์ง๋ NoSQL์ MongoDB, Redis ๋ฑ์ด ์๋ค.
๐๐ป์ ์ฅ ๋ฐฉ์์ ๋ฐ๋ฅธ NoSQL ๋ถ๋ฅ
key-value
- ๊ธฐ๋ณธ์ ์ธ ํจํด์ผ๋ก key-value ํ๋์ ๋ฌถ์(Unique)์ผ๋ก ์ ์ฅ๋๋ ๊ตฌ์กฐ๋ก ๋จ์ํ ๊ตฌ์กฐ์ด๊ธฐ์ ์๋๊ฐ ๋น ๋ฅด๋ฉฐ ๋ถ์ฐ ์ ์ฅ ์ ์ฉ์ดํ๋ค.
- Key ์์ (COLUMN, VALUE) ํํ๋ก ๋ ์ฌ๋ฌ ๊ฐ์ ํ๋, ์ฆ COLUMN FAMILIES ๊ฐ๋๋ค.
- ์ฃผ๋ก server config, session clustering๋ฑ์ ์ฌ์ฉ๋๊ณ , ์ก์ธ์ค ์๋๋ ๋น ๋ฅด์ง๋ง scan์๋ ์ฉ์ดํ์ง ์๋ค๋ ํน์ง์ด ์๋ค.
document
- ํ ์ด๋ธ์ ์คํค๋ง๊ฐ ์ ๋์ , ์ฆ ๋ ์ฝ๋๋ง๋ค ๊ฐ๊ฐ ๋ค๋ฅธ ์คํค๋ง๋ฅผ ๊ฐ์ง ์ ์๋ค. ๋ณดํต XML, JSON๊ณผ ๊ฐ์ DOCUMENT๋ฅผ ์ด์ฉํด ๋ ์ฝ๋๋ฅผ ์ ์ฅํ๋ค.
- ํธ๋ฆฌํ ๊ตฌ์กฐ๋ก ๋ ์ฝ๋๋ฅผ ์ ์ฅํ๊ฑฐ๋ ๊ฒ์ํ๋ ๋ฐ ํจ๊ณผ์ ์ด๋ค.
wide-column
- ํ๋ง๋ค ํค์ ํด๋น ๊ฐ์ ์ ์ฅํ ๋๋ง๋ค ๊ฐ๊ฐ ๋ค๋ฅธ๊ฐ์ ๋ค๋ฅธ ์์ ์คํค๋ง๋ฅผ ๊ฐ์ง ์ ์๋ค.
- ์ด๋ฌํ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋ wide-column database๋ ๋๋์ ๋ฐ์ดํฐ์ ์์ถ, ๋ถ์ฐ์ฒ๋ฆฌ, ์ง๊ณ ์ฟผ๋ฆฌ (SUM, COUNT, AVG ๋ฑ)๋ฐ ์ฟผ๋ฆฌ ๋์ ์๋ ๊ทธ๋ฆฌ๊ณ ํ์ฅ์ฑ์ด ๋ฐ์ด๋ ๊ฒ์ด ํน์ง์ด๋ค.
graph
- ๋ฐ์ดํฐ๋ฅผ ๋ ธ๋๋ก(๊ทธ๋ฆผ์์ ํ๋, ๋ น์ ์) ํํํ๋ฉฐ ๋ ธ๋ ์ฌ์ด์ ๊ด๊ณ๋ฅผ ์ฃ์ง(๊ทธ๋ฆผ์์ ํ์ดํ)๋ก ํํํ๋ค.
- ์ผ๋ฐ์ ์ผ๋ก RDBMS ๋ณด๋ค ์ฑ๋ฅ์ด ์ข๊ณ ์ ์ฐํ๋ฉฐ ์ ์ง๋ณด์์ ์ฉ์ดํ ๊ฒ์ด ํน์ง์ด๋ค.
'Tech Interview' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Database/๋ฐ์ดํฐ๋ฒ ์ด์ค] DB Query & JOIN (0) | 2023.05.03 |
---|---|
[Database/๋ฐ์ดํฐ๋ฒ ์ด์ค] ํค (0) | 2023.05.03 |
[Network/๋คํธ์ํฌ] ์น๋ธ๋ผ์ฐ์ ์ google.com์ ์น๋ฉด ์ผ์ด๋๋ ๊ณผ์ (์น ๋์ ๊ณผ์ /๋ฐฉ์) (0) | 2023.05.02 |
[Network/๋คํธ์ํฌ] OSI 7๊ณ์ธต (0) | 2023.04.19 |
[Network/๋คํธ์ํฌ] CORS, Frame/Packet/Segment/Datagram (0) | 2023.04.19 |
Comments