λͺ©μ°¨
λ°μ΄ν°λ² μ΄μ€λ ν¬κ² κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ λΉκ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ‘ μλΆλλ€. κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ SQLμ κΈ°λ°μΌλ‘ νκ³ λΉκ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ NoSQLλ‘ λ°μ΄ν°λ₯Ό λ€λ£¬λ€. SQLκ³Ό NoSQLμ λ§λ€μ΄μ§ λ°©μ, μ μ₯νλ μ 보μ μ’
λ₯, κ·Έλ¦¬κ³ μ μ₯νλ λ°©λ² λ±μ μ°¨μ΄κ° μλ€.
κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ ꡬ쑰ν λμ΄μλ λ°μ΄ν°λ² μ΄μ€λ₯Ό μλ―Ένλ€. μ νλ²νΈμ μ£Όμ, μ΄λ¦μ΄ κ°μ΄ μ νμλ μ νλ²νΈλΆμ λΉμ·ν ꡬ쑰νλ μ€ν€λ§λ₯Ό 미리 μμ±ν΄μΌνλ€. μ΄μ λ°λλ‘, λΉκ΄κ³ν λ°μ΄ν°λ² μ΄λ ꡬ쑰νλμ§ μκ³ , λΆμ°λμ΄μλ€. μ»΄ν¨ν°μ μμ±ν νλμ ν΄λμ μ¬λ¬ μ¬λμ μ£Όμλ μ νλ²νΈ, μΌνλͺ° μ£Όμλ±μ λͺ¨λ λ΄μ μ μλ νμκ³Ό λΉμ·νλ€κ³ μκ°νλ©΄ νΈνλ€.
κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ ν(row)κ³Ό μ΄(column)λ‘ κ΅¬μ±λ ν μ΄λΈμ λ°μ΄ν°λ₯Ό μ μ₯νλ€. κ°κ°μ νμ νλμ μμ±μ λν μ 보λ₯Ό μ μ₯νκ³ , μ΄μλ κ°κ°μ λ°μ΄ν° νμμ λ§λ λ°μ΄ν°κ° μ μ₯λλ€. κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ μ μ₯λμ΄ κ΄λ¦¬λλ λ°μ΄ν°λ SQLμ΄λΌκ³ νλ ꡬ쑰νλ 쿼리 μΈμ΄λ‘ μμ±(Create), μ‘°ν(Read), κ°±μ (Update), μμ (Delete)μ νλμ μ§ννλ€. λνμ μΈ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μλ MySQL, Oracle, SQLite, Postgres, MariaDBκ° μλ€.
NoSQL κΈ°λ°μ λΉκ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ λ³΄ν΅ λ€μκ³Ό κ°μ νμ μΌλ‘ ꡬμ±λλ€.
Key-Value νμ
: λ°μ΄ν°λ₯Ό Key-Value
μ μμ μμ±μΌλ‘ νλ λ°°μ΄ ννλ‘ μ μ₯νλ€. μ¬κΈ°μ Keyλ μμ± μ΄λ¦μ λ»νκ³ , Valueλ μμ±μ μ°κ²°λ λ°μ΄ν° κ°μ μλ―Ένλ€. Redis, Dynamo λ±μ΄ λνμ μΈ Key-Value νμμ λ°μ΄ν°λ² μ΄μ€λ€.
λ¬Έμν(Document) λ°μ΄ν°λ² μ΄μ€ : λ°μ΄ν°λ₯Ό ν μ΄λΈμ΄ μλ λ¬Έμμ²λΌ μ μ₯νλ λ°μ΄ν°λ² μ΄μ€λ₯Ό μλ―Ένλ€. JSON μ μ¬ νμμΌλ‘ λ°μ΄ν°λ₯Ό λ¬Έμννλ€. κ°κ°μ λ¬Έμλ νλμ μμ±μ λν λ°μ΄ν°λ₯Ό κ°μ§κ³ 컬λ μ μ΄λΌκ³ νλ κ·Έλ£ΉμΌλ‘ λ¬Άμ΄μ κ΄λ¦¬νλ€. λνμ μΈ λ¬Έμν λ°μ΄ν°λ² μ΄μ€μλ MongoDBκ° μλ€.
Wide-Column λ°μ΄ν°λ² μ΄μ€ : λ°μ΄ν°λ² μ΄μ€μ μ΄(column)μ λν λ°μ΄ν° κ΄λ¦¬λ₯Ό μ§μ€νλ λ°μ΄ν°λ² μ΄μ€λ€. κ° μ΄μλ key-value νμμΌλ‘ λ°μ΄ν°κ° μ μ₯λκ³ , μ»¬λΌ ν¨λ°λ¦¬(column families)λΌκ³ νλ μ΄μ μ§ν©μ²΄ λ¨μλ‘ λ°μ΄ν°λ₯Ό μ²λ¦¬ν μ μλ€. νλμ νμ λ§μ μ΄μ ν¬ν¨ν μ μλ€λ μ μ°μ±μ΄ μλ€. λ°μ΄ν° μ²λ¦¬μ νμν μ΄μ μ μ°νκ² μ νν μ μλ€λ μ μμ ν° κ·λͺ¨μ λ°μ΄ν° λΆμμ μ£Όλ‘ μ¬μ©λλ λ°μ΄ν°λ² μ΄μ€ νμμ΄λ€. λνμ μΈ wide-column λ°μ΄ν°λ² μ΄μ€μλ Cassandra, HBaseκ° μλ€.
κ·Έλν(Graph) λ°μ΄ν°λ² μ΄μ€ : μλ£κ΅¬μ‘°μ κ·Έλνμ λΉμ·ν νμμΌλ‘ λ°μ΄ν° κ°μ κ΄κ³λ₯Ό ꡬμ±νλ λ°μ΄ν°λ² μ΄μ€λ€. λ°μ΄ν°λ λ Έλ(nodes)μ μμ±λ³(entities)λ‘ μ μ₯λλ€. κ° λ Έλκ°μ κ΄κ³λ μ (edge)μΌλ‘ μ°κ²°λλ€. λνμ μΈ κ·Έλν λ°μ΄ν°λ² μ΄μ€μλ Neo4J, InfiniteGraphκ° μλ€.
λ°μ΄ν° μ μ₯(Storage)
μ€ν€λ§(Schema)
쿼리(Querying)
νμ₯μ±(Scalability)
λ°μ΄ν°λ² μ΄μ€λ₯Ό ꡬμΆνλ λ°©λ²μ μ ννλ κ²μ μλ²½ν μ루μ μ μλ€. κ·Έλ κΈ° λλ¬Έμ λ§μ κ°λ°μλ€μ μλΉμ€μ λ§κ³ μ μ μ μꡬλ₯Ό μΆ©μ‘±νκΈ° μν΄ κ΄κ³ν, λΉκ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ₯Ό λͺ¨λ μ¬μ©νλ€. NoSQL κΈ°λ°μ λΉκ΄κ³ν λ°μ΄ν°λ² μ΄μ€κ° νμ₯μ±μ΄λ μλμμ λ°μ΄λλ€κ³ ν΄λ κ³ μ°¨μμΌλ‘ ꡬ쑰νλ SQL κΈ°λ°μ λ°μ΄ν°λ² μ΄μ€κ° λ μ’μ μ±λ₯μ 보μ¬μ£ΌκΈ°λ νλ€. μ¬λ¬ μ¬μ© μ¬λ‘λ₯Ό μ΄ν΄λ³΄κ³ μ μ ν λ°μ΄ν°λ² μ΄μ€λ₯Ό μ ννλ κ²μ΄ μ€μνλ€.
λ°μ΄ν°λ² μ΄μ€μ ACID μ±μ§μ μ€μν΄μΌ νλ κ²½μ°
ACIDλ Atomicity, Consistency, Isolation, Durability λ₯Ό κ°λ¦¬ν¨λ€. κ° λ¨μ΄λ λ°μ΄ν°λ² μ΄μ€ λ΄μμ μΌμ΄λλ νλμ μν λ³ν μν(transaction)μ μμ μ±μ 보μ₯νκΈ° μν΄ νμν μ±μ§μ΄λ€. SQLμ μ¬μ©νμ¬ λ°μ΄ν°λ² μ΄μ€μ μνΈ μμ©νλ λ°©μμ μ ννκ² κ·μ ν μ μκΈ° λλ¬Έμ μ΄μ μ§νλ₯Ό μ€μ΄κ³ , λ°μ΄ν°λ² μ΄μ€μ 무결μ±μ 보νΈν μ μλ€.
μ μ μκ±°λ, κΈμ΅ μλΉμ€λ₯Ό μν μννΈμ¨μ΄ κ°λ°μμλ λ°μ΄ν°λ² μ΄μ€μ ACID μ±μ§μ μ μ€μν΄μ£Όλ κ²μ΄ νμ μ΅μ
μΌλ‘ λμ΄μκΈ° λλ¬Έμ SQLμ μ΄μ©ν κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ₯Ό μ¬μ©νλ€.
μννΈμ¨μ΄μ μ¬μ©λλ λ°μ΄ν°κ° ꡬ쑰μ μ΄κ³ μΌκ΄μ μΈ κ²½μ°
μννΈμ¨μ΄(νλ‘μ νΈ)μ κ·λͺ¨κ° λ§μ μλ²λ₯Ό νμλ‘ νμ§ μκ³ , μΌκ΄λ λ°μ΄ν°λ₯Ό μ¬μ©νλ κ²½μ°, λ³΄ν΅ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ₯Ό μ¬μ©νλ€. μ΄λ° κ²½μ° λ€μν λ°μ΄ν° μ νκ³Ό λμ νΈλν½μ μ§μνλλ‘ μ€κ³λ NoSQL λ°μ΄ν°λ² μ΄μ€λ₯Ό κ΅³μ΄ μ¬μ©ν μ΄μ κ° μλ€.
λ°μ΄ν°μ κ΅¬μ‘°κ° κ±°μ λλ μ ν μλ λμ©λμ λ°μ΄ν°λ₯Ό μ μ₯νλ κ²½μ°
λλΆλΆμ NoSQL λ°μ΄ν°λ² μ΄μ€λ μ μ₯ν μ μλ λ°μ΄ν° μ νμ μ νμ μ€μ νμ§ μλλ€. νμμ λ°λΌμ λ°μ΄ν°μ μ μ νμ μΆκ°ν μ μλ€. κ·Έλ κΈ° λλ¬Έμ μννΈμ¨μ΄ κ°λ°μ μ νν λμ§ μμ λ§μ μμ λ°μ΄ν°κ° νμν κ²½μ°, NoSQLμ μ μ©νλ κ²μ΄ ν¨μ¨μ μΌ μ μλ€.
ν΄λΌμ°λ μ»΄ν¨ν
λ° μ μ₯곡κ°μ μ΅λν νμ©νλ κ²½μ°
ν΄λΌμ°λ κΈ°λ°μΌλ‘ λ°μ΄ν°λ² μ΄μ€ μ μ₯μλ₯Ό ꡬμΆνλ©΄ μ λ ΄ν λΉμ©μ μλ₯μ μ μ 곡 λ°μ μ μλ€. μννΈμ¨μ΄μ λ°μ΄ν°λ² μ΄μ€μ νμ₯μ±μ΄ μ€μνλ€λ©΄ μ¬λ¬ λ°μ΄ν° μΌν°μ κ±Έμ³μ λ§μ λ²κ±°λ‘μ μμ΄ νμ₯ν μ μλ NoSQL λ°μ΄ν°λ² μ΄μ€λ₯Ό μ¬μ©νλ κ²μ΄ μ’λ€.
λΉ λ₯΄κ² μλΉμ€λ₯Ό ꡬμΆνκ³ λ°μ΄ν° ꡬ쑰λ₯Ό μμ£Ό μ
λ°μ΄νΈ νλ κ²½μ°
NoSQL λ°μ΄ν°λ² μ΄μ€μ κ²½μ° μ€ν€λ§λ₯Ό 미리 μ€λΉν νμκ° μκΈ° λλ¬Έμ λΉ λ₯΄κ² κ°λ°νλ κ³Όμ μ λ§€μ° μ μ©νλ€. μμ₯μ λΉ λ₯΄κ² νλ‘ν νμ μ μΆμν΄μΌ νλ κ²½μ°κ° ν΄λΉν μ μλ€. λν μννΈμ¨μ΄ λ²μ λ³λ‘ λ§μ λ€μ΄νμ μμ΄ λ°μ΄ν° ꡬ쑰λ₯Ό μμ£Ό μ λ°μ΄νΈ ν΄μΌνλ κ²½μ°, κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ μ€ν€λ§ μμ λ±μΌλ‘ λ§μ μ΄λ €μμ΄ μλ€. κ·Έλ΄λ NoSQL κΈ°λ°μ λΉκ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ₯Ό μ¬μ©νλ©΄ μ’λ€.
μ°Έκ³ ν λ νΌλ°μ€