Day 30

μ •κ·œν™”

μ •κ·œν™”λž€ ν…Œμ΄λΈ”μ„ μ˜¬λ°”λ₯Έ ν˜•νƒœλ‘œ λ³€κ²½ν•˜κ³  λΆ„ν• ν•˜λŠ” 방식을 μ˜λ―Έν•œλ‹€

μ •κ·œν™”λž€ λ°μ΄ν„°λ² μ΄μŠ€μ˜ ν…Œμ΄λΈ”μ— κ·œμ •λœ μ˜¬λ°”λ₯Έ ν˜•νƒœλ‘œ κ°œμ„ ν•΄λ‚˜κ°€λŠ” 방식이닀 μ •κ·œν™”λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ˜ 섀계 λ‹¨κ³„λ‚˜ μ‹œμŠ€ν…œμ„ μž¬κ²€ν† , ν…Œμ΄λΈ”μ˜ 정리 κ³Όμ •μ—μ„œ 행해진닀

μ—¬κΈ°μ„œ μ˜λ―Έν•˜λŠ” μ •λ¦¬λ‚˜ μž¬κ²€ν† λŠ” 주관적 기쀀이닀 κ·Έλž˜λ„ κ°€μ΄λ“œ? μ•„λ‹ˆλ©΄ λŒ€λž΅μ  μˆœμ„œλŠ” μ •ν•΄μ Έμžˆλ‹€ 무쑰건 μ—¬κΈ°μ„œ μ΄μ•ΌκΈ°ν•˜λŠ” μˆœμ„œλŒ€λ‘œ μ •κ·œν™”λ₯Ό 진행해야 ν•œλ‹€ -> 이건 μ•„λ‹ˆμ§€λ§Œ μ°Έκ³ ν•΄μ„œ μ •κ·œν™”λ₯Ό μ§„ν–‰ν•˜μž

제 1 μ •κ·œν˜•

λ°˜λ³΅λ˜λŠ” 데이터λ₯Ό κ°€λ‘œ(μ—΄)이 μ•„λ‹Œ μ„Έλ‘œ(ν–‰)을 λŠ˜λ¦¬λŠ” λ°©μ‹μœΌλ‘œ μ§„ν–‰ν•˜μž ν•˜λ‚˜μ˜ 셀에 ν•˜λ‚˜μ˜ κ°’λ§Œ μ €μž₯ν•  수 μžˆλ„λ‘ μœ λ„ν•˜κ³ , λ°˜λ³΅λ˜λŠ” 뢀뢄을 ν–‰μœΌλ‘œ λŠ˜λ €λ‚˜κ°€λŠ” 것이 제 1μ •κ·œν™”μ˜ 1단계이닀

이외에도 ν…Œμ΄λΈ”μ—μ„œ 쀑볡을 μ œκ±°ν•˜λŠ” 것도 제 1 μ •κ·œν™”μ˜ ν•˜λ‚˜λΌκ³  μ΄μ•ΌκΈ°ν•œλ‹€ μ€‘λ³΅λ˜λŠ” 뢀뢄을 μ°Ύμ•„λ‚΄μ„œ κ·ΈλŸ¬ν•œ 뢀뢄듀을 λΆ„ν• ν•΄μ„œ κΈ°λ³Έν‚€κ°€ 될 μ—΄λ‘œ μ •κ·œν™”ν•˜λŠ” 과정을 κ±°μΉœλ‹€

제 2 μ •κ·œν˜•

제 2μ •κ·œν™”μ—μ„œλŠ” 데이터가 μ€‘λ³΅ν•˜λŠ” 뢀뢄을 μ°Ύμ•„λ‚΄μ„œ ν…Œμ΄λΈ”λ‘œ λΆ„λ¦¬ν•΄λ‚˜κ°„λ‹€ ꡬ체적인 말 μ˜λ―ΈλŠ” ν•¨μˆ˜ 쒅속성을 μ°Ύμ•„λ‚΄μ„œ ν…Œμ΄λΈ”μ„ λΆ„ν• ν•˜λŠ” 것을 제 2 μ •κ·œν™”λΌκ³  ν•œλ‹€ μ—¬κΈ°μ„œ ν•¨μˆ˜ μ’…μ†μ„±μ΄λž€ ν‚€ 값을 μ‚¬μš©ν•΄μ„œ 데이터λ₯Ό νŠΉμ •μ§€μ„ 수 μžˆλŠ” 것을 μ˜λ―Έν•œλ‹€

제 3 μ •κ·œν˜•

이것도 μ€‘λ³΅ν•˜λŠ” 뢀뢄을 μ°Ύμ•„λ‚΄μ„œ ν…Œμ΄λΈ”μ„ λΆ„ν• ν•˜λŠ” 방식인데, 제 3 μ •κ·œν™”μ—μ„œλŠ” κΈ°λ³Έν‚€ μ΄μ™Έμ˜ λΆ€λΆ„μ—μ„œ 쀑볡이 μ—†λŠ”μ§€λ₯Ό μ‘°μ‚¬ν•œλ‹€

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

μ •κ·œν™”μ—μ„œλŠ” μ€‘λ³΅ν•˜κ±°λ‚˜ λ°˜λ³΅λ˜λŠ” 뢀뢄을 μ°Ύμ•„λ‚΄μ„œ ν…Œμ΄λΈ”μ„ λΆ„ν• ν•˜κ³ , κΈ°λ³Έν‚€λ₯Ό μž‘μ„±ν•΄μ„œ μ‚¬μš©ν•˜λŠ” 것을 κΈ°λ³Έ κ°œλ…μœΌλ‘œ 작고 μžˆλŠ”λ° κ²°κ΅­ 이 μ˜λ―ΈλŠ” ν•˜λ‚˜μ˜ λ°μ΄ν„°λŠ” ν•œ 곳에 μžˆμ–΄μ•Ό ν•œλ‹€λŠ” κ·œμΉ™μ„ κ³΅ν†΅μ μœΌλ‘œ μ˜λ―Έν•œλ‹€

ν•˜λ‚˜μ˜ 데이터가 λ°˜λ“œκΈ° ν•œ κ³³μ—λ§Œ μ €μž₯λ˜μ–΄ μžˆλ‹€λ©΄ 데이터λ₯Ό λ³€κ²½ν•˜λ”λΌλ„ ν•œ 곳만 λ³€κ²½ν•˜κ²Œ λœλ‹€ -> λ‹€μ–‘ν•œ ν…Œμ΄λΈ”μ„ κ±°μ³μ•Όν•˜λŠ” μ˜λ―Έμ—†λŠ” 노동을 쀄이기 μœ„ν•΄μ„œμ΄λ‹€ λ§Œμ•½ μ •κ·œν™”λ₯Ό ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ 검색도 μ—¬λŸ¬ 가지 ν…Œμ΄λΈ”μ„ κ±°μ³μ•Όν•˜λ©°, μˆ˜μ •ν•˜κ±°λ‚˜ μ‚½μž…ν•  λ•Œ μ—¬λŸ¬ 가지 ν…Œμ΄λΈ”μ„ κ±°μ³μ•Όν•˜λŠ” 단점이 μ‘΄μž¬ν•¨ μ—¬λ‹΄μœΌλ‘œ 심지어 μΈλ±μŠ€κΉŒμ§€ μ‘°μ ˆν•΄μ•Όν•˜λŠ” 단점이 μ‘΄μž¬ν•œλ‹€

ν•˜μ§€λ§Œ μ •κ·œν™”λ₯Ό 톡해 κΈ°λ³Έν‚€λ₯Ό λΆ„ν• ν•΄ λ‘μ—ˆλ‹€λ©΄ ν•΄λ‹Ή 단일 ν…Œμ΄λΈ”λ§Œ 건듀면 되기 λ•Œλ¬Έμ— μ•„μ£Ό μœ μ΅ν•˜λ‹€κ³  λ³Ό 수 μžˆλ‹€

νŠΈλžœμž­μ…˜

λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œλŠ” νŠΈλžœμž­μ…˜μ΄λΌλŠ” κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ”λ°, νŠΈλžœμž­μ…˜μ΄λž€ μž‘μ—…μ˜ λ‹¨μœ„λΌκ³  ν‘œν˜„ν•œλ‹€ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜λŠ”λ° μžˆμ–΄μ„œ νŠΈλžœμž­μ…˜μ„ λ‚˜λˆ μ„œ μž‘μ—…μ„ μ§„ν–‰ν•˜κ²Œ 되면 데이터λ₯Ό κ±΄λ“œλŠ” μž‘μ—…μ΄λ‹€ λ³΄λ‹ˆ 데이터λ₯Ό λ‘œμ»¬μ—μ„œ μˆ˜μ •ν•˜κ³  μ‹€μ œ λ°μ΄ν„°λ² μ΄μŠ€μ— μ μš©ν•˜κ±°λ‚˜ λ‘œμ»¬μ—μ„œ μˆ˜μ •ν•œ 데이터λ₯Ό λ‹€μ‹œ μ‹€μ œ λ°μ΄ν„°λ² μ΄μŠ€μ˜ λ°μ΄ν„°λ‘œ λ˜λŒλ¦¬λŠ” μ΄λŸ¬ν•œ μž‘μ—…λ“€μ„ 지원

λ‘€λ°±κ³Ό 컀밋

μ‹€μ œλ‘œ νŠΈλžœμž­μ…˜μ„ μ‚¬μš©ν•΄μ„œ 데이터λ₯Ό μΆ”κ°€ν•˜κ²Œ 됨닀면 μ—λŸ¬κ°€ λ°œμƒν•΄λ„ νŠΈλžœμž­μ…˜μ„ λ‘€λ°±ν•¨μœΌλ‘œμ¨ 변경사항을 μ—†μ—ˆλ˜ κ²ƒμœΌλ‘œ ν•  수 μžˆλ‹€ λ§Œμ•½ μ—λŸ¬κ°€ λ°œμƒν•˜μ§€ μ•Šμ•˜λ‹€λ©΄, 컀밋을 ν†΅ν•΄μ„œ 변경사항을 μ €μž₯ν•˜κ³  νŠΈλžœμž­μ…˜μ„ μ’…λ£Œν•˜λŠ” 과정을 κ±°μΉœλ‹€

μžλ™μ»€λ°‹

νŠΈλžœμž­μ…˜μ„ ν†΅ν•΄μ„œ κΌΌκΌΌν•˜κ²Œ μž‘μ—…μ„ μ§„ν–‰ν•˜κ²Œ 되면 μžλ™μ»€λ°‹ 섀정을 꺼둬야 ν•œλ‹€ λ§Žμ€ RDBMSμ—λŠ” μžλ™μ»€λ°‹μ„ μ§€μ›ν•˜κ³  μžˆλŠ”λ°, INSERT/UPDATE/DELETE 와같은 λͺ…령을 μ‹€ν–‰ν•˜λ©΄ μžλ™μœΌλ‘œ μ»€λ°‹λœλ‹€ MySQLμ—μ„œλŠ” λ”°λ‘œ 섀정을 ν†΅ν•΄μ„œ μΌœλŠ” 것이 μ•„λ‹ˆλΌ START TRANSACTION μ΄λΌλŠ” ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄μ„œ μ‹€μ œ νŠΈλžœμž­μ…˜μ„ μ’…λ£Œν•˜μ§€ μ•Šκ³  진행할 수 μžˆλ‹€ μœ„μ—μ„œ λ§ν•œ κ²ƒμ²˜λŸΌ 문제 없이 진행을 ν–ˆμ„ κ²½μš°μ—λŠ” COMMIT 을 ν†΅ν•΄μ„œ 둜컬 변경사항을 디비에 μ μš©ν•œλ‹€ λ§Œμ•½ λ‘œμ»¬μ—μ„œ μ§„ν–‰ν–ˆλ˜ λ³€κ²½μ‚¬ν•­μ—μ„œ λ¬Έμ œκ°€ μžˆμ—ˆλ‹€λ©΄ ROLLBACK 을 ν†΅ν•΄μ„œ 둜컬의 변경사항을 무둜 λ˜λŒλ¦°λ‹€

Last updated

Was this helpful?