๐ป DEV/Database6 [Database] Redis Vs Memcached โจ Caching Solution ์บ์ฑ์ ์ดํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ ํฅ์์ ๊ฐ์ฅ ๋ง์ด ๊ธฐ์ฌํ๋ ๋จ๊ณ์ด๋ค. ์บ์ ์๋ฒ ๋๋ in-memory cache ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด ๋ง์ด๋ค ์์๋ณด๋ ๊ฒ์ด Redis ์ Memcache ์ธ๋ฐ, ์ด ๋ ๊ฐ์ง๋ฅผ ๋น๊ตํด ๋ณด๋ฉฐ ๊ตฌํํ๊ณ ์ ํ๋ ์๋น์ค์ ๋ ์ ํฉํ ์บ์ ์๋ฃจ์ ์ธ์ง ์์๋ณด์. Memcached ๋ 2003 ๋ ์ ๋์จ ๊ณ ์ฑ๋ฅ ์บ์ฑ ์๋ฃจ์ ์ด๋ค. Redis ๋ ๋น๊ต์ ์ต๊ทผ์ ๋์์ผ๋ฉฐ (2009๋ ), ์ฌ๋ฌ ๊ธฐ๋ฅ์ ํ์ฌํ ์บ์ฑ ์๋ฃจ์ ์ด๋ค. AWS ์์๋ ์ด๋ค์ ๊ณตํต์ ๊ณผ ์ฐจ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ด ์ ๋ฆฌํ๊ณ ์๋ค. ํ๋ก ๋ณด๋ ๋ญ๊ฐ Memcached ๊ฐ Redis ์ ๋นํด ํ ์ค ์๋ ๊ฒ์ด ์ ์ด๋ณด์ด๋๋ฐ, ์ค์ ๋ก๋ ๊ทธ๋ ๋ค. Memcached ๋ ๋จ์ํ ์์ ์ ์ํด ๊ณ ์๋ ๋ฐ๋ฉด Redis ๋ ์ฌ๋ฌ.. 2021. 8. 10. [Database] Express/NodeJS ์์ Redis ์ฌ์ฉํ๊ธฐ โจ Redis ๋? Remote Dictionary Server (DB) ์ด๋ฉฐ, In-memory Data structure Store ๋ก, ๋ฉ๋ชจ๋ฆฌ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค. ๋ค์ํ ์๋ฃ ๊ตฌ์กฐ๋ฅผ ์ ์ฅํ์ง๋ง, ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ๋ฐ์ดํฐ๋ Key-Value ์์ ์ด๋ฃจ๊ธฐ ๋๋ฌธ์ NoSQL DB ๋ก ํ์ฉ๋๋ค. ๋์คํฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด ์๋๊ฐ ๋๋ฆฐ RDBMS ๋ฑ์ DBMS ๋ณด๋ค ํ์ฉ๋๊ฐ ๋์ ์ผ์ด์ค๊ฐ ์ข ์ข ์๋๋ฐ, ๊ทธ ๋ํ์ ์ธ ์๊ฐ ์บ์ (Cache) ์ด๋ค. ํด๋ผ์ด์ธํธ์์ ์๋ฒ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ฌ๋ผ๋ ์์ฒญ์ ๋ณด๋ด๋ฉด ์๋ฒ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ์ป์ด์ค๊ฒ ๋๋๋ฐ, ๋์ผํ ์์ฒญ์ด ์ฌ๋ฌ ๋ฒ ์ฌ ๊ฒฝ์ฐ ๊ณ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋๋ค. ์ด๋ ์๋นํ ๋นํจ์จ์ ์ด๋ฉฐ, ๋ฐ์ดํฐ์ ํฌ๊ธฐ์ ๋ฐ๋ผ ์๋ต ์๋๊ฐ ๊ณ์ ์ง์ฐ๋ ์ ์๊ธฐ .. 2021. 7. 18. [Database] ์ค๋ฉ(Sharding) ์ด๋? โจ Sharding ์ด๋? Shard ๋ ์กฐ๊ฐ, ํํธ์ด๋ผ๋ ์๋ฏธ๋ฅผ ๋ด๊ณ ์๋ ๋จ์ด์ด๋ค. ์ด์ฒ๋ผ DB ๋ฅผ ์กฐ๊ฐ์ผ๋ก ๋๋์ด ๊ด๋ฆฌํ๋ ๊ฐ๋ ์ "sharding" ์ด๋ผ๊ณ ํ๋ค. Horizontal Partitioning ๊ณผ ์ฐ๊ด์ฑ์ด ๋๋ค. (๋์ผํ ๊ฐ๋ ์ผ๋ก ๋ณผ ์ ์๋ค) โจ Partitioning ์ด๋? ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ถํ ์ ์ผ์ปซ๋ ์ฉ์ด๋ก, DB๋ฅผ ์ฌ๋ฌ ๋ถ๋ถ์ผ๋ก ๋ถํ ํ๋ ๊ฒ์ด๋ค. ๋ถํ๋ ๊ฐ ๋ถ๋ถ์ 'ํํฐ์ ' ์ด๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ, ๋ฐ์ดํฐ๊ฐ ๋๋ฌด ์ปค์ ธ์ (VLDB : Very Large DBMS) ์กฐํ ์๊ฐ์ด ๊ธธ์ด์ง๊ฑฐ๋ ์ฑ๋ฅ ํฅ์ ๋ฑ์ ์ด์ ๋ก ํํด์ง๋ค. Horizontal Partitioning (Sharding): ํ ์ด๋ธ์ ๊ฐ ํ์ ๋ค๋ฅธ ํ ์ด๋ธ์ ๋ถ์ฐ์ํค๋ ๊ฒ์ด๋ค. ์ฅ์ ์ ๋ค์๊ณผ ๊ฐ๋ค. ๋ฐ์ดํฐ์ ๊ฐ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋๋ ์.. 2021. 7. 14. [Database] Row oriented DB, Column oriented DB ๋? โจ Row vs Column Oriented DB ๋ง ๊ทธ๋๋ก ํ ์ค์ฌ DB ์ ์ด ์ค์ฌ DB ์ ์ฐจ์ด๋ฅผ ๋ ผํ๋ ์ฃผ์ ์ด๋ค. ์ธ๋ป ๋ณด๊ธฐ์๋ ๋ณ ์ฐจ์ด๊ฐ ์์ด ๋ณด์ผ ์ ์์ผ๋ฉฐ, ํ ์ด๋ธ๋ก ๊ตฌ์ฑ๋ DB ์คํค๋ง๋ฅผ ๋ ์ฌ๋ฆด ์ ์๋ค๋ ์ ์์ ์คํ๋ ค ๊ฐ์ ๋ณด์ด๊ธฐ๋ ํ๋ค. ๊ทธ๋ฌ๋ ๋ฐ์ดํฐ์ ์ด์ ๊ด๋ฆฌ ๋จ์๋ฅผ ํ์ผ๋ก ๋๋์ง ์ด๋ก ๋๋์ง์ ๋ฐ๋ผ ์๊ตฌ๋๋ ์๋ฒ์ ์ฑ๋ฅ ๋๋ ๋์์ ์ฐจ์ด๊ฐ ๋ง์ด ๋๊ธฐ๋ ํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด ๋์ ๋ช ํํ ๊ตฌ๋ถ๋์ด์ผ ํ๋ ๊ฐ๋ ์ด๋ค. Row-oriented DB ์ Column-oriented DB (๋๋ Columnar, C-Store DB)๋ RDBMS (๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค) ๋ฅผ ๊ด๋ฆฌํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด๋ค. ์ฝ๊ฒ ํํํ์๋ฉด ์ ์๋ ๋ ์ฝ๋ (ํ) ์ผ๋ก ๊ด๋ฆฌ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ฉฐ, ํ์๋ ์ด๋ก ๊ด๋ฆฌ๋๋ .. 2021. 7. 13. [Database] DB ํจ๋ฌ๋ค์ (Paradigm) ์ด๋? โจ DB ํจ๋ฌ๋ค์์ ํ์์ฑ DB ํจ๋ฌ๋ค์์ด๋ DB ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์๋ฏธํ๋ค. ๊ฐ ํจ๋ฌ๋ค์๋ง๋ค ์ต์ ์ ์ฌ์ฉ ํ๊ฒฝ๊ณผ ์กฐ๊ฑด์ด ์กด์ฌํ๋ค. ์ฐจ๋ก๋ก ์ฌ๋ฌ DB ํจ๋ฌ๋ค์์ ์๊ฐํด๋ณธ๋ค. โจ 1. Key-Value DB DBMS: Redis, Memcached, Etcd ๋ฑ ํน์ง: Javascript ์ object ๋๋ python ์ dictionary ๋ฐ์ดํฐ ํ์ ๊ณผ ๋น์ทํ๋ค. ์ ์ผํ key ๊ฐ์ด ์กด์ฌํ๋ฉฐ, ๊ฐ key์ ์์ํ๋ value ๋ฅผ ๊ฐ์ง ๋ฐ์ดํฐ ๊ตฌ์กฐ์ด๋ค. ์ฅ์ : ๋๋ถ๋ถ์ ๋ค๋ฅธ DB ๋ ๋์คํฌ์ ์ ์ฅ๋์ง๋ง, Key-Value DB ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๋ค. ๋ชจ๋ ์์ ๋ง๋ค ๋์คํฌ์ ์ ๊ทผํ์ง ์์๋ ๋๊ธฐ ๋๋ฌธ์ ์๋๊ฐ ๊ต์ฅํ ๋น ๋ฅด๋ค. ๋จ์ : ์ ์ฅํ ์ ์๋ ๋ฐ์ดํฐ์ ์ฉ๋์ ํ๊ณ๊ฐ ์๋ค. ์ฟผ๋ฆฌ๋ฅผ ์ง์ํ์ง ์.. 2021. 7. 8. [Database] ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDBMS) ์ SQL Q. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋? (Relational Databse) ์ผ๋ฐ์ ์ผ๋ก '์ ๋ณด'๋ฅผ '๋ฐ์ดํฐ'๋ผ๊ณ ํ๋ค. ๊ทธ๋ฆฌ๊ณ '์ ๋ณด์ ์งํฉ' ๋๋ '์ฒด๊ณํ๋ ์ ๋ณด์ ์งํฉ'์ '๋ฐ์ดํฐ๋ฒ ์ด์ค' (DB) ๋ผ๊ณ ํ๋ค. ๊ฐ๋ น, SNS ์ ๊ฐ์ ๋ ์ด์ฉ์๋ค์ ์์ด๋, ๋น๋ฐ๋ฒํธ, ์ด๋ฉ์ผ์ฃผ์, ์ ํ๋ฒํธ, ์ฑ๋ณ, ๋์ด ๋ฑ์ ์งํฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ผ๊ณ ๋ณผ ์ ์๋ค. Database ์ ์: ์์ด๋ ๋น๋ฐ๋ฒํธ ์ ํ๋ฒํธ ์ฑ๋ณ ๋์ด ... 0 abc 12345 01011112222 F 19 1 def 67890 01098765432 F 33 2 ghi 24680 01012341234 M 21 ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ค์ํ ์ ํ์ด ์กด์ฌํ๋๋ฐ, ์์ ๊ฐ์ ํ ์ด๋ธ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ฌ ๋ฐ์ดํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ํ์ฑํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๊ณํ (Relational.. 2021. 1. 5. ์ด์ 1 ๋ค์