๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“˜ DataBase10

[DB] ์˜ตํ‹ฐ๋งˆ์ด์ € (1) Mysql ์„œ๋ฒ„๋กœ ์š”์ฒญํ•œ ์ฟผ๋ฆฌ๋Š” ์ตœ์ ์œผ๋กœ ์‹คํ–‰ ๋˜๊ธฐ ์œ„ํ•ด ์ตœ์ ์˜ ์‹คํ–‰ ๊ณ„ํš์„ ์ˆ˜๋ฆฝํ•˜๋Š” ์ž‘์—…์ด ํ•„์š”.๋Œ€๋ถ€๋ถ„์˜ DBMS ์—์„œ๋Š” ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ์ด๋Ÿฐ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•œ๋‹ค.Explain ๋ช…๋ น์œผ๋กœ ์ฟผ๋ฆฌ์˜ ์‹คํ–‰ ๊ณ„ํš ํ™•์ธ ๊ฐ€๋Šฅ. Mysql ์—์„œ๋Š” ๋น„์šฉ ๊ธฐ๋ฐ˜ ์ตœ์ ํ™” (Cost-based optimizer, CBO) ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌํ’€ ํ…Œ์ด๋ธ” ์Šค์บ” ์กฐ๊ฑด- ํ…Œ์ด๋ธ” ๋ ˆ์ฝ”๋“œ ๊ฑด์ˆ˜๊ฐ€ ์ž‘์•„, ์ธ๋ฑ์Šค๋ฅผ ํƒํ•˜๊ธฐ ๋ณด๋‹ค ํ’€ ํ…Œ์ด๋ธ” ์Šค์บ” ํ•˜๋Š” ํŽธ์ด ๋” ๋น ๋ฅธ ๊ฒฝ์šฐ- where ์ ˆ์ด๋‚˜ on ์ ˆ์— ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ ์ ˆํ•œ ์กฐ๊ฑด์ด ์—†์„ ๊ฒฝ์šฐ- ์ธ๋ฑ์Šค ๋ ˆ์ธ์ง€ ์Šค์บ”์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ฟผ๋ฆฌ๋”๋ผ๋„, ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ํŒ๋‹จํ•œ ์กฐ๊ฑด ์ผ์น˜ ๋ ˆ์ฝ”๋“œ ๊ฑด์ˆ˜๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ ์œ„์™€ ๊ฐ™์€ ์กฐ๊ฑด์—์„œ Mysql ์˜ตํ‹ฐ๋งˆ์ด์ €๋Š” ํ’€ ํ…Œ์ด๋ธ” ์Šค์บ”์„ ์‹œ๋„ํ•œ๋‹ค.ํ’€ ํ…Œ์ด๋ธ” ์Šค.. 2024. 8. 11.
[DB] ํŠธ๋žœ์žญ์…˜๊ณผ ๋ฝ ๊ฐ„๋žต ์ •๋ฆฌ ํŠธ๋žœ์žญ์…˜ํŠธ๋žœ์žญ์…˜์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ์ž…์žฅ์—์„œ, ๊ณ ๋ฏผํ•ด์•ผ ํ•  ๋ฌธ์ œ๋ฅผ ํ’€์–ด์ฃผ๋Š” ํ•„์ˆ˜์ ์ธ DBMS ์˜ ๊ธฐ๋Šฅ.ํŠธ๋žœ์žญ์…˜ ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์‚ฌํ•ญDBMS ์˜ ์ปค๋„ฅ์…˜๊ณผ ๋™์ผํ•˜๊ฒŒ ๊ผญ ํ•„์š”ํ•œ ์ตœ์†Œ์˜ ์ฝ”๋“œ์—๋งŒ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ํŠธ๋žœ์žญ์…˜์˜ ๋ฒ”์œ„๋ฅผ ์ตœ์†Œํ™”ํ•˜๋ผ๋Š” ์˜๋ฏธ. ๊ฐ ๋‹จ์œ„ํ”„๋กœ๊ทธ๋žจ์ด ์ปค๋„ฅ์…˜์„ ์†Œ์œ ํ•˜๋Š” ์‹œ๊ฐ„์ด ๊ธธ์–ด์งˆ ์ˆ˜๋ก ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์—ฌ์œ  ์ปค๋„ฅ์…˜์˜ ๊ฐœ์ˆ˜๋Š” ์ค„์–ด๋“ ๋‹ค. ๋ฉ”์ผ ์ „์†ก์ด๋‚˜, ํŒŒ์ผ ์ „์†ก ์ž‘์—… ๋“ฑ, ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์›๊ฒฉ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋Š” ์ž‘์—…์€ ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ์ œ๊ฑฐํ•˜๋ผ. ์›น ์„œ๋ฒ„๋ฟ ์•„๋‹ˆ๋ผ DBMS ์„œ๋ฒ„๊นŒ์ง€ ์œ„ํ—˜ํ•œ ์ƒํ™ฉ ๋ฐœ์ƒ ์ €์žฅ ๋ฐ์ดํ„ฐ์˜ ๋‹จ์ˆœ ์กฐํšŒ์˜ ๊ฒฝ์šฐ๋„ ํŠธ๋žœ์žญ์…˜์— ํฌํ•จํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.๋ฝ๋ ˆ์ฝ”๋“œ ๋ฝ๋ ˆ์ฝ”๋“œ ์ž์ฒด๋งŒ์„ ์ž ๊ทธ๋Š” ๊ฒƒ InnoDB ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์€ ๋ ˆ์ฝ”๋“œ ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ, ์ธ๋ฑ์Šค์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ž ๊ทผ๋‹ค. ์ธ๋ฑ์Šค๊ฐ€ ์—†์„ ๊ฒฝ์šฐ, ๋‚ด๋ถ€.. 2024. 6. 27.
[๋น…๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๋ถ„์„์„ ์œ„ํ•œ NoSQL & Redis] Chapter 6 - Redis Cluster ์‹œ์Šคํ…œ & ๋กœ๊ทธ ๋ชจ๋‹ˆํ„ฐ๋ง 6.1 ๋ณต์ œ & ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ๊ฐœ์š” ์ž์› ๊ณต์œ  ์„œ๋ฒ„ ์ž์› ์ œํ•œ์ , ๊ณผ๋ถ€ํ•˜ ์‹œ ๋‹ค๋ฅธ ์„œ๋ฒ„ ์ž์› ํ™œ์šฉ์œผ๋กœ ํšจ์œจ์„ฑ ์ฆ๊ฐ€ ์„ฑ๋Šฅ ํ–ฅ์ƒ ๊ณผ๋ถ€ํ•˜ ๋ฐœ์ƒ ์‹œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ํ†ตํ•ด ์ž์› ๋ถ„๋ฐฐ ๊ฐ€๋Šฅ ์•ˆ์ •์„ฑ ๋ณต์ œ ์„œ๋ฒ„๋กœ ์žฅ์•  ๋Œ€์ฒดํ•˜์—ฌ ์ž‘๋™ ๋ฐ์ดํ„ฐ ์ฐธ์กฐ ๊ฐ€๋Šฅํ•ด ์œ„ํ—˜ ๋ถ„์‚ฐ ๊ฐ€๋Šฅ Redis: ๋งˆ์Šคํ„ฐ-์Šฌ๋ ˆ์ด๋ธŒ, ๋งˆ์Šคํ„ฐ-์Šฌ๋ ˆ์ด๋ธŒ-์„ผํ‹ฐ๋„, ํŒŒํ‹ฐ์…˜ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ๋ณต์ œ, ๋ถ„์‚ฐ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ Partition ์œ ํ˜• ๋ฒ”์œ„ ํŒŒํ‹ฐ์…˜ (Range Partition) Key-Value๋ฅผ ์„œ๋ฒ„์— ๋ถ„์‚ฐ ์ €์žฅ ์„œ๋ฒ„ ๋Œ€์ˆ˜ ๊ฒฐ์ •์— ๋”ฐ๋ผ ์ €์žฅ ์œ„์น˜ ๊ฒฐ์ • ์„œ๋ฒ„์— ์ €์žฅํ•  ๋ฐ์ดํ„ฐ ์–‘ ๋ถˆ๊ท ํ˜• ๋ฌธ์ œ ๋ฐœ์ƒ ๊ฐ€๋Šฅ ํ•ด์‹œ ํŒŒํ‹ฐ์…˜ (Hash Partition) Hash ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ถ„์‚ฐ ์ €์žฅ Partition ๊ตฌํ˜„ ๋ฐฉ๋ฒ• Client Side Partitioning ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ ๋ถ„.. 2023. 8. 20.
[๋น…๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๋ถ„์„์„ ์œ„ํ•œ NoSQL & Redis] Chapter 5 - Redis ์•„ํ‚คํ…์ฒ˜ 5.1 Redis ์•„ํ‚คํ…์ฒ˜ 1. ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ Resident Area ์‚ฌ์šฉ์ž์˜ ์ž‘์—…์ด ๋จผ์ € ์ €์žฅ๋˜๋Š” ์˜์—ญ ์‹ค์ œ ์ž‘์—… ์ˆ˜ํ–‰ ๊ณต๊ฐ„ "WorkingSet" ์˜์—ญ์œผ๋กœ๋„ ํ‘œํ˜„ Data Structure ์ƒํƒœ ์ •๋ณด ์ €์žฅ์„ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ Redis Server ์šด์˜ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง์— ํ•„์š” 2. ํŒŒ์ผ ์˜์—ญ AOF ํŒŒ์ผ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ ์ง€์† ์ €์žฅ ์Šค๋ƒ…์ƒท ๋ฐ์ดํ„ฐ DUMP ํŒŒ์ผ ์†Œ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ผ์‹œ์  ์ €์žฅ 3. ํ”„๋กœ์„ธ์Šค ์˜์—ญ Server Process Redis ์ธ์Šคํ„ด์Šค ๊ด€๋ฆฌ ๋ฐ ์‚ฌ์šฉ์ž ์ž‘์—… ์ˆ˜ํ–‰ 4๊ฐœ์˜ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ๋กœ ๊ตฌ์„ฑ Main thread, Sub thread 1(BIO-Close-File), Sub thread 2(BIO-AOF-Resync), Sub thread 3(BIO-Lazy-Free) Client Process .. 2023. 8. 20.
[๋น…๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๋ถ„์„์„ ์œ„ํ•œ NoSQL & Redis] Chapter 4 - Redis Data Modeling 4.1 ํ‚ค-๋ฐธ๋ฅ˜(Key-Value) ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๊ฐœ๋… 4.1.1 ์šฉ์–ด ์„ค๋ช… ํ…Œ์ด๋ธ”(Table): ๊ด€๊ณ„ํ˜• DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ๋ฅผ ํ…Œ์ด๋ธ”(table)์ด๋ผ๊ณ  ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ Key-Value DB์—์„œ๋„ ํ…Œ์ด๋ธ”(Table)์ด๋ผ๊ณ  ํ•จ. ํ•„๋“œ(Field) ๋˜๋Š” ์—˜๋ฆฌ๋จผํŠธ(Element): ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜๊ณ  ์žˆ๋Š” ์š”์†Œ๋“ค์„ ๊ด€๊ณ„ํ˜• DB์—์„œ๋Š” ์ปฌ๋Ÿผ(column)์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ Key-Value DB์—์„œ๋Š” ํ•„๋“œ(Field) ๋˜๋Š” ์—˜๋ฆฌ๋จผํŠธ(Element)๋ผ๊ณ  ๋งํ•จ. Key-Value DB์—์„œ๋Š” ํ•˜๋‚˜์˜ Key์™€ ํ•˜๋‚˜ ์ด์ƒ์˜ ํ•„๋“œ ๋˜๋Š” ์—˜๋ฆฌ๋จผํŠธ๋กœ ๊ตฌ์„ฑ๋จ. Key-Value DB์—์„œ๋Š” ์ œ์•ฝ ์กฐ๊ฑด ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋˜์ง€ ์•Š์ง€๋งŒ, HyperLogLogs ๋ฐ์ดํ„ฐ ์†์„ฑ์„ ํ†ตํ•ด ์›ํ•˜๋Š” ์กฐ๊ฑด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ.. 2023. 8. 20.
[๋น…๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๋ถ„์„์„ ์œ„ํ•œ NoSQL & Redis] Chapter 3 - ํŠธ๋žœ์žญ์…˜ ์ œ์–ด & ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ 3.1 Isolation & Lock ๋ชจ๋“  NoSQL ์ œํ’ˆ์ด ํŠธ๋žœ์žญ์…˜์„ ์ œ์–ดํ•˜์ง€๋Š” ์•Š์ง€๋งŒ, Redis๋Š” ํŠธ๋žœ์žญ์…˜ ์ œ์–ด ๊ฐ€๋Šฅ. Redis๋Š” Read Commited ํƒ€์ž…์˜ ํŠธ๋žœ์žญ์…˜ ์ œ์–ด๋„ ๊ฐ€๋Šฅํ•จ. Redis 4.0 ๋ฒ„์ „์—์„œ Data Sets ๋ฝ ๋งค์ปค๋‹ˆ์ฆ˜ ์ œ๊ณต. 3.2 CAS (Check and Set) CAS๋Š” ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ๊ณต์œ ๋ฅผ ์œ„ํ•œ ๊ธฐ์ˆ ๋กœ ๋™์‹œ ์ฒ˜๋ฆฌ ์‹œ ์ถฉ๋Œ์„ ํ”ผํ•จ. Watch ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถฉ๋Œ ๊ฐ์ง€ ๊ฐ€๋Šฅ. 3.3 commit & rollback EXEC: ๋ณ€๊ฒฝํ•œ ๋ฐ์ดํ„ฐ ์ตœ์ข… ์ €์žฅ์— ์‚ฌ์šฉ. DISCARD: ๋ณ€๊ฒฝํ•œ ๋ฐ์ดํ„ฐ ์ตœ์ข… ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ์ทจ์†Œ. 3.4 Index ์œ ํ˜• ๋ฐ ์ƒ์„ฑ Redis๋Š” Primary Key Index์™€ Secondary Key Index๋ฅผ ์ œ๊ณต. Exact Match์™€ Ra.. 2023. 8. 20.
[๋น…๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๋ถ„์„์„ ์œ„ํ•œ NoSQL & Redis] Chapter 2 - Redis ์„ค์น˜ ๋ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ Redis์˜ ์ฃผ์š” ํŠน์ง• Redis๋Š” NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋ถ„๋ฅ˜๋˜๋ฉฐ Key-Value ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. Key-Value DB์ธ ๋™์‹œ์— In-Memory ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ์ €์žฅ ๊ธฐ์ˆ ์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ๋น ๋ฅธ Read/Write ์„ฑ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์ง€์›ํ•˜๋ฉฐ String, Set, Sorted Set, Hash, List, HyperLogLogs ๋“ฑ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ Dump ํŒŒ์ผ๊ณผ AOF(Append Of File) ๋ฐฉ์‹์œผ๋กœ ๋””์Šคํฌ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Master/Slave Replication์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ๋ถ„์‚ฐ ๋ณต์ œ๋ฅผ ์ง€์›ํ•˜๋ฉฐ Query Off Loading์„ ํ†ตํ•ด Master๋Š” Read/Write ์ž‘์—…, Slave๋Š” Read ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  .. 2023. 8. 20.
[๋น…๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๋ถ„์„์„ ์œ„ํ•œ NoSQL & Redis] Chapter 1 - NOSQL ๊ฐœ๋… Chapter1 - NOSQL ๊ฐœ๋… NOSQL Not Only SQL ๊ธฐ์กด SQL ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, SQL ์ด ํ•  ์ˆ˜ ์—†๋Š” ์˜์—ญ์˜ ๊ธฐ์ˆ ๋„ ์ œ๊ณตํ•˜๋Š” ๋Œ€์ฒด, ๋ณด์™„ ๊ธฐ์ˆ  ์žฅ์  ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ํ™˜๊ฒฝ์— ์ ํ•ฉํ•˜๋‹ค. RDBMS ์— ๋น„ํ•ด ๋น„์šฉ ๋ฐ ์„ฑ๋Šฅ ์ง€์—ฐ ๋ฌธ์ œ์— ์ ํ•ฉ ๊ตฌ์ถ• ๋‹จ๊ณ„์— ๋น„์šฉ ๋ฐœ์ƒ์ด ๋œํ•˜๋‹ค. ์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ RDBMS ๋Š” ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์„ ์ˆ˜ ๊ฐœ๋…๋“ค์ด ๋งŽ๋‹ค. ๋น„์ •ํ˜• ๊ตฌ์กฐ์ธ ์ปฌ๋ ‰์…˜, ํ…Œ์ด๋ธ”, ๋…ธ๋“œ๋Š” ๊ตฌ์ฒด์ ์ด๊ณ  ๊นŒ๋‹ค๋กญ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์„ค๊ณ„ํ•˜๊ธฐ ์‰ฝ๋‹ค. ๋น…๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ํšจ๊ณผ์  RDBMS ๋ณด๋‹ค ๋น…๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ํšจ๊ณผ์ ์ด๋‹ค. ๋น…๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๊ธฐ ๋•Œ๋ฌธ. NOSQL ์ข…๋ฅ˜์™€ ์„ ์ • ๊ธฐ์ค€ ์ˆœ์ฐจ์ ์œผ๋กœ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉฐ ์„ ์ • ๊ธฐ์ค€์„ ์„ธ๋ถ„ํ™”ํ•œ๋‹ค. 1. ์ดˆ๋‹น 5๋งŒ๊ฑด ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐœ.. 2023. 7. 23.
์ฟผ๋ฆฌ ์ž‘์„ฑ ๋ฐ ์ตœ์ ํ™” ์š”์ƒˆ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ, DB, ์ž์†Œ์„œ ์ˆ˜์ •, ํ† ๋น„ ์Šคํ”„๋ง, ์ฝ”ํ…Œ ์ค€๋น„ ๋“ฑ๋“ฑ์„ ํ•˜๊ณ  ์žˆ๋‹ค. ํ•˜๋ฃจ๊ฐ€ ๋„ˆ๋ฌด ์งง๊ธฐ๋„ ํ•˜๊ณ  ์ž ์„ ์ ๊ฒŒ ์ž๋„ ๊ดœ์ฐฎ์€ ์ฒด์งˆ์ด ๋˜๊ณ  ์‹ถ์€ ์š”์ฆ˜์ด๋‹ค. DB๊ณต๋ถ€๋Š” Real Mysql์„ ์ฝ๊ณ  ์žˆ๋‹ค. ์ฝ๊ธฐ ๋„ˆ๋ฌด ์–ด๋ ค์šด ์ฑ…์ธ๋ฐ.. DB ์งˆ๋ฌธ๋„ ์‹ ์ž… ๊ฐœ๋ฐœ์ž ๋ฉด์ ‘์—์„œ ๋””ํ…Œ์ผํ•œ ์งˆ๋ฌธ๊นŒ์ง€ ํ•„์ˆ˜๋ผ๊ณ  ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ด์‹ฌํžˆ ์ •๋ฆฌํ•˜๋ฉด์„œ ์ฝ๊ณ  ์žˆ๋‹ค. ์ฟผ๋ฆฌ ์ž‘์„ฑ ๋ฐ ์ตœ์ ํ™” ๋ถ€๋ถ„์„ ๊ณต๋ถ€์ค‘์ธ๋ฐ ์ด ๋ถ€๋ถ„์—์„œ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฐœ๋…์„ ์ •๋ฆฌํ•ด๋ณผ ์ƒ๊ฐ์ด๋‹ค. Join ๊ธฐ๋ฒ• Nested Loop Join ์ค‘์ฒฉ๋œ ๋ฐ˜๋ณต๋ฌธ๊ณผ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์กฐ์ธ์„ ์ˆ˜ํ–‰ ๋ฐ˜๋ณต๋ฌธ ์™ธ๋ถ€์˜ ํ…Œ์ด๋ธ”์„ ์„ ํ–‰ ํ…Œ์ด๋ธ” & ์™ธ๋ถ€ ํ…Œ์ด๋ธ”์ด๋ผ ์นญํ•จ ๋ฐ˜๋ณต๋ฌธ ๋‚ด๋ถ€์˜ ํ…Œ์ด๋ธ”์€ ํ›„ํ–‰ ํ…Œ์ด๋ธ” & ๋‚ด๋ถ€ ํ…Œ์ด๋ธ”์ด๋ผ๊ณ  ์นญํ•œ๋‹ค. ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์„ ํ–‰ ํ…Œ์ด๋ธ” ํ–‰์„ ์ถ”์ถœ ํ›„ ํ›„ํ–‰ ํ…Œ์ด๋ธ”์„ ์ฝ์œผ๋ฉฐ .. 2022. 5. 17.
Flyway & DB Migration ์„ ์ ์šฉ์‹œ์ผœ ๋ณด์ž ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋‚˜๋Š” DB ํ…Œ์ด๋ธ”์„ ํ•œ ๋ฒˆ์— ๋‹ค ์ƒ์„ฑํ•˜๊ณ  ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ํ•„์š”ํ•œ ๊ฒƒ์„ ๋งŒ๋“ค์–ด๊ฐ€๋ฉด์„œ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๊ณ  Front๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— DB data๋ฅผ ์ง์ ‘ mysql์„ ์—ด์–ด ๋„ฃ์–ด์ฃผ๊ณ  ์ˆ˜์ •ํ•˜๋Š” ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ฐธ ๋น„ํšจ์œจ์ ์ด๋ผ ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ๋„์ค‘ Flyway๋ผ๋Š” Tool์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์„ ๋งˆ์ฃผํ•˜๋ฉด ํ•ญ์ƒ ๋‚ฏ์„  ๊ธฐ๋ถ„์ด์ง€๋งŒ DDL์„ ์ž๋ฐ”์—์„œ ์ง์ ‘ ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ํˆด์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๊ณ , ๋‚˜์ฒ˜๋Ÿผ ์Šคํ‚ค๋งˆ์˜ ์žฆ์€ ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚  ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•ด๋ณด๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•œ๋ฒˆ ์ •๋ฆฌํ•ด๋ณด๊ณ  ์‚ฌ์šฉํ•ด ๋ณผ ์ƒ๊ฐ์ด๋‹ค. ํ˜น์‹œ๋‚˜ ํ•ด์„œ Schema ๊ฐ€ ๋ญ์•ผ? ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ์™€ ์ œ์•ฝ์กฐ๊ฑด์— ๊ด€ํ•ด ์ „๋ฐ˜์ ์ธ ๋ช…์„ธ๋ฅผ ๊ธฐ์ˆ ํ•œ ๊ฒƒ! 1. ๊ฐœ๋… ์Šคํ‚ค๋งˆ - ์ „์ฒด์ ์ธ ๋ทฐ 2.. 2022. 5. 3.
๋ฐ˜์‘ํ˜•