μ •κ·œν™” (Normalization)

데이터λ₯Ό 쀑볡 없이 λ‚˜λˆ„μ–΄ μ €μž₯ν•˜λŠ” 것

μ •κ·œν™”λŠ” 데이터λ₯Ό 역할에 맞게 λΆ„λ¦¬ν•΄μ„œ 쀑볡을 μ΅œμ†Œν™”ν•˜λŠ” 방식이닀.

이걸 μ‰½κ²Œ λΉ„μœ ν•˜λ©΄ μ°½κ³  μ •λ¦¬λž‘ λΉ„μŠ·ν•˜λ‹€.

λͺ¨λ“  물건을 ν•œ μƒμžμ— λ‹€ 넣어두면 찾기도 νž˜λ“€κ³  같은 물건이 계속 μŒ“μΈλ‹€.

κ·Έλž˜μ„œ μ’…λ₯˜λ³„λ‘œ λ‚˜λˆ μ„œ λ³΄κ΄€ν•˜λ©΄ ν•„μš”ν•œ κ±Έ 찾기도 μ‰¬μ›Œμ§€κ³  관리도 νŽΈν•΄μ§„λ‹€.

μ •κ·œν™”λ„ λ˜‘κ°™λ‹€.
데이터λ₯Ό 역할에 맞게 λ‚˜λˆ μ„œ 쀑볡을 μ€„μ΄λŠ” 것이닀.

예λ₯Ό λ“€μ–΄ ν•˜λ‚˜μ˜ ν…Œμ΄λΈ”μ— μ‚¬μš©μž 정보, μ£Όλ¬Έ 정보, μƒν’ˆ 정보가 μ „λΆ€ λ“€μ–΄μžˆλ‹€λ©΄ 같은 μ‚¬μš©μžλ‚˜ μƒν’ˆ 정보가 계속 반볡될 수 μžˆλ‹€.

이걸 μ •κ·œν™”ν•˜λ©΄ μ‚¬μš©μž ν…Œμ΄λΈ”, μ£Όλ¬Έ ν…Œμ΄λΈ”, μƒν’ˆ ν…Œμ΄λΈ” μ΄λ ‡κ²Œ λ‚˜λˆ„κ²Œ λœλ‹€. 쀑볡 μ œκ±°μ™€ 데이터 일관성 μœ μ§€ μ΄λ ‡κ²Œ λ‘κ°œκ°€ 핡심이닀.

쑰금 더 μ •ν™•ν•˜κ²Œ λ§ν•˜λ©΄ μ •κ·œν™”λŠ” 이상 ν˜„μƒμ΄ λ°œμƒν•  수 μžˆλŠ” ꡬ쑰λ₯Ό λΆ„ν•΄ν•΄μ„œ λ¬Έμ œκ°€ 생기지 μ•Šλ„λ‘ λ§Œλ“œλŠ” 과정이닀.


μ •κ·œν™”μ˜ λͺ©μ 

μ •κ·œν™”λ₯Ό ν•˜λŠ” μ΄μœ λŠ” λ‹¨μˆœνžˆ κΉ”λ”ν•˜κ²Œ μ •λ¦¬ν•˜κΈ° μœ„ν•΄μ„œκ°€ μ•„λ‹ˆλ‹€.

  • 데이터 쀑볡을 쀄여 μ €μž₯ 곡간을 효율적으둜 μ‚¬μš©ν•˜κΈ° μœ„ν•΄
  • 데이터 μˆ˜μ • μ‹œ λ°œμƒν•˜λŠ” 이상 ν˜„μƒμ„ λ°©μ§€ν•˜κΈ° μœ„ν•΄
  • 데이터 ꡬ쑰λ₯Ό 더 λͺ…ν™•ν•˜κ³  λ…Όλ¦¬μ μœΌλ‘œ λ§Œλ“€κΈ° μœ„ν•΄

특히 μ€‘μš”ν•œ 건 이상 ν˜„μƒμ΄λ‹€.

ν•˜λ‚˜μ˜ λ°μ΄ν„°λ§Œ μˆ˜μ •ν–ˆλŠ”λ° λ‹€λ₯Έ κ³³μ—μ„œλŠ” κ·ΈλŒ€λ‘œ λ‚¨μ•„μžˆλ‹€λ©΄ 데이터가 μ„œλ‘œ λ‹€λ₯Έ 값을 κ°€μ§€κ²Œ λœλ‹€..

이런 문제λ₯Ό 막기 μœ„ν•΄ μ •κ·œν™”λ₯Ό ν•˜λŠ” 것이닀.


이상 ν˜„μƒ (Anomaly)

μ •κ·œν™”λ₯Ό μ΄ν•΄ν•˜λ €λ©΄ 이상 ν˜„μƒμ„ λ¨Όμ € μ•Œμ•„μ•Ό ν•˜λŠ”λ°, λŒ€ν‘œμ μœΌλ‘œ μ„Έ κ°€μ§€κ°€ μžˆλ‹€.

μ‚½μž… 이상 : 데이터가 λΆ€μ‘±ν•΄μ„œ 일뢀 정보λ₯Ό λ„£μ§€ λͺ»ν•˜λŠ” 경우

μ‚­μ œ 이상 : ν•˜λ‚˜λ₯Ό μ‚­μ œν–ˆλŠ”λ° κ΄€λ ¨λœ λ‹€λ₯Έ μ •λ³΄κΉŒμ§€ 같이 μ‚¬λΌμ§€λŠ” 경우

μˆ˜μ • 이상 : 같은 데이터λ₯Ό μ—¬λŸ¬ κ³³μ—μ„œ μˆ˜μ •ν•΄μ•Ό ν•˜λŠ” 경우

μ •κ·œν™”λŠ” 이런 문제λ₯Ό ꡬ쑰적으둜 ν•΄κ²°ν•˜λŠ” 과정이닀.


μ •κ·œν™” 단계

μ •κ·œν™”λŠ” λ‹¨κ³„μ μœΌλ‘œ μ§„ν–‰λœλ‹€.
보톡은 3μ •κ·œν˜•(3NF)κΉŒμ§€λ₯Ό κΈ°μ€€μœΌλ‘œ 많이 μ‚¬μš©ν•˜κ³ ,
ν•„μš”μ— 따라 BCNFκΉŒμ§€ κ³ λ €ν•œλ‹€.


1μ •κ·œν˜• (1NF)

ν•˜λ‚˜μ˜ μ»¬λŸΌμ—λŠ” ν•˜λ‚˜μ˜ κ°’λ§Œ λ“€μ–΄κ°€μ•Ό ν•œλ‹€

즉, μ»¬λŸΌμ€ μ›μžκ°’(Atomic Value)을 κ°€μ Έμ•Ό ν•œλ‹€.

μ‚¬μš©μž μ „ν™”λ²ˆν˜Έ
A 010-1111, 010-2222

μœ„μ™€ 같은 데이터가 μžˆλ‹€κ³  ν•΄λ³΄μž.

이건 ν•˜λ‚˜μ˜ μ»¬λŸΌμ— μ—¬λŸ¬ 값이 λ“€μ–΄κ°€ 있기 λ•Œλ¬Έμ— 1μ •κ·œν˜•μ„ λ§Œμ‘±ν•˜μ§€ μ•ŠλŠ”λ‹€.

이걸 μ •κ·œν™”ν•˜λ©΄ μ•„λž˜κ°™μ΄ λ°”λ€ŒλŠ”λ°,

μ‚¬μš©μž μ „ν™”λ²ˆν˜Έ
A 010-1111
A 010-2222

μ΄λ ‡κ²Œ β€œν•œ μΉΈ = ν•˜λ‚˜μ˜ 값”이 λ˜λ„λ‘ λ§Œλ“œλŠ” 것이 1μ •κ·œν˜•μ΄λ‹€.


2μ •κ·œν˜• (2NF)

λΆ€λΆ„ ν•¨μˆ˜ 쒅속 제거

κΈ°λ³Έν‚€κ°€ μ—¬λŸ¬ 컬럼으둜 이루어진 κ²½μš°μ—λ§Œ μ˜λ―Έκ°€ μžˆλ‹€.

μ£Όλ¬ΈID μƒν’ˆID μƒν’ˆλͺ… μˆ˜λŸ‰

|——–|——–|——–|β€”β€”|

이 ν…Œμ΄λΈ”μ—μ„œ κΈ°λ³Έν‚€κ°€ (μ£Όλ¬ΈID, μƒν’ˆID)라고 ν•˜λ©΄
μƒν’ˆλͺ…은 μƒν’ˆIDλ§ŒμœΌλ‘œλ„ κ²°μ •λœλ‹€.

즉, μƒν’ˆID β†’ μƒν’ˆλͺ…

이런 관계가 있기 λ•Œλ¬Έμ— μƒν’ˆλͺ…은 전체 ν‚€κ°€ μ•„λ‹ˆλΌ 일뢀 ν‚€μ—λ§Œ μ˜μ‘΄ν•˜κ³  μžˆλ‹€.

이게 λ°”λ‘œ λΆ€λΆ„ ν•¨μˆ˜ 쒅속이닀.

이 경우 ν…Œμ΄λΈ”μ„ μ•„λž˜μ™€ 같이 λ‚˜λˆ„κ³ ,

μ£Όλ¬Έ ν…Œμ΄λΈ”
| μ£Όλ¬ΈID | μƒν’ˆID | μˆ˜λŸ‰ |

μƒν’ˆ ν…Œμ΄λΈ”
| μƒν’ˆID | μƒν’ˆλͺ… |

μ΄λ ‡κ²Œ λΆ„λ¦¬ν•˜λ©΄ 2μ •κ·œν˜•μ„ λ§Œμ‘±ν•œλ‹€.


3μ •κ·œν˜• (3NF)

이행적 쒅속 제거

μ–΄λ–€ 컬럼이 λ‹€λ₯Έ μ»¬λŸΌμ„ κ±°μ³μ„œ μ˜μ‘΄ν•˜λŠ” 경우λ₯Ό μ œκ±°ν•˜λŠ” 단계닀.

μ‚¬μš©μžID λΆ€μ„œID λΆ€μ„œμ΄λ¦„

μ‚¬μš©μžID β†’ λΆ€μ„œID
λΆ€μ„œID β†’ λΆ€μ„œμ΄λ¦„

μ΄λŸ°μ‹μœΌλ‘œ 관계가 ν˜•μ„±λ˜λŠ”λ°..

μ‚¬μš©μžID β†’ λΆ€μ„œμ΄λ¦„ (κ°„μ ‘μ μœΌλ‘œ)

이런 ꡬ쑰λ₯Ό 이행적 쒅속이라고 ν•œλ‹€. ν•˜μ§€λ§Œ 이걸 κ·ΈλŒ€λ‘œ 두면 λ¬Έμ œκ°€ 생긴닀.

예λ₯Ό λ“€μ–΄ λΆ€μ„œ 이름이 λ°”λ€Œλ©΄ 같은 값을 μ—¬λŸ¬ ν–‰μ—μ„œ μ „λΆ€ μˆ˜μ •ν•΄μ•Ό ν•œλ‹€.

μ‚¬μš©μž ν…Œμ΄λΈ”
| μ‚¬μš©μžID | λΆ€μ„œID |

λΆ€μ„œ ν…Œμ΄λΈ”
| λΆ€μ„œID | λΆ€μ„œμ΄λ¦„ |

κ·Έλž˜μ„œ μ΄λŸ°μ‹μœΌλ‘œ λΆ„λ¦¬ν•˜λ©΄ 3μ •κ·œν˜•μ„ λ§Œμ‘±ν•œλ‹€.


BCNF

λͺ¨λ“  κ²°μ •μžκ°€ 후보킀가 λ˜λ„λ‘ λ§Œλ“œλŠ” 것

3μ •κ·œν˜•κΉŒμ§€ λ§Œμ‘±ν•΄λ„ μ—¬μ „νžˆ 이상 ν˜„μƒμ΄ λ°œμƒν•  수 μžˆλŠ” κ²½μš°κ°€ μžˆλ‹€.

예λ₯Ό λ“€μ–΄ 보자.

ꡐ수 κ³Όλͺ© κ°•μ˜μ‹€
  • ν•œ κ΅μˆ˜λŠ” ν•˜λ‚˜μ˜ κ³Όλͺ©λ§Œ λ‹΄λ‹Ήν•œλ‹€
  • ν•˜λ‚˜μ˜ κ³Όλͺ©μ€ μ—¬λŸ¬ κ΅μˆ˜κ°€ λ‹΄λ‹Ήν•  수 μžˆλ‹€

μœ„μ™€ 같은 μ‘°κ±΄μΌλ•Œ, κ΄€κ³„λŠ” μ΄λ ‡κ²Œ λœλ‹€.

ꡐ수 β†’ κ³Όλͺ©
κ³Όλͺ© β†’ κ°•μ˜μ‹€

즉, κ³Όλͺ©μ΄ κ°•μ˜μ‹€μ„ κ²°μ •ν•˜μ§€λ§Œ κ³Όλͺ©μ€ 후보킀가 μ•„λ‹ˆλ‹€.

이 μƒνƒœμ—μ„œλŠ” 데이터 이상이 λ°œμƒν•  수 μžˆλ‹€.

κ·Έλž˜μ„œ ν…Œμ΄λΈ”μ„ λΆ„λ¦¬ν•œλ‹€.

ꡐ수-κ³Όλͺ© ν…Œμ΄λΈ”
| ꡐ수 | κ³Όλͺ© |

κ³Όλͺ©-κ°•μ˜μ‹€ ν…Œμ΄λΈ”
| κ³Όλͺ© | κ°•μ˜μ‹€ |

μ΄λ ‡κ²Œ ν•˜λ©΄ λͺ¨λ“  κ²°μ •μžκ°€ 후보킀가 λ˜λ©΄μ„œ BCNFλ₯Ό λ§Œμ‘±ν•˜κ²Œ λœλ‹€.


μ΅œμ’…μ μœΌλ‘œ 정리λ₯Ό ν•˜μžλ©΄

1NF β†’ κ°’ ν•˜λ‚˜λ§Œ
2NF β†’ 일뢀 μ»¬λŸΌμ—λ§Œ μ˜μ‘΄ν•˜λŠ” 것 제거
3NF β†’ 컬럼 κ°„ κ°„μ ‘ 의쑴 제거
BCNF β†’ λͺ¨λ“  κ²°μ •μžκ°€ 후보킀


μ •κ·œν™”μ˜ μž₯점

μ •κ·œν™”λ₯Ό ν•˜λ©΄ μ–»λŠ” μž₯점은 λͺ…ν™•ν•˜λ‹€.

  • 데이터 쀑볡이 쀄어든닀
  • 데이터 μˆ˜μ •μ΄ μ‰¬μ›Œμ§„λ‹€
  • 데이터 무결성을 μœ μ§€ν•  수 μžˆλ‹€

특히 ν•˜λ‚˜λ§Œ μˆ˜μ •ν•΄λ„ 전체 데이터가 μΌκ΄€λ˜κ²Œ μœ μ§€λœλ‹€λŠ” 점이 κ°€μž₯ 크닀.


μ •κ·œν™”μ˜ 단점

ν•˜μ§€λ§Œ μ •κ·œν™”λŠ” 무쑰건 쒋은 κ²ƒλ§Œμ€ μ•„λ‹ˆλ‹€.

  • ν…Œμ΄λΈ”μ΄ μ—¬λŸ¬ 개둜 λ‚˜λ‰˜λ©΄μ„œ JOIN 연산이 λ§Žμ•„μ§„λ‹€
  • 쑰회 μ„±λŠ₯이 λ–¨μ–΄μ§ˆ 수 μžˆλ‹€

κ·Έλž˜μ„œ 데이터가 λ§Žμ•„μ§ˆμˆ˜λ‘ JOIN λΉ„μš©μ΄ μ„±λŠ₯에 영ν–₯을 주게 λœλ‹€.

μ‰½κ²Œ λΉ„μœ λ₯Ό λ“€λ©΄, 냉μž₯κ³ , μ„œλž, 창고에 물건을 λ‹€ λ”°λ‘œ μ •λ¦¬ν•΄λ†¨λŠ”λ°
μš”λ¦¬ν•˜λ €λ©΄ λ‹€μ‹œ μ „λΆ€ κΊΌλ‚΄μ•Ό ν•˜λŠ” 상황이닀..

μ •λ¦¬λŠ” 잘 λ˜μ–΄μžˆμ§€λ§Œ ν•œ λ²ˆμ— μ“°κΈ°μ—λŠ” λ²ˆκ±°λ‘œμ›Œμ§„κ±°λ‹€.

이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ“±μž₯ν•œ κ°œλ…μ΄ λ°”λ‘œ λ°˜μ •κ·œν™”λ‹€.


λ°˜μ •κ·œν™” (Denormalization)

μΌλΆ€λŸ¬ 데이터λ₯Ό ν•©μ³μ„œ 쑰회 μ„±λŠ₯을 λ†’μ΄λŠ” 것

κ·Έλž˜μ„œ λ“±μž₯ν•œ 게 λ°˜μ •κ·œν™”λ‹€.

μ •κ·œν™”κ°€ λ„ˆλ¬΄ 잘 λ˜μ–΄ 있으면 였히렀 μ‘°νšŒκ°€ 느렀질 수 μžˆλ‹€.

특히 JOIN이 λ§Žμ•„μ§ˆμˆ˜λ‘ μ„±λŠ₯이 λ–¨μ–΄μ§„λ‹€.

κ·Έλž˜μ„œ μ–΄λ–€ κ²½μš°μ—λŠ” μ•„μ˜ˆ 데이터λ₯Ό λ‹€μ‹œ 합쳐버린닀.


μ™œ λ°˜μ •κ·œν™”κ°€ ν•„μš”ν•œκ°€

μ‚¬μš©μž 이름 + μ£Όλ¬Έ 정보λ₯Ό κ°€μ Έμ˜€λ €λ©΄ 두 ν…Œμ΄λΈ”μ„ JOIN ν•΄μ•Ό ν•œλ‹€.

데이터 양이 적을 λ•ŒλŠ” λ¬Έμ œκ°€ μ—†μ§€λ§Œ, 데이터가 λ§Žμ•„μ§ˆμˆ˜λ‘ JOIN μ—°μ‚° λΉ„μš©μ΄ 점점 컀진닀.

특히 λ‹€μŒκ³Ό 같은 μƒν™©μ—μ„œλŠ” λ¬Έμ œκ°€ 더 크게 λ‚˜νƒ€λ‚œλ‹€.

  • μ‘°νšŒκ°€ 맀우 자주 λ°œμƒν•˜λŠ” 경우
  • μ—¬λŸ¬ ν…Œμ΄λΈ”μ„ 계속 JOIN ν•΄μ•Ό ν•˜λŠ” 경우
  • μ‹€μ‹œκ°„ 응닡 속도가 μ€‘μš”ν•œ μ„œλΉ„μŠ€


κ·Έλž˜μ„œ 이런 κ²½μš°μ—λŠ” μ•„μ˜ˆ 데이터λ₯Ό ν•©μ³λ²„λ¦¬λŠ” 선택을 ν•˜κ²Œ λœλ‹€.

이게 λ°”λ‘œ λ°˜μ •κ·œν™”λ‹€.


λ°˜μ •κ·œν™”μ˜ 방식

λ°˜μ •κ·œν™”λŠ” λ‹¨μˆœνžˆ ν•©μΉœλ‹€κ°€ μ•„λ‹ˆλΌ 상황에 맞게 μ—¬λŸ¬ λ°©μ‹μœΌλ‘œ μ μš©λœλ‹€.

1. ν…Œμ΄λΈ” 병합

자주 ν•¨κ»˜ μ‘°νšŒλ˜λŠ” ν…Œμ΄λΈ”μ„ ν•˜λ‚˜λ‘œ ν•©μΉ˜λŠ” 방식이닀.

예λ₯Ό λ“€μ–΄ μ‚¬μš©μž + μ£Όλ¬Έ

μ΄λ ‡κ²Œ λ”°λ‘œ 있던 것을 ν•˜λ‚˜μ˜ ν…Œμ΄λΈ”λ‘œ ν•©μ³μ„œ λ°”λ‘œ 쑰회 κ°€λŠ₯ν•˜κ²Œ λ§Œλ“ λ‹€.

2. 쀑볡 컬럼 μΆ”κ°€

λ‹€λ₯Έ ν…Œμ΄λΈ”μ— μžˆλŠ” 값을 μΌλΆ€λŸ¬ λ³΅μ‚¬ν•΄μ„œ μ €μž₯ν•˜λŠ” 방식이닀.

μ£Όλ¬Έ ν…Œμ΄λΈ”μ— μ‚¬μš©μž 이름을 같이 μ €μž₯ν•˜λŠ” κ²½μš°λ‹€.

μ›λž˜λŠ” JOIN ν•΄μ•Ό ν•˜μ§€λ§Œ μ΄λ ‡κ²Œ ν•˜λ©΄ λ°”λ‘œ μ‘°νšŒν•  수 μžˆλ‹€.

3. 집계 데이터 미리 μ €μž₯

COUNT, SUM 같은 κ²°κ³Όλ₯Ό 미리 κ³„μ‚°ν•΄μ„œ μ €μž₯ν•˜λŠ” 방식이닀.

κ²Œμ‹œκΈ€ μ’‹μ•„μš” μˆ˜λ‚˜ λŒ“κΈ€ 개수 같은 κ±Έ 맀번 κ³„μ‚°ν•˜μ§€ μ•Šκ³  컬럼으둜 λ”°λ‘œ μ €μž₯ν•΄λ‘λŠ” κ²½μš°λ‹€.


λ°˜μ •κ·œν™”μ˜ μž₯점

λ°˜μ •κ·œν™”λ₯Ό ν•˜λ©΄ μ–»λŠ” κ°€μž₯ 큰 μž₯점은 λͺ…ν™•ν•˜λ‹€.

  • JOIN 없이 λΉ λ₯Έ 쑰회 κ°€λŠ₯
  • 응닡 속도 κ°œμ„ 
  • 읽기 μ„±λŠ₯ ν–₯상

특히 νŠΈλž˜ν”½μ΄ λ§Žμ€ μ„œλΉ„μŠ€μ—μ„œλŠ” 이 차이가 맀우 크게 λ‚˜νƒ€λ‚œλ‹€.


λ°˜μ •κ·œν™”μ˜ 단점

ν•˜μ§€λ§Œ λ°˜μ •κ·œν™”λŠ” λΆ„λͺ…ν•œ λŒ€κ°€κ°€ μžˆλ‹€.

  • 데이터 쀑볡 λ°œμƒ
  • μˆ˜μ • μ‹œ μ—¬λŸ¬ 곳을 ν•¨κ»˜ λ³€κ²½ν•΄μ•Ό 함
  • 데이터 뢈일치 κ°€λŠ₯μ„± 증가

예λ₯Ό λ“€μ–΄ μ‚¬μš©μž 이름이 λ³€κ²½λ˜μ—ˆλŠ”λ° μ—¬λŸ¬ ν…Œμ΄λΈ”μ— μ €μž₯된 값을 μ „λΆ€ μˆ˜μ •ν•˜μ§€ μ•ŠμœΌλ©΄ μ„œλ‘œ λ‹€λ₯Έ 값이 μ‘΄μž¬ν•˜κ²Œ λœλ‹€.


μ •κ·œν™” vs λ°˜μ •κ·œν™”

μ •κ·œν™”μ™€ λ°˜μ •κ·œν™”λŠ” μ„œλ‘œ λ°˜λŒ€λ˜λŠ” κ°œλ…μ²˜λŸΌ λ³΄μ΄μ§€λ§Œ 사싀은 λͺ©μ μ΄ λ‹€λ₯΄λ‹€.

μ •κ·œν™” β†’ λ°μ΄ν„°μ˜ μ •ν™•μ„±κ³Ό 일관성
λ°˜μ •κ·œν™” β†’ 쑰회 μ„±λŠ₯κ³Ό 속도

κ·Έλž˜μ„œ μ‹€μ œ μ„€κ³„μ—μ„œλŠ” μ •κ·œν™”λ₯Ό 기본으둜 ν•˜κ³  μ„±λŠ₯ λ¬Έμ œκ°€ λ°œμƒν•˜λŠ” λΆ€λΆ„λ§Œ μ„ νƒμ μœΌλ‘œ λ°˜μ •κ·œν™”λ₯Ό μ μš©ν•˜λŠ” κ²½μš°κ°€ λ§Žλ‹€.


정리

μ²˜μŒμ—λŠ” μ •κ·œν™”λŠ” 쒋은 것 λ°˜μ •κ·œν™”λŠ” λΉ„νš¨μœ¨μ μΈ 것 이라고 μƒκ°ν–ˆλŠ”λ°
μ •λ¦¬ν•΄λ³΄λ‹ˆκΉŒ λ‘˜ λ‹€ ν•„μš”ν•œ μ„ νƒμ§€μ˜€λ‹€.

μ •κ·œν™”λŠ” 데이터λ₯Ό μ•ˆμ •μ μœΌλ‘œ κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ ꡬ쑰이고
λ°˜μ •κ·œν™”λŠ” μ„±λŠ₯을 μœ„ν•΄ 일뢀λ₯Ό ν¬μƒν•˜λŠ” 방법이닀.

κ²°κ΅­ μ€‘μš”ν•œ 건 λ‘˜ 쀑 μ–΄λ–€ 게 더 쒋은지가 μ•„λ‹ˆλΌ

μ§€κΈˆ μƒν™©μ—μ„œ μ–΄λ–€ 선택이 더 μ μ ˆν•œμ§€ νŒλ‹¨ν•˜λŠ” 것이닀.