2021-04-29(Thu)

ํ•ญ๋ชฉ

๋‚ด์šฉ

ํ•™์Šต ๋‚ ์งœ

2021-04-29(๋ชฉ)

ํ•™์Šต ์‹œ๊ฐ„

09:00~23:00

ํ•™์Šต ๋ฒ”์œ„ ๋ฐ ์ฃผ์ œ

UML, ์ธ๋ฑ์Šค

ํ•™์Šต ๋ชฉํ‘œ

UML, ์ธ๋ฑ์Šค์˜ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฐœ๋…์„ ์ •๋ฆฌํ•˜์ž.

๋™๋ฃŒ ํ•™์Šต ๋ฐฉ๋ฒ•

-

์ƒ์„ธ ํ•™์Šต ๋‚ด์šฉ

์ฃผ๋กœ UML๋กœ ํ‘œํ˜„๋˜๋Š” ํด๋ž˜์Šค ๊ฐ„์˜ ๊ด€๊ณ„์—๋Š” ์•„๋ž˜ 7๊ฐ€์ง€ ๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค.

  1. ์ผ๋ฐ˜ํ™” ๊ด€๊ณ„(Generalization) ๊ธฐ๋ฐ˜ ํ˜•์‹๊ณผ ํŒŒ์ƒ ํ˜•์‹ ์‚ฌ์ด์˜ ๊ด€๊ณ„. "~์ด๋‹ค."๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•์‹ ์‚ฌ์ด์˜ ๊ด€๊ณ„์ด๋‹ค.

    ex) "ํ”ผ์•„๋‹ˆ์ŠคํŠธ๋Š” ์Œ์•…๊ฐ€์ด๋‹ค."

  2. ์ง‘ํ•ฉ ๊ด€๊ณ„(Aggregation)

    ์ปฌ๋ ‰์…˜๊ณผ ์›์†Œ ์‚ฌ์ด์˜ ๊ด€๊ณ„์ด๋‹ค. "๊ฐ€์ง€๊ณ  ์žˆ๋‹ค."๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•์‹ ์‚ฌ์ด์˜ ๊ด€๊ณ„์ด๋‹ค. ๊ตฌ์„ฑ ๊ด€๊ณ„์™€ ๋‹ฌ๋ฆฌ ์†Œ์œ  ๊ฐœ์ฒด์™€ ํ”ผ์†Œ์œ  ๊ฐœ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ณผ์ •์„ ๋ณ„๋„๋กœ ์ง„ํ–‰ํ•œ๋‹ค.

    ex) ํ•„ํ†ต์€ ์—ฐํ•„๊ณผ ์ง€์šฐ๊ฐœ ๋“ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

  3. ๊ตฌ์„ฑ ๊ด€๊ณ„(Composition)

    ํฌํ•จ ํ˜•์‹๊ณผ ๋‚ด๋ถ€ ํ˜•์‹ ์‚ฌ์ด์˜ ๊ด€๊ณ„. "๊ตฌ์„ฑํ•œ๋‹ค."๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•์‹ ์‚ฌ์ด์˜ ๊ด€๊ณ„์ด๋‹ค. ์ง‘ํ•œ ๊ด€๊ณ„์™€ ๋‹ฌ๋ฆฌ ์†Œ์œ  ๊ฐœ์ฒด์™€ ํ”ผ์†Œ์œ  ๊ฐœ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ณผ์ •์ด ๋™์‹œ์— ์ง„ํ–‰๋œ๋‹ค.

    ex) ์‚ฌ๋žŒ์€ ๋ˆˆ๊ณผ ๊ท€ ๋“ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋ˆˆ๊ณผ ๊ท€๋Š” ์‚ฌ๋žŒ์ด ํƒœ์–ด๋‚  ๋•Œ ๊ฐ€์ง€๊ณ  ํƒœ์–ด๋‚œ๋‹ค.

  4. ์ง์ ‘ ์—ฐ๊ด€ ๊ด€๊ณ„(Direct Associtaion)

    ๋ช…๋ น์„ ๋‚ด๋ฆฌ๋Š” ํ˜•์‹๊ณผ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ํ˜•์‹ ์‚ฌ์ด์˜ ๊ด€๊ณ„. ex) ๊ณ ์šฉ์ฃผ๋Š” ๋…ธ๋™์ž์—๊ฒŒ ์ผ์„ ์‹œํ‚จ๋‹ค.

  5. ์—ฐ๊ด€ ๊ด€๊ณ„ (Association)

    ์„œ๋กœ ์ƒ๋Œ€๋ฅผ ์•Œ๊ณ  ๋ช…๋ นํ•  ์ˆ˜ ์žˆ๋Š” ๊ด€๊ณ„์ด๋‹ค. ํ”„๋กœ๊ทธ๋žจ์—์„œ ์œ„ํ—˜ํ•œ ๊ด€๊ณ„์ด๋ฉฐ, ๋‹ค๋ฅธ ์•ˆ์ „ํ•œ ๊ด€๊ณ„๋กœ ๋ฐ”๊ฟ€ ๊ฒƒ์„ ๊ถŒํ•œ๋‹ค.

  6. ์˜์กด ๊ด€๊ณ„ (Dependency)

    ์›๋ณธ ๊ฐœ์ฒด์˜ ๋ณ€ํ™”์— ๋”ฐ๋ผ ์˜์กด ๊ฐœ์ฒด๋„ ๋ณ€ํ™”ํ•˜๋Š” ํ˜•์‹ ์‚ฌ์ด์˜ ๊ด€๊ณ„์ด๋‹ค. ex) ํšŒ์› ์ •๋ณด๊ฐ€ ๋ฐ”๋€Œ๋ฉด ํšŒ์› ์ปจํŠธ๋กค์— ํ‘œ์‹œํ•œ ์ •๋ณด๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค.

  7. ์‹คํ˜„ ๊ด€๊ณ„ (Realization)

    ์•ฝ์†ํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ด€๊ณ„์ด๋‹ค.

์ฐธ๊ณ 

https://ehpub.co.kr/tag/%EA%B5%AC%EC%84%B1-%EA%B4%80%EA%B3%84composition/

์ธ๋ฑ์Šค(index)

์ธ๋ฑ์Šค

  • ์ •์˜: ํ…Œ์ด๋ธ”์˜ ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ

    • ํŠน์ง•

      • ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ ๊ฐ’์— ๋น ๋ฅด๊ฒŒ ์•ก์„ธ์Šคํ•˜๋„๋ก ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด

      • ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋””์Šคํฌ ์•ก์„ธ์Šค ํšŸ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Œ

      • ์–ธ์ œ๋“ ์ง€ ์ƒ์„ฑ/์‚ญ์ œ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ…Œ์ด๋ธ”์ด๋‚˜ ๋‹ค๋ฅธ ์ธ๋ฑ์Šค์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Œ

๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ์›๋ฆฌ

  1. ์‚ฌ์šฉ์ž๊ฐ€ DB ์‹œ์Šคํ…œ์— SELECT ์งˆ์˜๋ฅผ ๋‚ ๋ฆฐ๋‹ค.

  2. DB ์‹œ์Šคํ…œ์€ DB ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์˜ ๋ฒ„ํผ ์บ์‹œ๋ฅผ ํ™•์ธํ•œ๋‹ค.

    1. ๋งŒ์•ฝ ๋ฒ„ํผ ์บ์‹œ์•ˆ์— ์ฐพ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ ์กฐํšŒ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

    2. ๋ฒ„ํผ ์บ์‹œ ์•ˆ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋‹ค๋ฉด,

      1. ๋””์Šคํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•„์„œ

      2. ๋ฒ„ํผ ์บ์‹œ๋กœ ๋ณต์‚ฌํ•œ๋‹ค.

  3. ๋ฐ์ดํ„ฐ ๊ฒฐ๊ณผ๊ฐ’์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์ธ๋ฑ์Šค๊ฐ€ ์—†๋‹ค๋ฉด ์ „์ฒด๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” Full Scan์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•˜๋ฏ€๋กœ ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ๋–จ์–ด์ง„๋‹ค. ์ธ๋ฑ์Šค๋Š” ์œ„ ๊ณผ์ • ์ค‘ ๋””์Šคํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ๋•Œ, ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ์“ฐ์ธ๋‹ค.

์ธ๋ฑ์Šค์˜ ๊ด€๋ฆฌ

DBMS๋Š” index๋ฅผ ์ตœ์‹ ์˜ ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•ด์•ผ ์›ํ•˜๋Š” ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋•Œ๋ฌธ์— DML์‹œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ์ถ”๊ฐ€์ ์œผ๋กœ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

  • INSERT: ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ธ๋ฑ์Šค๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผํ•จ.

  • DELETE: ์‚ญ์ œํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•ด์•ผํ•จ.

  • UPDATE: ๊ธฐ์กด์˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ ์ฒ˜๋ฆฌํ•˜๊ณ , ๊ฐฑ์‹ ๋œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ธ๋ฑ์Šค๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผํ•จ.

๋•Œ๋ฌธ์— ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ์™€ ๋น„๊ตํ•˜์—ฌ ์ถ”๊ฐ€์ž‘์—…์œผ๋กœ ์ธํ•œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  DELETE์˜ ๊ฒฝ์šฐ index์— ์กด์žฌํ•˜๋Š” ๊ฐ’์€ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉ ์•ˆํ•œ๋‹ค๋Š” ํ‘œ์‹œ๋กœ ๋‚จ๊ฒŒ ๋˜๋ฏ€๋กœ, row์˜ ์ˆ˜๋Š” ์ค„์–ด๋“ค์ง„ ์•Š๊ณ  ๋Š˜์–ด๋งŒ ๋‚œ๋‹ค. ์ด๋Ÿฐ ์ž‘์—…์ด ๋ฐ˜๋ณต๋˜๋ฉด ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ 10๋งŒ ๊ฑด์ธ๋ฐ ๋ฐ์ดํ„ฐ๋Š” 100๋งŒ๊ฑด ์Œ“์ด๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋‚ณ์„ ์ˆ˜๋„ ์žˆ๊ณ , ์ด๋ ‡๊ฒŒ ๋˜๋ฉด index๊ฐ€ ์ œ ์—ญํ• ์„ ํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ๋‹ค.

์ธ๋ฑ์Šค์˜ ์ข…๋ฅ˜

์ธ๋ฑ์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

Hash ์ธ๋ฑ์Šค

๋น ๋ฅธ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์ด ํ•„์š”ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค. Key ๊ฐ’์ด ์œ ํšจํ•˜๋ฉด ์‹œ๊ฐ„๋ณต์žก๋„ O(1)๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ๊ฐ’์ด ๋‹ค๋ฅด๋ฉด ํ•ด์‹œ ํ‚ค ๊ฐ’์ด ์™„์ „ํžˆ ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ, ๊ฐ’์˜ ์ผ๋ถ€๋งŒ ๊ฐ€์ง€๊ณ  ๊ฒ€์ƒ‰ํ•  ๋•Œ๋Š” ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

์ฃผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

B-Tree ์ธ๋ฑ์Šค

B-Tree๋Š” Balanced Tree์˜ ์•ฝ์ž๋กœ ๊ท ํ˜•์„ ์œ ์ง€ํ•˜๋Š” ํŠธ๋ฆฌ๋ฅผ ๋งํ•œ๋‹ค. ๊ธฐ์กด์— ์ž์‹์„ ๋‘๊ฐœ๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋˜ Binary Tree๋ฅผ ํ™•์žฅํ•˜์—ฌ ๋” ๋งŽ์€ ์ž์‹์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ฒŒ ๊ณ ์•ˆํ•œ ๊ฒƒ์ด๋‹ค.

์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜๊ฐ€ ๋งŽ๊ณ  ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ ์€ ๊ฒฝ์šฐ์— ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

์ข…๋ฅ˜

์„ค๋ช…

์‚ฌ์šฉ ์˜ˆ

unique index

์ค‘๋ณต ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ(unique)์— ์‚ฌ์šฉํ•œ๋‹ค.

๊ธฐ๋ณธ ํ‚ค, ์œ ์ผ ํ‚ค ๋ฐ์ดํ„ฐ

non-unique index

์ค‘๋ณต ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์— ๋น ๋ฅธ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์žฅํ•œ๋‹ค.

์ธ๋ฑ์Šค๊ฐ€ ํ•„์š”ํ•œ ์ผ๋ฐ˜์ ์ธ ๋ฐ์ดํ„ฐ

descending index

๋‚ด๋ฆผ์ฐจ์ˆœ ๋ฐ์ดํ„ฐ ๊ฐ’์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

๋งค์ถœ, ์ตœ๊ทผ ์ผ์ž ๋“ฑ

composite index

์—ฌ๋Ÿฌ ์—ด์„ ํ•ฉ์ณ์„œ ํ•˜๋‚˜์˜ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

์—ฌ๋Ÿฌ ์กฐ๊ฑด์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ex) ๊ณ ๊ฐ ๋ฒˆํ˜ธ and ์„ฑ๋ณ„

B+-Tree ์ธ๋ฑ์Šค

B-Tree์™€ ๋‹ค๋ฅธ ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

  • ๋ฆฌํ”„๋…ธ๋“œ(๋ฐ์ดํ„ฐ ๋…ธ๋“œ)๋งŒ ์ธ๋ฑ์Šค์™€ ํ•จ๊ป˜ ๋ฐ์ดํ„ฐ(Value)๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

  • ๋‚˜๋จธ์ง€ ๋…ธ๋“œ(์ธ๋ฑ์Šค ๋…ธ๋“œ)๋“ค์€ ๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•œ ์ธ๋ฑ์Šค(Key)๋งŒ์„ ๊ฐ–๋Š”๋‹ค.

  • ๋ฆฌํ”„๋…ธ๋“œ๋“ค์€ LinkedList๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค.

  • ๋ฆฌํ”„ ๋…ธ๋“œ(๋ฐ์ดํ„ฐ ๋…ธ๋“œ)์˜ ํฌ๊ธฐ๋Š” ์ธ๋ฑ์Šค ๋…ธ๋“œ์˜ ํฌ๊ธฐ์™€ ๊ฐ™์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ธ๋ฑ์Šค ์ปฌ๋Ÿผ์€ ๋ถ€๋“ฑํ˜ธ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ˆœ์ฐจ ๊ฒ€์ƒ‰ ์—ฐ์‚ฐ์ด ์ž์ฃผ ๋ฐœ์ƒ๋  ์ˆ˜ ์žˆ๋‹ค. B+Tree๋Š” BTree์˜ ๋ฆฌํ”„ ๋…ธ๋“œ๋“ค์„ LinkedList๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ์ˆœ์ฐจ๊ฒ€์ƒ‰์„ ์ตœ์ ํ™”ํ•œ ์‚ฌ๋ก€์ด๋‹ค. ๋ฌผ๋ก  BTree์™€ ๋‹ฌ๋ฆฌ ๋ฌด์กฐ๊ฑด ๋ฆฌํ”„๋…ธ๋“œ๊นŒ์ง€ ๊ฐ€์•ผ ๋ฐ์ดํ„ฐ ์กฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋‹จ์ ๋„ ์žˆ๋‹ค.

๋น„ํŠธ๋งต ์ธ๋ฑ์Šค

  • ์ •์˜

    • ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ตœ์†Œ ๋‹จ์œ„์ธ ๋น„ํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ปฌ๋Ÿผ๊ฐ’์„ ์ €์žฅํ•˜๊ณ , row_id๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ์ธ๋ฑ์Šค ๋ฐฉ๋ฒ•

  • ๊ตฌ์กฐ

    • ๋น„ํŠธ๋งต ์ธ๋ฑ์Šค๋„ B-tree์™€ ๊ฐ™์ด ๊ตฌ์„ฑ๋˜์ง€๋งŒ, ์ตœํ•˜์œ„(leaf) ๋…ธ๋“œ๋Š” row_id ๋ฆฌ์ŠคํŠธ ๋Œ€์‹  ๊ฐ ํ‚ค ๊ฐ’์— ๋Œ€ํ•œ ๋น„ํŠธ๋งต์„ ์ €์žฅํ•œ๋‹ค. ๋น„ํŠธ๋งต ๋‚ด์˜ ๋น„ํŠธ๋Š” ๊ฐ€๋Šฅํ•œ row_id์™€ ์ผ์น˜ํ•˜๋ฉฐ ๋น„ํŠธ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉด ํ•ด๋‹น row_id๊ฐ€ ์žˆ๋Š” ํ–‰์ด ํ‚ค ๊ฐ’์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.

  • ์žฅ์ 

    • ๋น„ํŠธ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋ฏ€๋กœ ์ €์žฅ๊ณต๊ฐ„์ด ํฌ๊ฒŒ ๊ฐ์†Œํ•œ๋‹ค.

    • ๋น„ํŠธ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋ฏ€๋กœ ๋น„ํŠธ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ ์ ˆํ•œ ์ƒํ™ฉ

    • ํ…Œ์ด๋ธ”์— ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ํ–‰์ด ์žˆ๊ณ , ํ‚ค ์—ด์— low cardinality๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ. ์ฆ‰ ํ•ด๋‹น ์—ด์˜ ๊ตฌ๋ถ„ ๊ฐ’์ด ๋งค์šฐ ์ ์€ ๊ฒฝ์šฐ. ์ฐธ๊ณ ๋กœ ์ค‘๋ณต๋„๊ฐ€ '๋†’์œผ๋ฉด' ์นด๋””๋„๋ฆฌํ‹ฐ๊ฐ€ '๋‚ฎ๋‹ค'๊ณ  ํ‘œํ˜„ํ•œ๋‹ค.

      • ex) ์—ฌ๊ถŒ ๋ ˆ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•˜๋Š” ํ…Œ์ด๋ธ”์˜ ์„ฑ๋ณ„ ๋ฐ ๊ฒฐํ˜ผ ์—ฌ๋ถ€ ์—ด์—๋Š” B-Tree ์ธ๋ฑ์Šค๋ณด๋‹ค ๋น„ํŠธ๋งต ์ธ๋ฑ์Šค๊ฐ€ ๋” ์ ์ ˆํ•  ์ˆ˜ ์žˆ๋‹ค.

      • query๊ฐ€ OR ์—ฐ์‚ฐ์ž๋ฅผ ํฌํ•จํ•˜๋Š” ์—ฌ๋Ÿฌ WHERE ์กฐ๊ฑด์„ ์กฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ

      • ์ฝ๊ธฐ ์ „์šฉ ๋˜๋Š” ํ‚ค ์—ด์— ๋Œ€ํ•œ ๊ฐฑ์‹  ์ž‘์—…์ด ์ €์กฐํ•  ๊ฒฝ์šฐ

์ธ๋ฑ์Šค์˜ ์žฅ์  / ๋‹จ์  / ๊ณ ๋ คํ•ด์•ผํ•  ์ 

์ธ๋ฑ์Šค์˜ ์žฅ์ 

  • ํ…Œ์ด๋ธ”์„ ์กฐํšŒํ•˜๋Š” ์†๋„์™€ ๊ทธ์— ๋”ฐ๋ฅธ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

  • ์ „๋ฐ˜์ ์ธ ์‹œ์Šคํ…œ์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

์ธ๋ฑ์Šค์˜ ๋‹จ์ 

  • ์ธ๋ฑ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด DB์˜ ์•ฝ 10%์— ํ•ด๋‹นํ•˜๋Š” ์ €์žฅ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค.

  • ์ธ๋ฑ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค.

  • ์ธ๋ฑ์Šค๋ฅผ ์ž˜๋ชป ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์˜คํžˆ๋ ค ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๋Š” ์—ญํšจ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

์•„๋ž˜ ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•ด์„œ ์ ์ ˆํžˆ ์ ์šฉํ•ด์•ผํ•œ๋‹ค.

  • ๋ถ„์„ ์‹œ์Šคํ…œ(OLAP)๊ณผ ์šด์˜ ์‹œ์Šคํ…œ(OLTP)์— ๋”ฐ๋ผ ์ธ๋ฑ์Šค ์œ ํ˜•์ด ๋‹ฌ๋ผ์ง„๋‹ค.

  • ์ธ๋ฑ์Šค๊ฐ€ ์ง€๋‚˜์น˜๊ฒŒ ๋งŽ์œผ๋ฉด ๊ณผ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

  • ์กฐ์ธํ•  ๋•Œ ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์œ ๋„ํ•ด์•ผ ํ•œ๋‹ค.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ ์šด์˜ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋ณ„๋„์˜ ์ €์žฅ ๊ณต๊ฐ„์œผ๋กœ ์ง€์ •์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ์žฌ์ƒ์„ฑ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • DML ๋ฌธ์„ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์— ์•…์˜ํ–ฅ์„ ๋ผ์น  ์ˆ˜ ์žˆ๋‹ค.

์ธ๋ฑ์Šค๋ฅผ ์“ฐ๊ธฐ ์ ์ ˆํ•œ ์ƒํ™ฉ

  • ์—ด์ด WHERE ์ ˆ์˜ ์กฐ์ธ ์กฐ๊ฑด์œผ๋กœ ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค.

  • ์—ด์ด ๋‹ค์–‘ํ•œ ๊ฐ’์„ ํฌํ•จํ•œ๋‹ค. ๋˜ํ•œ ๋งŽ์€ ์ˆ˜์˜ null ๊ฐ’์„ ํฌํ•จํ•œ๋‹ค.

  • ํ…Œ์ด๋ธ” ํฌ๊ธฐ๊ฐ€ ๋Œ€ํ˜•์ด๊ณ  ๋Œ€๋ถ€๋ถ„์˜ ์งˆ์˜๊ฐ€ ํ–‰์˜ 2~4% ์ดํ•˜๋ณด๋‹ค ์ ๊ฒŒ ์ฝ์–ด ๋“ค์ผ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋œ๋‹ค.

์ธ๋ฑ์Šค๋ฅผ ์“ฐ๊ธฐ ๋ถ€์ ์ ˆํ•œ ์ƒํ™ฉ

  • ์—ด์ด WHERE ์ ˆ์˜ ์กฐ์ธ ์กฐ๊ฑด์œผ๋กœ ์ž์ฃผ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

  • ํ…Œ์ด๋ธ” ํฌ๊ธฐ๊ฐ€ ์†Œํ˜•์ด๊ณ  ์—ด์˜ ๋ฐ์ดํ„ฐ ๋ถ„ํฌ๊ฐ€ ๊ณ ๋ฅด์ง€ ์•Š๋‹ค.

  • ์งˆ์˜์˜ ๋Œ€๋ถ€๋ถ„์ด ํ–‰์˜ 2~4% ์ด์ƒ์„ ์ฝ์–ด ๋“ค์ผ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋œ๋‹ค.

  • ํ…Œ์ด๋ธ”์ด ์ž์ฃผ ๊ฐฑ์‹ ๋œ๋‹ค. DML ๋ฌธ์„ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋ฉด ์ธ๋ฑ์Šค์˜ ์œ ์ง€ ์ž‘์—…์„ ์œ„ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ ๋” ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค.

์ฐธ๊ณ 

ํ•™์Šต ๋‚ด์šฉ์— ๋Œ€ํ•œ ๊ฐœ์ธ์ ์ธ ์ดํ‰

Opensource CMS ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌํ•˜์—ฌ ์ดˆ๋ฐ˜ ์‹œ๋‚˜๋ฆฌ์˜ค ์ž‘์„ฑ ๋ฐ ์™€์ด์–ดํ”„๋ ˆ์ž„ ์„ค๊ณ„๊นŒ์ง€ ์ผ๋‹จ ์ฐธ์—ฌํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๋ณด๋‹ˆ ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ๋งŽ์ด ๋บ๊ธฐ๋Š” ๊ฒƒ์„ ๋Š๊ผˆ๊ณ , ์ง€๊ธˆ์€ ์Šคํ”„๋ง์„ ํ™œ์šฉํ•œ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ•ด๋ณด๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ๋ฉ”์ธ ์ปจํŠธ๋ฆฌ๋ทฐํ„ฐ๋กœ์„œ ํ™œ๋™ํ•˜๋Š” ๊ฒƒ์€ ํฌ๊ธฐํ•˜์˜€๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด ์ฐธ์— ์Šคํ”„๋ง์„ ํ•™์Šตํ• ๊นŒ ์‹ถ์—ˆ์ง€๋งŒ, ์šฐ์„  ํ‰์†Œ ํ™•์ธ์€ ํ•ด๋ณด๊ณ  ์‹ถ์—ˆ๋˜ React๋ฅผ ํ•™์Šตํ•˜์˜€๋‹ค. ๋งŒ๋“ค๊ณ  ์‹ถ์€ ์›น์•ฑ์— ์ ์šฉํ•ด๋ณด๊ณ  ์‹ถ์€๋ฐ, ๋งˆ์นจ

๋‹ค์Œ ํ•™์Šต ๊ณ„ํš

  • SLASH 21 ์ฆ๊ธฐ๊ธฐ!

  • ์ด๋ ฅ์„œ ํ”ผ๋“œ๋ฐฑ ๋ฐ›๊ธฐ

Last updated