λ°±μλ κ°λ°μ μ£Όλ‘ νμ§ μκΈ° λλ¬Έμ μ νν μ°¨μ΄λ₯Ό λͺ¨λ₯Έλ€.
κ·Έλμ κ°κ°μ΄ μΈμ μ°μ΄κ³ λ¬΄μ¨ νΉμ§κ³Ό μ°¨μ΄μ μ κ°λμ§ κ³΅λΆνκ³ μ 리νλ € νλ€.
μΉ μ±μ κ°λ°ν λ, λ°μ΄ν°λ² μ΄μ€λ₯Ό μ νν λ κ³ λ―Όνκ² λλ€.
- MySQLκ³Ό κ°μ SQLμ μ¬μ©ν κΉ? μλλ©΄ MongoDBμ κ°μ NoSQLμ μ¬μ©ν κΉ?
λ³΄ν΅ Springμμ κ°λ°ν λλ MySQLμ, Node.jsμμ μ¬μ©ν λλ MongoDBλ₯Ό μ£Όλ‘ μ¬μ©νμ κ²μ΄λ€. νμ§λ§ λ¨μν νλ μμν¬μ λ°λΌ κ²°μ νλ κ²μ΄ μλλ€.
νλ‘μ νΈλ₯Ό μ§ννκΈ° μμ μ ν©ν λ°μ΄ν°λ² μ΄μ€λ₯Ό νν΄μΌ νλ€.
μ΄μ λν΄ μμ보μ.
- SQLμ μ¬μ©νλ©΄ RDBMSμμ λ°μ΄ν°λ₯Ό μ μ₯, μμ , μμ λ° κ²μν μ μλ€.
- κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μλ ν΅μ¬μ μΈ λ κ°μ§ νΉμ§μ΄ μλ€.
- λ°μ΄ν°λ μ ν΄μ§ λ°μ΄ν° μ€ν€λ§μ λ°λΌ ν μ΄λΈμ μ μ₯λλ€.
- λ°μ΄ν°λ κ΄κ³λ₯Ό ν΅ν΄ μ¬λ¬ ν μ΄λΈμ λΆμ°λλ€.
λ°μ΄ν°λ ν μ΄λΈμ λ μ½λλ‘ μ μ₯λλλ°, κ° ν μ΄λΈλ§λ€ λͺ ννκ² μ μλ κ΅¬μ‘°κ° μλ€. ν΄λΉ ꡬ쑰λ νλμ μ΄λ¦κ³Ό λ°μ΄ν° μ νμΌλ‘ μ μλλ€.
λ°λΌμ μ€ν€λ§λ₯Ό μ€μνμ§ μμ λ μ½λλ ν μ΄λΈμ μΆκ°ν μ μλ€. μ¦, μ€ν€λ§λ₯Ό μμ νμ§ μλ μ΄μμ μ ν΄μ§ ꡬ쑰μ λ§λ λ μ½λλ§ μΆκ°κ° κ°λ₯ν κ²μ΄ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ νΉμ§ μ€ νλμ΄λ€.
λν, λ°μ΄ν°μ μ€λ³΅μ νΌνκΈ° μν΄ κ΄κ³λ₯Ό μ΄μ©νλ€.
νλμ ν μ΄λΈμμ μ€λ³΅ μμ΄ νλμ λ°μ΄ν°λ§μ κ΄λ¦¬νκΈ° λλ¬Έμ λ€λ₯Έ ν μ΄λΈμμ λΆμ νν λ°μ΄ν°λ₯Ό λ€λ£° μνμ΄ μ€μ΄λλ μ₯μ μ΄ μλ€.
- λ§κ·Έλλ‘ κ΄κ³ν DBμ λ°λμ΄λ€.
- μ€ν€λ§λ μκ³ κ΄κ³λ μλ€.
- NoSQLμμλ λ μ½λλ₯Ό λ¬Έμ(documents)λΌκ³ λΆλ₯Έλ€.
μ¬κΈ°μ SQLκ³Ό ν΅μ¬μ μΈ μ°¨μ΄κ° μλ€. SQLμ μ ν΄μ§ μ€ν€λ§λ₯Ό λ°λ₯΄μ§ μμΌλ©΄ λ°μ΄ν° μΆκ°κ° λΆκ°λ₯νλ€.
νμ§λ§ NoSQLμμλ λ€λ₯Έ ꡬ쑰μ λ°μ΄ν°λ₯Ό κ°μ 컬λ μ μ μΆκ°κ° κ°λ₯νλ€.
λ¬Έμ(documents)λ Jsonκ³Ό λΉμ·ν ννλ‘ κ°μ§κ³ μλ€. κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ²λΌ μ¬λ¬ ν μ΄λΈμ λλμ΄λ΄μ§ μκ³ , κ΄λ ¨ λ°μ΄ν°λ₯Ό λμΌν '컬λ μ 'μ λ£λλ€.
λ°λΌμ μμ μ¬μ§μ SQLμμ μ§νν Orders, Users, Products ν μ΄λΈλ‘ λλ κ²μ NoSQLμμλ Ordersμ νκΊΌλ²μ ν¬ν¨ν΄μ μ μ₯νκ² λλ€.
λ°λΌμ μ¬λ¬ ν μ΄λΈμ μ‘°μΈν νμμμ΄ μ΄λ―Έ νμν λͺ¨λ κ²μ κ°μΆ λ¬Έμλ₯Ό μμ±νλ κ²μ΄ NoSQLμ΄λ€.
(NoSQLμλ μ‘°μΈμ΄λΌλ κ°λ μ΄ μ‘΄μ¬νμ§ μλλ€.)
κ·Έλ¬λ©΄ μ‘°μΈνκ³ μΆμ λ NoSQLμ μ΄λ»κ² ν κΉ?
컬λ μ μ ν΅ν΄ λ°μ΄ν°λ₯Ό 볡μ νμ¬ κ° μ»¬λ μ μΌλΆλΆμ μνλ λ°μ΄ν°λ₯Ό μ ννκ² μ°μΆνλλ‘ νλ€.
νμ§λ§, μ΄λ¬λ©΄ λ°μ΄ν°κ° μ€λ³΅λμ΄ μλ‘ μν₯μ μ€ μνμ΄ μλ€. λ°λΌμ μ‘°μΈμ μ μ¬μ©νμ§ μκ³ μμ£Ό λ³κ²½λμ§ μλ λ°μ΄ν°μΌ λ, NoSQLμ μ°λ©΄ μλΉν ν¨μ¨μ μ΄λ€.
λ λ°μ΄ν°λ² μ΄μ€λ₯Ό λΉκ΅ν λ μ€μν Scaling κ°λ λ μ‘΄μ¬νλ€.
λ°μ΄ν°λ² μ΄μ€ μλ²μ νμ₯μ±μ μμ§μ νμ₯κ³Ό μνμ νμ₯μΌλ‘ λλμ΄μ§λ€.
- μμ§μ νμ₯ : λ¨μν λ°μ΄ν°λ² μ΄μ€ μλ²μ μ±λ₯μ ν₯μμν€λ κ²(ex. CPU μ κ·Έλ μ΄λ)
- μνμ νμ₯ : λ λ§μ μλ²κ° μΆκ°λκ³ λ°μ΄ν°λ² μ΄μ€κ° μ 체μ μΌλ‘ λΆμ°λ¨μ μλ―Ένλ€.(νλμ λ°μ΄ν°λ² μ΄μ€μμ μλνμ§λ§, μ¬λ¬ νΈμ€νΈμμ μλ)
λ°μ΄ν° μ μ₯ λ°©μμΌλ‘ μΈν΄ SQL DBλ μΌλ°μ μΌλ‘ μμ§μ νμ₯λ§ μ§μνλ€.
μνμ νμ₯μ NoSQL DBμμλ§ κ°λ₯νλ€.
λ μ€μ λ μ ννλλμ λν μ λ΅μ μλ€. μ΄λ€ λ°μ΄ν°λ₯Ό λ€λ£¨λλμ λ°λΌ μνλ λ°©μμ λ§κ² μ νμ κ³ λ €νλ©΄ λλ€.
[μ₯μ ]
- λͺ ννκ² μ μλ μ€ν€λ§, λ°μ΄ν° λ¬΄κ²°μ± λ³΄μ₯
- κ΄κ³λ κ° λ°μ΄ν°λ₯Ό μ€λ³΅ μμ΄ νλ²λ§ μ μ₯.
[λ¨μ ]
- λ μ μ°νλ€. λ°μ΄ν° μ€ν€λ§λ₯Ό μ¬μ μ κ³ννκ³ μλ €μΌ νλ€.(λμ€μ μμ νκΈ° νλ¦.)
- κ΄κ³λ₯Ό λ§Ίκ³ μμ΄μ μ‘°μΈλ¬Έμ΄ λ§μ 볡μ‘ν μΏΌλ¦¬κ° λ§λ€μ΄μ§ μ μμ.
- λμ²΄λ‘ μμ§μ νμ₯λ§ κ°λ₯νλ€.
[μ₯μ ]
- μ€ν€λ§κ° μμ΄μ μ μ°νλ€. μΈμ λ μ§ μ μ₯λ λ°μ΄ν°λ₯Ό μ‘°μ νκ³ μλ‘μ΄ νλ μΆκ°κ° κ°λ₯νλ€.
- λ°μ΄ν°λ μ ν리μΌμ΄μ μ΄ νμλ‘ νλ νμμΌλ‘ μ μ₯λλ€. λ°μ΄ν°λ₯Ό μ½μ΄μ€λ μλκ° λΉ¨λΌμ§λ€.
- μμ§ λ° μν νμ₯μ΄ κ°λ₯ν΄μ μ ν리μΌμ΄μ μ΄ λ°μμν€λ λͺ¨λ μ½κΈ°/μ°κΈ° μμ² μ²λ¦¬κ° κ°λ₯νλ€.
[λ¨μ ]
- μ μ°μ±μΌλ‘ μΈν΄ λ°μ΄ν° ꡬ쑰 κ²°μ μ λ―Έλ£¨κ² λ μ μλ€.
- λ°μ΄ν° μ€λ³΅μ κ³μ μ λ°μ΄νΈ ν΄μΌ νλ€.
- λ°μ΄ν°κ° μ¬λ¬ 컬λ μ μ μ€λ³΅λμ΄ μκΈ° λλ¬Έμ μμ μ λͺ¨λ 컬λ μ μμ μνν΄μΌ νλ€. (SQLμμλ μ€λ³΅ λ°μ΄ν°κ° μμΌλ―λ‘ νλ²λ§ μνμ΄ κ°λ₯)
-
κ΄κ³λ₯Ό λ§Ίκ³ μλ λ°μ΄ν°κ° μμ£Ό λ³κ²½λλ μ ν리μΌμ΄μ μ κ²½μ°
NoSQLμμλ μ¬λ¬ 컬λ μ μ λͺ¨λ μμ ν΄μΌ νκΈ° λλ¬Έμ λΉν¨μ¨μ
-
λ³κ²½λ μ¬μ§κ° μκ³ , λͺ νν μ€ν€λ§κ° μ¬μ©μμ λ°μ΄ν°μκ² μ€μν κ²½μ°
- μ νν λ°μ΄ν° ꡬ쑰λ₯Ό μ μ μκ±°λ λ³κ²½/νμ₯μ΄ λ μ μλ κ²½μ°
- μ½κΈ°λ₯Ό μμ£Ό νμ§λ§, λ°μ΄ν° λ³κ²½μ μμ£Ό μλ κ²½μ°
- λ°μ΄ν°λ² μ΄μ€λ₯Ό μνμΌλ‘ νμ₯ν΄μΌ νλ κ²½μ°(λ§λν μμ λ°μ΄ν°λ₯Ό λ€λ€μΌ νλ κ²½μ°)
