[PostgreSQL] WAL (Write-Ahead Logging) / μ•„μΉ΄μ΄λΈŒ λͺ¨λ“œ λ°±μ—…(Archive mode backup)의 κ°œλ… 및 μž₯단점

[PostgreSQL] WAL (Write-Ahead Logging) / μ•„μΉ΄μ΄λΈŒ λͺ¨λ“œ λ°±μ—…(Archive mode backup)의 κ°œλ… 및 μž₯단점

1. WAL (Write-Ahead Logging) / μ•„μΉ΄μ΄λΈŒ λͺ¨λ“œ λ°±μ—…(Archive mode backup)μ΄λž€? μ•„μΉ΄μ΄λΈŒ λͺ¨λ“œ 백업을 μ΄ν•΄ν•˜κΈ° μœ„ν•΄ WAL에 λŒ€ν•œ κ°œλ…μ„ λ¨Όμ € μ‚΄νŽ΄λ³΄μž. WAL은 PostgreSQLμ—μ„œ λ°μ΄ν„°μ˜ 무결성을 보μž₯ν•˜λŠ” ν‘œμ€€ λ°©λ²•μœΌλ‘œ, κΈ°λ³Έ μ½˜μ…‰νŠΈλŠ” λͺ¨λ“  λ°μ΄ν„°μ˜ 변경을 λ‘œκΉ… μ™„λ£Œ 후에 μ‹€ν–‰ν•˜λŠ” 것이닀. WAL 기둝을 영ꡬ적인 μ €μž₯μ†Œμ— λ¨Όμ € κΈ°λ‘ν•œ 후에 λ°μ΄ν„°μ˜ λ³€κ²½ λ‚΄μš©μ„ μ‹€ν–‰ν•˜λŠ” κ²ƒμœΌλ‘œ, 이 과정을 거치면 좩돌 ν˜Ήμ€ 데이터에 λ¬Έμ œκ°€ μžˆμ„ λ•Œ WAL λ‘œκΉ… λ‚΄μš©μ„ λ°”νƒ•μœΌλ‘œ νŠΉμ • μ‹œμ μœΌλ‘œ 볡ꡬ가 κ°€λŠ₯ν•˜μ—¬ 데이터 무결성을 보μž₯ν•  수 μžˆλ‹€. ...

[PostgreSQL] λŒ€λŸ‰ 데이터 μΈμ„œνŠΈ μ‹œ μ„±λŠ₯ κ°œμ„  및 주의 사항

[PostgreSQL] λŒ€λŸ‰ 데이터 μΈμ„œνŠΈ μ‹œ μ„±λŠ₯ κ°œμ„  및 주의 사항

λŒ€λŸ‰ 데이터 μΈμ„œνŠΈ μ‹œ μ„±λŠ₯ κ°œμ„  졜초 μ„œλΉ„μŠ€ λ°°ν¬λ‚˜ 데이터 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ ν•  λ•Œ λŒ€λŸ‰μ˜ 데이터λ₯Ό ν•œ λ²ˆμ— μΈμ„œνŠΈ ν•˜λŠ” κ²½μš°κ°€ μžˆλ‹€. PostgreSQL κ³΅μ‹λ¬Έμ„œμ—μ„œλŠ” λŒ€λŸ‰ μΈμ„œνŠΈ μ‹œμ— 효율적으둜 μ§„ν–‰ν•  수 μžˆλŠ” 방법을 μ œμ‹œν•΄ μ€€λ‹€. (λŒ€λŸ‰ 데이터λ₯Ό μΈμ„œνŠΈ ν•  λ•Œ 효율적인 섀정이지 λ°μ΄ν„°λ² μ΄μŠ€ μ‘°νšŒλ‚˜ μ—…λ°μ΄νŠΈ λ“±μ‹€μ œ 운영 μ‹œμ— μ‚¬μš©ν•  방법은 μ•„λ‹ˆλ‹€.) 1. Autocommit μ˜΅μ…˜ ν•΄μ œ λŒ€λŸ‰μ˜ μΈμ„œνŠΈ μ‹€ν–‰ μ‹œ, Autocommit μ˜΅μ…˜μ„ ν•΄μ œν•˜κ³  ν•œ νŠΈλžœμž­μ…˜μ—μ„œ μž‘μ—… 후에 컀밋을 μ§„ν–‰ν•΄μ•Ό ν•œλ‹€(일반적으둜 SQLλ₯Ό μ‹€ν–‰ μ‹œμ— μžλ™μœΌλ‘œ μ‹œμž‘ μ‹œ BEGIN, 끝날 λ•Œ COMMIT으둜 νŠΈλžœμž­μ…˜ μ²˜λ¦¬κ°€ λ˜μ§€λ§Œ, ν™•μ‹€νžˆ 되고 μžˆλŠ”μ§€ ν™•μΈν•„μš”ν•˜λ‹€.). λŒ€λŸ‰ 데이터 μΈμ„œνŠΈμ˜ 각각을 λ³„λ„λ‘œ commit ν•œλ‹€λ©΄, PostgreSQL은 μΈμ„œνŠΈ λ˜λŠ” 각 열에 λŒ€ν•΄ λ„ˆλ¬΄ λ§Žμ€ μž‘μ—…μ„ μˆ˜ν–‰ν•˜κ²Œ λœλ‹€. λ˜ν•œ λͺ¨λ“  μΈμ„œνŠΈλ₯Ό ν•œ νŠΈλžœμž­μ…˜μ— μ²˜λ¦¬ν•  κ²½μš°μ—λŠ” ν•œ INSERTκ°€ μ‹€νŒ¨ν•  경우 κ·Έ μ‹œμ κΉŒμ§€ μΈμ„œνŠΈ 된 λͺ¨λ“  μž‘μ—…μ΄ μ·¨μ†Œλ˜κΈ°μ— μ‹€νŒ¨ μž‘μ—…μ— λŒ€ν•œ λΆ€λΆ„ 보완 및 무결성을 κ³ λ €ν•˜μ§€ μ•Šμ•„λ„ λœλ‹€. ...

[PostgreSQL] μ™Έλž˜ν‚€(Foreign Keys) κ°œλ…, μ‚¬μš©λ²•, μž₯단점, μ μš©κ²€ν† 

[PostgreSQL] μ™Έλž˜ν‚€(Foreign Keys) κ°œλ…, μ‚¬μš©λ²•, μž₯단점, μ μš©κ²€ν† 

1. Foreign Key μ™Έλž˜ν‚€λž€? Foreign key constraint μ™Έλž˜ν‚€ μ œμ•½μ€ νŠΉμ • 칼럼 ν˜Ήμ€ μΉΌλŸΌλ“€μ˜ 값이 λ‹€λ₯Έ ν…Œμ΄λΈ”μ˜ νŠΉμ • row와 λ§€μΉ­λ˜μ–΄μ•Ό ν•˜λŠ” μ œμ•½μ‘°κ±΄μ΄λ‹€. 이λ₯Ό 두 κ΄€λ ¨ ν…Œμ΄λΈ” μ‚¬μ΄μ˜ μ°Έμ‘° 무결성 (referential integrity)λ₯Ό μœ μ§€ν•œλ‹€κ³  λ§ν•œλ‹€. κ·Έλ ‡κ²Œ λ³΅μž‘ν•œ κ°œλ…μ€ μ•„λ‹ˆλ‹ˆ λ°”λ‘œ μ‚¬μš©λ²•μ„ 확인해 보도둝 ν•˜μž 2. 예제 2-1. κΈ°λ³Έ μ™Έλž˜ν‚€(Foreign Keys) 생성 products ν…Œμ΄λΈ”μ€ λ¬Όν’ˆμ˜ 이름, 가격 정보 ν…Œμ΄λΈ”μ΄κ³ , orders ν…Œμ΄λΈ”μ€ μ‘΄μž¬ν•˜λŠ” λ¬Όν’ˆ 각각에 λŒ€ν•œ μˆœμ„œ 정보가 λ“€μ–΄μžˆλŠ” ν…Œμ΄λΈ”μ΄λ‹€. orders, products ν…Œμ΄λΈ”μ˜ product_no에 μ™Έλž˜ν‚€ μ œμ•½μ„ μ μš©ν•˜λŠ” μ˜ˆμ œμ΄λ‹€. ...

[λ””μžμΈνŒ¨ν„΄] μ»΄ν¬μ§€νŠΈ(Composite) νŒ¨ν„΄μ˜ κ°œλ…, 예제, μž₯단점, ν™œμš©

[λ””μžμΈνŒ¨ν„΄] μ»΄ν¬μ§€νŠΈ(Composite) νŒ¨ν„΄μ˜ κ°œλ…, 예제, μž₯단점, ν™œμš©

1. μ»΄ν¬μ§€νŠΈ(Composite) νŒ¨ν„΄μ΄λž€? CompositeλŠ” ν˜Όν•©λ¬Ό, λ³΅ν•©λ¬Όμ΄λž€ 뜻으둜 μ€‘μ²©λœ ꡬ쑰, μž¬κ·€μ μΈ ꡬ쑰λ₯Ό λ§Œλ“œλŠ” νŒ¨ν„΄μ΄λ‹€. λŒ€ν‘œμ μΈ 예둜 μœˆλ„μš° 디렉터리와 νŒŒμΌμ„ λ“€ 수 μžˆλ‹€. 디렉터리, νŒŒμΌμ€ μ—„μ—°νžˆ λ‹€λ₯Έ μ†μ„±μ΄μ§€λ§Œ λ‘˜ λ‹€ 디렉터리 μ•ˆμ— 넣을 수 μžˆλ‹€λŠ” 곡톡점이 μžˆλ‹€. 디렉터리 λ‚΄μ—λŠ” 또 λ‹€λ₯Έ 디렉터리가 μžˆμ„ 수 μžˆκΈ°μ— 쀑첩, μž¬κ·€μ μΈ ꡬ쑰λ₯Ό λ§Œλ“€μ–΄λ‚Έλ‹€. 디렉터리와 νŒŒμΌμ„ 합쳐 디렉터리 μ—”νŠΈλ¦¬λΌκ³  λΆ€λ₯΄κΈ°λ„ ν•œλ‹€. 두 속성을 같은 μ’…λ₯˜λ‘œ κ°„μ£Όν•˜λŠ” 것이닀. μ–΄λ–€ 디렉터리 μ•ˆμ— 무엇이 μžˆλŠ”μ§€ μ°¨λ‘€λŒ€λ‘œ 쑰사할 λ•Œ μ‘°μ‚¬ν•˜λŠ” 것이 디렉터리일 μˆ˜λ„, 파일일 μˆ˜λ„ μžˆλ‹€, ν•œλ§ˆλ””λ‘œ 디렉터리 μ—”νŠΈλ¦¬λ₯Ό μ°¨λ‘€λ‘œ μ‘°μ‚¬ν•œλ‹€λŠ” 것이닀. ...

[μ΄νŽ™ν‹°λΈŒ μžλ°”] 4. μΈμŠ€ν„΄μŠ€ν™”λ₯Ό λ§‰μœΌλ €κ±°λ“  private μƒμ„±μžλ₯Ό μ‚¬μš©ν•˜λΌ

[μ΄νŽ™ν‹°λΈŒ μžλ°”] 4. μΈμŠ€ν„΄μŠ€ν™”λ₯Ό λ§‰μœΌλ €κ±°λ“  private μƒμ„±μžλ₯Ό μ‚¬μš©ν•˜λΌ

1. κ°œλ… λ‹¨μˆœνžˆ 정적 λ©”μ„œλ“œμ™€ 정적 ν•„λ“œλ§Œμ„ 담은 클래슀λ₯Ό μƒμ„±ν•˜λŠ” κ²½μš°κ°€ μžˆλ‹€. 객체 μ§€ν–₯적 μ‚¬κ³ ν•˜μ§€ μ•ŠλŠ” 이듀이 μ’…μ’… λ‚¨μš©ν•˜μ§€λ§Œ μ“°μž„μƒˆλŠ” λΆ„λͺ…νžˆ μ‘΄μž¬ν•œλ‹€. λ‹¨μˆœνžˆ 정적 λ©”μ„œλ“œμ™€ 정적 ν•„λ“œλ§ŒμœΌλ‘œ 클래슀λ₯Ό μƒμ„±ν•˜λŠ” 경우 κΈ°λ³Έ νƒ€μž… κ°’μ΄λ‚˜ λ°°μ—΄ κ΄€λ ¨ λ©”μ„œλ“œμ˜ μ§‘ν•© ex) java.lang.Math, java.Util.Arrays νŠΉμ • μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•˜λŠ” 객체λ₯Ό 생성해 μ£ΌλŠ” 정적 λ©”μ„œλ“œμ˜ μ§‘ν•© ex) java.util.Collections final ν΄λž˜μŠ€μ™€ κ΄€λ ¨λœ λ©”μ„œλ“œμ˜ μ§‘ν•© (final 클래슀λ₯Ό μƒμ†ν•΄μ„œ ν•˜μœ„ ν΄λž˜μŠ€μ— λ©”μ„œλ“œλ₯Ό λ„£λŠ” 것은 λΆˆκ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έ) ν•΄λ‹Ή 정적 λ©€λ²„λ§Œ 담은 μœ ν‹Έλ¦¬ν‹° ν΄λž˜μŠ€λŠ” μΈμŠ€ν„΄μŠ€λ‘œ λ§Œλ“€μ–΄ μ“°κΈ° μœ„ν•΄ μ„€κ³„ν•œ 것이 μ•„λ‹ˆμ§€λ§ŒΒ μƒμ„±μžλ₯Ό λͺ…μ‹œν•˜μ§€ μ•ŠμœΌλ©΄ μ»΄νŒŒμΌλŸ¬κ°€ μžλ™μœΌλ‘œ κΈ°λ³Έ μƒμ„±μžλ₯Ό λ§Œλ“€μ–΄μ£ΌκΈ°μ— λ§€κ°œλ³€μˆ˜λ₯Ό λ°›μ§€ μ•ŠλŠ” public μƒμ„±μžκ°€ λ§Œλ“€μ–΄μ§€λ©°, μ‚¬μš©μžλŠ” 이 μƒμ„±μžκ°€ μžλ™μƒμ„±λœ 것인지 ꡬ뢄할 수 μ—†λ‹€. ...