Database(20)
-
ν μ΄λΈ μ€μΊ λ°©μμ λ°λ₯Έ DB Block IO μ λ΅ (Single vs Multi)
Databaseκ° μΏΌλ¦¬μμ μꡬνλ λ°μ΄ν°λ₯Ό κ²μνκΈ° μν΄ ν μ΄λΈμ μ κ·Όνλ λ°©μμλ λ€μν μ’ λ₯κ° μλ€. ν¬κ²λ μΈλ±μ€μ νμ© μ¬λΆμ λ°λΌ κ°λ¦¬κ³ , μΈλ±μ€λ₯Ό μ΄λ€ λ°©μμΌλ‘ μ€μΊν μ§μ λν΄μλ μ’ λ₯κ° λλλ€. μ΄λ κ² λλ ν μ΄λΈ μ€μΊ λ°©μμ λλ΅ μλμ κ°μ΄ λνλΌ μ μλ€. Table Full Scan(Sequential Scan) Index Range Scan Index Full Scan Index Unique Scan Index Skip Scan Index Fast Full Scan μ΄ λ κ° μ€μΊ λ°©μλ€μ λ΄λΆμ μΈ μλ λ°©μμ λ°λΌ μλ‘ λ€λ₯Έ Block IO μ λ΅μ κ°κ² λλλ°, μ΄λ¬ν λ΄λΆ μλμ μ°¨μ΄λ₯Ό μ΄ν΄νλ©΄ μ DBκ° ν΄λΉ λ°©μμ μ¬μ©νλμ§μ λν μ΄ν΄λλ₯Ό λμΌ μ μλ€. λ°λΌμ ν΄λΉ κΈμ..
2023.12.02 -
DB μΈλ±μ€ μμ±μ μ¬μ΄λ μ΄ννΈ(with Mysql)
μ€μ λ‘ DBλ₯Ό λ€λ£¨κ² λλ μν©μμ λΉ μ§ μ μλ κ²μ΄ λ°λ‘ μΈλ±μ€μ΄λ€. μΈλ±μ€λ₯Ό ν΅νλ©΄ νΉμ 쑰건μμ λ°μ΄ν°μ μ‘°ν μ±λ₯μ΄ λΉμ½μ μΌλ‘ μ¦κ°νλ€λ κ²μ λꡬλ μκ³ μλ μ¬μ€μ΄λ€. κ·Έλ¬λ©΄μλ, μΈλ±μ€λ₯Ό λ¨λ°νλ©΄ μλλ€λ κ² λν λ€λ€ μκ³ μλ€. μ΄ λ λ±μ₯νλ λ Όλ¦¬κ° λ°λ‘ μΈλ±μ€κ° μ°¨μ§νλ 곡κ°μ λΉμ©κ³Ό λ°μ΄ν° μ½μ μ μΆκ°μ μΌλ‘ λ°μνλ μκ°μ λΉμ©μ λν λΉμ€μ 무μν μ μλ€λ κ²μ΄λ€. κ·Έλ°λ° λ§μ μ΄λ κ² κ²λ§ μ£Όκ³ μ€μ λ‘ κ·Έ μ λκ° μ΄λ μ λμΈμ§ μλ €μ£Όλ μλ£λ λ§μ΄ μμ΄μ μ΄μ λν΄ μ€μ λ‘ νμΈν΄λ³΄λ €κ³ νλ€. ν μ€νΈ νκ²½μ Mysqlμ΄κ³ , μλ¬΄λ° λ¦΄λ μ΄μ μ΄ μ‘΄μ¬νμ§ μλ λ 립λ ν μ΄λΈμμ ν μ€νΈλ₯Ό μ§ννμλ€. -- ν μ΄λΈ μμ± create table item ( id BIGINT NOT NULL..
2023.11.25 -
DB μ€νκ³ν νμΈλ²(in PostgreSQL)
μΌλ°μ μΈ μλ² - ν΄λΌμ΄μΈνΈ λͺ¨λΈμμ μλ² μΈ‘μ λ°μ΄ν°μ μμμ±μ μν΄ Databaseλ₯Ό νμ©νλ€. μ΄λ¬ν μν©μμ λ°μ΄ν°μ νλ¦μ κ°λ΅νκ² νννλ©΄ ν΄λΌμ΄μΈνΈ - WAS - DB μ ννκ° λλλ°, μΌλ°μ μΈ RDB κΈ°μ€ λ°μ΄ν°λ€μ λͺ¨λ Diskμ μ μ¬λκΈ° λλ¬Έμ μμ€ν μ½μ μ λ°νκ² λκ³ μλ² νκ²½ λ΄ λ³λͺ©μ΄ κ°μ₯ λ§μ΄ λ°μνλ μ§μ μ€ νλκ° λλ€. κ²°κ΅ WAS - DB κ° μλ΅ μλμ κ°μ μ΄ μ 체 μλ΅ μλμ κ°μ μΌλ‘ μ΄μ΄μ§λ κ²½μ°κ° λ§κΈ° λλ¬Έμ 쿼리μ κ°μ μ μ΄λ£¨μ΄λ΄λ κ²μ λͺΉμ μ€μνλ€. μ¬κΈ°κΉμ§ μ€κ³ λλ©΄ κ°μ μ΄ μ€μνλ€λ κ²μ μ΄ν΄κ° λλλ°, 쿼리 μμ μ ν΅ν΄ κ°μ μ΄ μ΄λ£¨μ΄μ§κ³ μλμ§ νλ¨νλ κΈ°μ€μ 무μμΌλ‘ μΌμμΌν κΉ? λ¬Όλ‘ ν΄λΌμ΄μΈνΈ μΈ‘μμ κ°λ°μ λꡬλ₯Ό ν΅ν΄ μλ΅ μλκ° μ΄λ»κ² λ³ννλμ§..
2023.11.11 -
RDB vs NoSQL
λ€μ΄κ°κΈ° μμ ν΄λΉ μ§λ¬Έμ μΈμ κ° λ©΄μ μμ μ§μ μμ² λ°μλ μ§λ¬Έμ΄κΈ°λ νκ³ , ꡬκΈλ§μ ν΄λ³΄μλ μΌμ’ μ λ©΄μ λ¨κ³¨ μ§λ¬ΈμΌλ‘ λΆλ¦°λ€. λ§μΉ¨ μ€ν°λμ μ£Όμ κ° λκΈ°λ νκ³ , μμΌλ‘λ μ΄μ λν΄ κ³ λ―Όνκ³ λ λλ΅ν μΌμ΄ λ§λ€κ³ μ¬κ²¨ μ΄λ₯Ό μ 리νλ€. RDB RDBλ μ ν΅μ μΈ ννμ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ₯Ό μλ―Ένλ€. μΌλ°μ μΌλ‘ λ§μ΄ μ°μ΄λ MySQL, PostgreSQL λ±μ΄ μ΄μ ν΄λΉνλ€. κΈ°λ³Έμ μΌλ‘ λ°μ΄ν°λ₯Ό 2μ°¨μ νλ ¬(ν μ΄λΈ) ννλ‘ κ΄λ¦¬νλ©°, λ°μ΄ν°μ νμμ μΌμ νκ² μ μ§νκΈ° μν μ€ν€λ§κ° μ‘΄μ¬νλ€. λ°μ΄ν°μ μ‘°ν, μ½μ , μμ , μμ μ SQLμ μ΄μ©νλλ°, μ΄λ€ DBλ₯Ό μ¬μ©νλλμ λ°λΌ μΈλΆμ μΈ ν¨μμ μ¬μ©λ² λ±μ΄ λ¬λΌμ§ μλ μμ§λ§ ν° νμ μλ‘ λμΌνλ€. DBμ μνμ νμ₯μ΄ μ΄λ €μ΄ νΈμΈλ°, μ΄λ RDB..
2023.02.18 -
νΈλμμ 격리 μμ€
νΈλμμ 격리 μμ€μ΄λ? DBμμ νΈλμμ μ΄λ νΉμ μμ μ μν DB μ°μ°λ€μ λͺ¨μμΌλ‘, νλμ μμ λ¨μμ΄λ€. νΈλμμ μ ACIDλ‘ λΆλ¦¬λ 4κ°μ§ νΉμ§μ κ°λλ€. λ€λ§ μ΄λ₯Ό μλ²½νκ² μ§ν€κΈ° μν΄μλ νΈλμμ λ€μ΄ μμ ν 격리λμ΄μΌ νλλ°, μ΄ κ³Όμ μμ DBμ λμμ±μ΄ κ³Όλνκ² ν¬μλκΈ° λλ¬Έμ μ±λ₯μ μ νλ‘ μ΄μ΄μ§ μ μλ€. κ·Έλ λ€κ³ νΈλμμ κ° κ²©λ¦¬λ₯Ό ν¬κΈ°ν΄λ²λ¦¬λ©΄ DBμ 무결μ±, μΌκ΄μ± μΈ‘λ©΄μμ λ§μ λ¬Έμ λ€μ΄ λ°μν μ μλ€. λ°λΌμ, DBμ μΌκ΄μ±κ³Ό μ±λ₯μ λͺ¨λ κ³ λ €νμ¬ νΈλμμ κ° κ²©λ¦¬λλ μ λλ₯Ό μ μ ν μ μ§νλ κ²μ΄ μ€μνλ€. μ΄λ₯Ό νΈλμμ μ 격리 μμ€(Isolation Level)μ΄λΌκ³ νλ€. 격리 μμ€μ κ³ λ €νμ§ μμΌλ©΄ λ°μνλ λ¬Έμ 1. Dirty Read Dirty Readλ νΈλμμ μ΄ μμ§..
2023.02.17 -
SQL Injection 곡격과 λμ
μ΄μ μ NodeJS Expressμ MySql2λ₯Ό μ°λνμ¬ ν μ΄ νλ‘μ νΈλ₯Ό μ§νν μ μ΄ μλ€. κ·Έλ μ¬μ©μμ μ΄λ©μΌμ κ°μ§κ³ ν΄λΉ μ΄λ©μΌμ κ°λ κ³μ μ΄ μ‘΄μ¬νλμ§μ λν μ¬λΆλ₯Ό νμΈνλ ν¨μλ₯Ό μμ±ν μΌμ΄ μλλ°, λ€μκ³Ό κ°μ΄ ꡬμ±νλ€. λΉμ μλ‘ μ½λ 리뷰λ₯Ό ν΄μ£Όλ κ·Έλ£Ήμ΄ μμλλ°, νλΆκ»μ μ μ½λλ₯Ό 보μκ³ λ "SQL Injection 곡격μ μ·¨μ½ν΄ 보μΈλ€"λΌκ³ νΌλλ°±μ ν΄μ£Όμ κΈ°μ΅μ΄ μλ€. μ§κΈμ΄μΌ μ λ° μμΌλ‘ μ½λλ₯Ό ꡬμ±νλ κ²μ΄ μννλ€λ κ²μ μκ³ μμ§λ§ λΉμμλ μλ κ²μ΄ λ³λ‘ μμκΈ° λλ¬Έμ SQL Injectionμ λ°λ‘ 곡λΆνλ κΈ°μ΅μ΄ μλ€. SQL Injection μ΄λ? SQL Injectionμ ν΄μ»€κ° νλ‘κ·Έλλ¨Έμ μλμ λ²μ΄λ λ°©λ²μ ν΅ν΄ SQLλ¬Έμ μ¬κ΅¬μ±, DBμ μ§μνμ¬ μ¬μ©μμ..
2023.02.11