๐Ÿ“š
TIL
  • README
  • Git
    • Basic
    • Remote Repository
    • Log & Diff
    • Rebase&Cherri-Pick
    • git-flow
  • DevOps
    • Monolithic vs MSA
    • Jenkins ์‹œ์ž‘ํ•˜๊ธฐ
    • Airflow ์‹œ์ž‘ํ•˜๊ธฐ
    • Airflow ์‹œ์ž‘ํ•˜๊ธฐ
    • Build Tools
      • maven
  • ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก 
    • TDD
  • Spring
    • IoC
    • Is Spring Bean Thread-Safe?
    • Spring Singleton
    • Component Scan
    • Spring Annotation
    • ์˜์กด ๊ด€๊ณ„ ์ฃผ์ž…(DI)
    • Lombok ํ™œ์šฉํ•˜๊ธฐ
    • Bean ์ƒ๋ช…์ฃผ๊ธฐ์™€ ์ฝœ๋ฐฑ
    • Bean Scope
    • AOP(1) - AOP๋ž€
    • AOP(2) - Aop Proxy
    • AOP(3) - Dynamic Proxy
    • AOP(4) - AspectJ
    • POJO
    • Spring ์„œ๋น„์Šค ๊ตฌ์กฐ
    • Transaction
    • JPA๋ž€?
    • JPA Entity
    • Spring Data JPA
    • Spring Data Specification
    • Model Mapping
    • Cache
    • restTemplate
    • YAML ํŒŒ์ผ ์„ค์ •
    • Spring Boot
      • H2 DB ์„ค์ •
      • ๋‹ค์ค‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ •
      • Mybatis ์—ฐ๋™ํ•˜๊ธฐ
    • Spring Batch
      • Batch ์‹œ์ž‘ํ•ด๋ณด๊ธฐ
      • Batch Job Flow
      • Job
      • Step
      • Batch Scope & Job Parameter
      • JobRepository์™€ ๋ฉ”ํƒ€ํ…Œ์ด๋ธ”
      • Chunk ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
      • ItemReader
      • ItemProcessor
      • ItemWriter
      • Batch Schedular
      • Job๋ณ„ Bean๋“ฑ๋กํ•˜๊ธฐ
      • Batch ๊ตฌํ˜„์‹œ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜ ์ •๋ฆฌ
      • Spring Batch Scaling
        • Multithread Job๊ตฌํ˜„์‹œ ์ด์Šˆ์‚ฌํ•ญ
    • Spring test
      • Junit5
        • ํ…Œ์ŠคํŠธ ์ด๋ฆ„ ํ‘œ๊ธฐ
        • ํ…Œ์ŠคํŠธ ๊ทธ๋ฃน ์‚ฌ์ด์˜ ๊ด€๊ณ„
        • ํƒœ๊ทธ์™€ ํ•„ํ„ฐ๋ง
        • ๋™์  ํ…Œ์ŠคํŠธ
        • ํ…Œ์ŠคํŠธ LifeCycle
        • ํ…Œ์ŠคํŠธ ๋ฉ”์„œ๋“œ
        • ํ…Œ์ŠคํŠธ ์ˆœ์„œ
        • AssertJ
        • ํ…Œ์ŠคํŠธ ๋ณ‘๋ ฌ ์‹คํ–‰
        • AssertJ
        • Mock
      • Spring Boot Test DB ๋ถ„๋ฆฌ
      • Spring Batch Test
  • Web Application
    • Web Server & WAS
    • ๊ด€๋ จ ๊ฐœ๋… - HTTP API, HTML, CSR, SSR
    • Servlet
    • JSP
    • Cookie And Session
    • ์˜ˆ์™ธํŽ˜์ด์ง€
    • Java Bean
    • JDBC
    • Connection Pool
    • ํŒŒ์ผ ์—…๋กœ๋“œ
    • Expression Language
    • JSTL
    • FrontControllerํŒจํ„ด Command ํŒจํ„ด
    • Forwarding
    • MVC
    • ํšŒ์›๊ฐ€์ž…์˜ˆ์ œ
    • ์ฐธ๊ณ 
      • ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ค์ •
  • Java+
    • SOAP/WSDL vs REST
    • WSDL์„ JAVA๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ
    • SOAP ํ†ต์‹  OPEN API๋กœ ๊ฐœ๋ฐœํ•ด๋ณด๊ธฐ
  • Java
    • Basic
      • ๋ณ€์ˆ˜์™€ ํƒ€์ž…
      • ์—ฐ์‚ฐ์ž
      • ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ
      • ์ฐธ์กฐ ํƒ€์ž…
      • ํด๋ž˜์Šค
      • ์ƒ์†(Inheritance)
      • ์ธํ„ฐํŽ˜์ด์Šค(Interface)
      • ์ค‘์ฒฉ ํด๋ž˜์Šค์™€ ์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค
      • ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
      • API - Object, System, Class, Math, Wrapper
      • API - String, StringBuffer, StringBuilder
      • Thread
      • Generic
      • Lambda
      • Collection - List, Set
      • Collection - Map
      • Collection - Tree
      • Collection - Stack, Queue
      • Stream
      • Reflection
      • ์ •๊ทœํ‘œํ˜„์‹
      • GUI
      • UML
      • Serializable
    • Advanced
      • OutOfMemoryError
      • AutoValue
      • meta-annotation
        • @Retention
        • @Target
        • @Repeatable
    • Effective Java 3/E
      • ITEM 1: Static Factory Method(์ •์  ๋ฉ”์†Œ๋“œ)
      • ITEM 2: Builder Pattern
      • ITEM 3: Singleton
      • ITEM 4: Private Constructor
      • ITEM 5: Dependency Injection
      • ITEM 6: Avoid Unnecessary Object
      • ITEM 7: Eliminate Object Reference
      • ITEM 8: Avoid finalizer and cleaner
      • ITEM 9: try-with-resources
      • ITEM 10: The gerneral contract when overriding equlas
      • ITEM 11: Overriding hashCode
      • ITEM 12: overriding toString
      • ITEM 13: overriding clone judiciously
      • ITEM 14: Consider implementing comparable
      • ITEM 15: ํด๋ž˜์Šค์™€ ๋ฉค๋ฒ„์˜ ์ ‘๊ทผ์„ ์ตœ์†Œํ™”ํ•ด๋ผ
      • ITEM 16: Use Accessor methods
      • ITEM 17: ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ์„ฑ์„ ์ตœ์†Œํ™”ํ•ด๋ผ(๋ถˆ๋ณ€ ํด๋ž˜์Šค)
      • ITEM 18: ์ƒ์†๋ณด๋‹จ ์ปดํฌ์ง€์…˜์„ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 19: ์ƒ์†์„ ๊ณ ๋ คํ•ด ์„ค๊ณ„ํ•˜๊ณ  ๋ฌธ์„œํ™”ํ•ด๋ผ
      • ITEM 20: ์ถ”์ƒ ํด๋ž˜์Šค๋ณด๋‹ค ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์šฐ์„ ํ•˜๋ผ
      • ITEM 21: ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๊ตฌํ˜„ํ•˜๋Š” ์ชฝ์„ ์ƒ๊ฐํ•ด ์„ค๊ณ„ํ•ด๋ผ.
      • ITEM 22: ์ธํ„ฐํŽ˜์ด์Šค๋Š” ํƒ€์ž…์„ ์ •์˜ํ•˜๋Š” ์šฉ๋„๋กœ๋งŒ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 23: ํƒœ๊ทธ ๋‹ฌ๋ฆฐ ํด๋ž˜์Šค๋ณด๋‹ค ํด๋ž˜์Šค ๊ณ„์ธต๊ตฌ์กฐ๋ฅผ ํ™œ์šฉํ•ด๋ผ
      • ITEM 24: ๋ฉค๋ฒ„ ํด๋ž˜์Šค๋Š” ๋˜๋„๋ก static์œผ๋กœ ๊ตฌํ˜„ํ•ด๋ผ
      • ITEM 25: ํ†ฑ๋ ˆ๋ฒจ ํด๋ž˜์Šค๋Š” ํ•œ ํŒŒ์ผ์— ํ•˜๋‚˜๋งŒ ์ƒ์„ฑํ•ด๋ผ.
      • ITEM 26: Raw type์€ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ๋ผ
      • ITEM 27: ๋น„๊ฒ€์‚ฌ ๊ฒฝ๊ณ ๋ฅผ ์ œ๊ฑฐํ•ด๋ผ
      • ITEM 28: ๋ฐฐ์—ด๋ณด๋‹ค๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 29: ์ด์™•์ด๋ฉด ์ œ๋„ค๋ฆญ ํƒ€์ž…์œผ๋กœ ๋งŒ๋“ค์–ด๋ผ
      • ITEM 30: ์ด์™•์ด๋ฉด ์ œ๋„ค๋ฆญ ๋ฉ”์„œ๋“œ๋กœ ๋งŒ๋“ค์–ด๋ผ
      • ITEM 31 : ํ•œ์ •์  ์™€์ผ๋“œ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•ด API ์œ ์—ฐ์„ฑ์„ ๋†’์—ฌ๋ผ
      • ITEM 32: ์ œ๋„ค๋ฆญ๊ณผ ๊ฐ€๋ณ€์ธ์ˆ˜๋ฅผ ํ•จ๊ป˜ ์“ธ ๋•Œ๋Š” ์‹ ์ค‘ํ•ด๋ผ
      • ITEM 33: ํƒ€์ž… ์•ˆ์ „ ์ด์ข… ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ณ ๋ คํ•ด๋ผ
      • ITEM 34: int ์ƒ์ˆ˜ ๋Œ€์‹  ์—ด๊ฑฐ ํƒ€์ž…์„ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 35: ordinal ๋ฉ”์„œ๋“œ ๋Œ€์‹  ์ธ์Šคํ„ด์Šค ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 36: ๋น„ํŠธ ํ•„๋“œ ๋Œ€์‹  EnumSet์„ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 37: ordinal ์ธ๋ฑ์‹ฑ ๋Œ€์‹  EnumMap์„ ์‚ฌ์šฉํ•ด๋ผ
      • TEM 38 : ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์—ด๊ฑฐํƒ€์ž…์ด ํ•„์š”ํ•˜๋ฉด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 39: ๋ช…๋ช… ํŒจํ„ด๋ณด๋‹ค ์• ๋„ˆํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 40: @Override ์–ด๋…ธํ…Œ์ด์…˜์„ ์ผ๊ด€๋˜๊ฒŒ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 41: ์ •์˜ํ•˜๋ ค๋Š” ๊ฒƒ์ด ํƒ€์ž…์ด๋ผ๋ฉด ๋งˆ์ปค ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 42: ์ต๋ช… ํด๋ž˜์Šค๋ณด๋‹ค๋Š” ๋žŒ๋‹ค๋ฅผ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 43: ๋žŒ๋‹ค๋ณด๋‹ค๋Š” ๋ฉ”์„œ๋“œ ์ฐธ์กฐ๋ฅผ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 44: ํ‘œ์ค€ ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 45: ์ŠคํŠธ๋ฆผ์€ ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 46: ์ŠคํŠธ๋ฆผ์—์„œ ๋ถ€์ž‘์šฉ ์—†๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 47: ๋ฐ˜ํ™˜ ํƒ€์ž…์œผ๋กœ๋Š” ์ŠคํŠธ๋ฆผ๋ณด๋‹ค ์ปฌ๋ ‰์…˜์ด ๋‚ซ๋‹ค.
      • ITEM 48: ์ŠคํŠธ๋ฆผ ๋ณ‘๋ ฌํ™”๋Š” ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 49: ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์œ ํšจํ•œ์ง€ ๊ฒ€์‚ฌํ•ด๋ผ
      • ITEM 50: ์ ์‹œ์— ๋ฐฉ์–ด์  ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ค์–ด๋ผ
      • ITEM 51: ๋ฉ”์„œ๋“œ ์‹œ๊ทธ๋‹ˆ์ฒ˜๋ฅผ ์‹ ์ค‘ํžˆ ์„ค๊ณ„ํ•ด๋ผ
      • ITEM 52: ๋‹ค์ค‘์ •์˜๋Š” ์‹ ์ค‘ํžˆ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 53: ๊ฐ€๋ณ€์ธ์ˆ˜๋Š” ์‹ ์ค‘ํžˆ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 54: null์ด ์•„๋‹Œ, ๋นˆ ์ปฌ๋ ‰์…˜์ด๋‚˜ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ด๋ผ
      • ITEM 55: Optional ๋ฐ˜ํ™˜์€ ์‹ ์ค‘ํ•˜๊ฒŒ ํ•ด๋ผ
      • ITEM 56: ๊ณต๊ฐœ๋œ API ์š”์†Œ์—๋Š” ํ•ญ์ƒ ์ฃผ์„์„ ์ž‘์„ฑํ•ด๋ผ
      • ITEM 57: ์ง€์—ญ๋ณ€์ˆ˜์˜ ๋ฒ”์œ„๋ฅผ ์ตœ์†Œํ™”ํ•ด๋ผ
      • ITEM 58: ์ „ํ†ต์ ์ธ for ๋ฌธ๋ณด๋‹ค๋Š” for-each๋ฌธ์„ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 59: ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ตํžˆ๊ณ  ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 60: ์ •ํ™•ํ•œ ๋‹ต์ด ํ•„์š”ํ•˜๋‹ค๋ฉด float์™€ double์€ ํ”ผํ•ด๋ผ
      • ITEM 61: ๋ฐ•์‹ฑ๋œ ๊ธฐ๋ณธ ํƒ€์ž…๋ณด๋‹ค๋Š” ๊ธฐ๋ณธ ํƒ€์ž…์„ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 62: ๋‹ค๋ฅธ ํƒ€์ž…์ด ์ ์ ˆํ•˜๋‹ค๋ฉด ๋ฌธ์ž์—ด ์‚ฌ์šฉ์„ ํ”ผํ•ด๋ผ
      • ITEM 63: ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ์€ ๋А๋ฆฌ๋‹ˆ ์ฃผ์˜ํ•ด๋ผ
      • ITEM 64: ๊ฐ์ฒด๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด ์ฐธ์กฐํ•ด๋ผ
      • ITEM 65: ๋ฆฌํ”Œ๋ ‰์…˜๋ณด๋‹ค๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 66: ๋„ค์ดํ‹ฐ๋ธŒ ๋ฉ”์„œ๋“œ๋Š” ์‹ ์ค‘ํžˆ ์‚ฌ์šฉํ•ด๋ผ
      • ITEM 67: ์ตœ์ ํ™”๋Š” ์‹ ์ค‘ํžˆ ํ•ด๋ผ
      • ITEM 68: ์ผ๋ฐ˜์ ์œผ๋กœ ํ†ต์šฉ๋˜๋Š” ๋ช…๋ช… ๊ทœ์น™์„ ๋”ฐ๋ผ๋ผ
    • ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™(SOLID)
    • ๋””์ž์ธํŒจํ„ด
      • Strategy Pattern
      • Template Method Pattern
      • Factory Method Pattern
      • Singleton
      • Delegation
      • Proxy
      • Adapter Pattern
    • ์‹ค์Šต
      • ์ธํ„ฐํŽ˜์ด์Šค ์‹ค์Šต - Vehicle
      • ์ธํ„ฐํŽ˜์ด์Šค ์‹ค์Šต - Remote
      • GUI ์‹ค์Šต - Calculator
      • GUI ์‹ค์Šต - button
      • GUI ์‹ค์Šต - lotto
      • Thread ์‹ค์Šต - ์ขŒ์„์˜ˆ์•ฝ, ๋ฉ”์„ธ์ง€๋ณด๋‚ด๊ธฐ
    • Jar vs War
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    • KEY
    • Index
    • Transaction
    • Trigger
    • Procedure / Function
    • Package
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฐ์›€ํ„ฐ
      • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ
      • ๊ด€๊ณ„๋ฐ์ดํ„ฐ ๋ชจ๋ธ
      • ๊ด€๊ณ„๋Œ€์ˆ˜์™€ SQL
    • MySQL
      • Database๋ž€
      • MySQL ์‹œ์ž‘ํ•˜๊ธฐ
      • MySQL Database
      • MySQL Table
      • CRUD
      • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
      • Server์™€ Client
    • PostgreSQL
    • NoSQL
      • Install Cassandra on mac
      • Cassandra๋ž€?
      • NiFi๋ž€
  • Algorithm
    • String
    • Recursion
    • Dynamic Programming
    • Array, Struct, Pointer
    • Math
    • Sort
    • List
    • Stack
    • Queue
    • Graph
    • Tree
    • Maze
    • AVL
    • ์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ(Binary Search Tree)
    • DFS์™€ BFS
    • ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Dijkstra's Algorithm)
    • Red-Black ํŠธ๋ฆฌ
    • A* ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • Heap
    • Huffman Coding
    • Priority Queue
    • Bellman-Ford ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • C++
      • Class
      • STL
        • STL pair
        • STL Container - Associate Container
        • STL Container - Sequence Container
        • STL Container - Container Adapter
  • JavaScript
    • JABASCRIPT BASIC
    • Shallow Copy vs Deep Copy
    • OBJECT MODEL
    • NODE
    • ๋™๊ธฐ ์ฒ˜๋ฆฌ vs ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ
    • AJAX
    • CALLBACK
    • PROMISE
    • DEFERRER
    • UNDERSCORE
    • WEBPACK
    • SCOPE
    • EXECUTION CONTEXT
    • Image Object
    • BFCache๋ž€?
    • history.scrollRestoration
    • Intersection Observer
    • JWT - JSON Web Token
    • HTML vs JSON
  • Vue.js
    • ํ™˜๊ฒฝ์„ค์ •
    • Vue.js๋ž€?
    • Vue Instance
    • Vue Component
    • Vue Router
    • HTTP ํ†ต์‹ 
    • Template
    • Single File Component
    • Vue Animation
    • Vuex
    • Djnago์™€ ์—ฐ๋™ํ•˜๊ธฐ
  • Backbone.js
    • Model
    • Collection
    • Sync
    • view
  • Node.js
    • Doit! - ๋…ธ๋“œ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ‘œ์ ์ธ ์„œ๋ฒ„์™€ ์šฉ๋„
    • Doit! - ๋…ธ๋“œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ  ๊ฐœ๋ฐœ ๋„๊ตฌ ์„ค์น˜ํ•˜๊ธฐ
    • Doit! - ๋…ธ๋“œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ดํŽด๋ณด๊ธฐ
    • Doit! - ๋…ธ๋“œ์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ์นœํ•ด์ง€๊ธฐ
    • Doit! - ๋…ธ๋“œ์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ์•Œ์•„๋ณด๊ธฐ
    • Doit! - ์›น ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ
    • Doit! - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉํ•˜๊ธฐ
    • Doit! - ์ต์Šคํ”„๋ ˆ์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ๋ชจ๋“ˆํ™”ํ•˜๊ธฐ
    • Doit! - ๋ทฐ ํ…œํ”Œ๋ฆฟ ์ ์šฉํ•˜๊ธฐ
    • Doit! - ํŒจ์ŠคํฌํŠธ๋กœ ์‚ฌ์šฉ์ž ์ธ์ฆํ•˜๊ธฐ
    • Doit! - ์ฑ„ํŒ…์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ
    • Doit! - JSON-RPC ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ
  • Python
    • Warning-Could not import the lzma module
    • Pandas
      • Pandas ์ž๋ฃŒ๊ตฌ์กฐ
      • Pandas ๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ
      • DataFrame Data ์‚ดํŽด๋ณด๊ธฐ
      • ์‹œ๊ฐํ™” ๋„๊ตฌ - Matplotlib
  • ML
    • ์ถ”์ฒœ ์‹œ์Šคํ…œ
      • Collaborative Filtering
      • Matrix Factorization
  • Django
    • Basic
      • ํ™˜๊ฒฝ์„ค์ •
      • About Django
      • Start Django Project
      • Secret Key ๊ด€๋ฆฌํ•˜๊ธฐ
      • Settings ๋ถ„๋ฆฌํ•˜๊ธฐ
      • Django App
      • Django View & URL (1)
      • Django Model
        • MySQL ์—ฐ๋™
      • Django Admin
      • Django View & URL (2)
      • Django Template
      • Django Template & View & URL
      • Django Static
      • Django form
    • Advanced
      • Django Generic View
      • Django Automated Testing
      • Django Extenstion Template
      • Django Model Package
      • Django OpenSSL setting
    • REST framework
      • Rest API
      • Serializers
      • ViewSet
    • Error
      • ํ™˜๊ฒฝ์„ค์ • zlib ์˜ค๋ฅ˜๋ฐœ์ƒ
      • ModuleNotFoundError
    • ํŒจํ‚ค์ง€
      • django-debug-toolbar
    • Vue.js ์—ฐ๋™ํ•˜๊ธฐ
  • Ruby
    • variable & input/output
    • ์กฐ๊ฑด๋ฌธ
    • ๋ฐ˜๋ณต๋ฌธ
    • Array & Hash
    • Method
    • Proc&Lamda
    • Class
  • Ruby on Rails
    • Scaffolding
    • Controller
    • Model
    • Model-M:N relation
    • Model Validation
    • ๋ฉ‹์‚ฌ 10์ฃผ์ฐจ ์ˆ˜์—…(Tip)
  • HTML/CSS
    • Udacity - Intro to HTML/CSS
    • Udacity - Responsive Web Design
    • Udacity - Responsive Images
    • HTML Basic
    • CSS Basic
    • HTML5 Sementic Tag
    • HTML ํ…์ŠคํŠธ ๊ด€๋ จ ํƒœ๊ทธ๋“ค
    • HTML5 ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด
    • HTML ํผ ๊ด€๋ จ ํƒœ๊ทธ๋“ค
    • ํ…์ŠคํŠธ ๊ด€๋ จ ์Šคํƒ€์ผ
    • ์ƒ‰์ƒ๊ณผ ๋ฐฐ๊ฒฝ์„ ์œ„ํ•œ ์Šคํƒ€์ผ
    • ๋ ˆ์ด์•„์›ƒ์„ ์œ„ํ•œ ์Šคํƒ€์ผ
    • CSS ํฌ์ง€์…”๋‹
    • ๋‹ค์žฌ๋‹ค๋Šฅํ•œ CSS3 ์„ ํƒ์ž
    • CSS์™€ ์• ๋‹ˆ๋ฉ”์ด์…˜
    • ๋ฐ˜์‘ํ˜• ์›น์ด๋ž€?
  • OS(์šด์˜์ฒด์ œ)
    • Linux
      • Daemon
      • Cron
      • ํ”„๋กœ์„ธ์Šค ๊ด€๋ จ ๋ช…๋ น์–ด
      • ํ…์ŠคํŠธ ํŒŒ์ผ ๋ช…๋ น์–ด
  • Network
    • ๋„คํŠธ์›Œํฌ ๊ธฐ๋ณธ ๊ฐœ๋…
    • ๋„คํŠธ์›Œํฌ ๊ธฐ๋ณธ ๊ทœ์น™
    • ๋ฌผ๋ฆฌ ๊ณ„์ธต
    • ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต
    • ๋„คํŠธ์›Œํฌ ๊ณ„์ธต
    • ์ „์†ก ๊ณ„์ธต
    • ์‘์šฉ ๊ณ„์ธต
    • ๋„คํŠธ์›Œํฌ ์ „์ฒด ํ๋ฆ„
    • ๋ฌด์„  ๋žœ
  • IT ๊ธฐํƒ€์ง€์‹
    • NAS๋ž€
Powered by GitBook
On this page
  • ์ข…๋ฅ˜
  • Aggregate-Oriented ๋ชจ๋ธ
  • Graph ๋ชจ๋ธ
  • RDMBS vs NoSQL
  • MongoDB vs Cassandra vs HBase
  • ์ฐธ์กฐ ํŽ˜์ด์ง€

Was this helpful?

  1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

NoSQL

PreviousPostgreSQLNextInstall Cassandra on mac

Last updated 3 years ago

Was this helpful?

Not Only SQL ์˜ ๋‹จ์–ด ๋œป์œผ๋กœ SQL๋งŒ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ์ง€์นญํ•˜๋Š” ๋ง์ด๋‹ค.

  • ๋Œ€๋ถ€๋ถ„ cluster์—์„œ ์‹คํ–‰ํ•  ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ๊ธฐ ๋•Œ๋ฌธ์— ๊ด€๊ณ„ํ˜• ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ cluster์—์„œ ์‹คํ–‰๋˜๋„๋ก ๋งž์ถฐ์ง„ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. NoSQL ๋ชจ๋ธ ์ค‘ ํ•˜๋‚˜์ธ ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์™€ ๋น„์Šทํ•œ ๋ถ„์‚ฐ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•œ๋‹ค.

  • ์˜คํ”ˆ์†Œ์Šค์ด๋‹ค.

  • ์Šคํ‚ค๋งˆ ์—†์ด ๋™์ž‘ํ•˜๋ฉฐ, ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ •์˜๋ฅผ ๋ณ€๊ฒฝํ•  ํ•„์š” ์—†์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ ˆ์ฝ”๋“œ์— ์ž์œ ๋กญ๊ฒŒ ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

cluster : ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ผ๋ฐ˜ ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ๋„คํŠธ์›Œํฌ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ํ•˜๋‚˜์˜ PC์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๊ฒŒ ํ•˜๋Š” ๊ธฐ์ˆ ์„ ๋งํ•œ๋‹ค.

์ถœ์ฒ˜: https://jw3461.tistory.com/6 [์ฐ์ฐ!! ]

๊ธฐ์กด์—๋Š” ํŠธ๋žœ์žญ์…˜์„ ํ†ตํ•œ ์•ˆ์ •์ ์ธ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ด์Šˆ์˜€๊ธฐ๋•Œ๋ฌธ์— RDBMS๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ์™€ ํŠธ๋ž˜ํ”ฝ ์–‘์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋น„์šฉ์ด ์ฆ๊ฐ€ํ–ˆ๋‹ค.

NoSQL์€ ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ์•ฝ๊ฐ„ ํฌ๊ธฐํ•œ ๋Œ€์‹  ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ปดํ“จํ„ฐ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ๊ฒƒ(scale-out : ์ˆ˜ํ‰์  ํ™•์žฅ)์„ ๋ชฉํ‘œ๋กœ ๋“ฑ์žฅํ–ˆ๋‹ค.

์ข…๋ฅ˜

  • Key - Value

  • Document

  • Column-Family

  • Graph

๊ทธ๋ž˜ํ”„ ๋ชจ๋ธ์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ชจ๋ธ์€ ์ง‘ํ•ฉ ์ง€ํ–ฅ(Aggregate-Oriented) ๋ชจ๋ธ์ด๋‹ค.

Aggregate-Oriented ๋ชจ๋ธ

์ง‘ํ•ฉ์ด๋ž€ ์—ฐ์‚ฐ์˜ ํ•œ ๋‹จ์œ„๋กœ ์ทจ๊ธ‰๋˜๋Š” ์—ฐ๊ด€๋œ ๊ฐ์ฒด๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค. Aggregate-Oriented Database๋Š” ์—ฌ๋Ÿฌ ๋Œ€์œผ ใ…ฃํด๋Ÿฌ์Šคํ„ฐ๋กœ ์ด๋ฃจ์–ด์ง„ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์ ํ•ฉํ•˜๋‹ค. ์ฆ‰, ์ˆ˜ํ‰์  ํ™•์žฅ์ด ์šฉ์ดํ•˜๋‹ค. ์ด๋Š” RDBMS์™€๋Š” ๋‹ฌ๋ฆฌ ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ๋“ค์ด ํ•จ๊ป˜ ์›€์ง์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋˜ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์˜ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์ง‘ํ•ฉ ๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜ ์ผ์น˜ํ•˜๋ฏ€๋กœ, RDBMS์ฒ˜๋Ÿผ ๊ฐ์ฒด-๊ด€๊ณ„ ๋งคํ•‘ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค. ๋ฐ์ดํ„ฐ์˜ ๊ฒ€์ƒ‰๋„ key๋‚˜ id๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

Aggregate-Oriented ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์กฐ์ธ ์—ฐ์‚ฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด MongoDB๋‚˜ Cassandra ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” MapReduce๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•จ์œผ๋กœ์จ ์กฐ์ธ๊ณผ ์œ ์‚ฌํ•œ ์—ฐ์‚ฐ์„ ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค๊ณ„ํ–ˆ๋‹ค.

Key-Value

Key-Value ์ €์žฅ์†Œ๋Š” ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ํ˜•ํƒœ์˜ NoSQL์œผ๋กœ, ์ˆ˜ํ‰์  ํ™•์žฅ(scale-out)์ด ์šฉ์ดํ•˜๋‹ค. Key-Value ์Œ์œผ๋กœ ์ €์žฅ๋˜๋ฉฐ, key๋Š” value์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•œ๋‹ค. value๋Š” ์–ด๋– ํ•œ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ผ๋„ ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค.

์•„์ฃผ ๊ฐ„๋‹จํ•œ API๋งŒ์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์งˆ์˜์˜ ์†๋„๊ฐ€ ๊ต‰์žฅํžˆ ๋น ๋ฅธ ํŽธ์ด๋‹ค.

์ข…๋ฅ˜

  • Memcached

  • Riak

  • Redis

  • Amazone Dynamo DB

  • LevelDB

RDBMS์™€ ๋ฐ์ดํ„ฐ ํ˜•ํƒœ ๋น„๊ต

  • RDBMS

  • Key-Value ๋ชจ๋ธ

Document

Key-Value ๋ชจ๋ธ์—์„œ ํ•œ์ธต ์ง„ํ™”ํ•œ ๋ชจ๋ธ๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” Key์™€ Document์˜ ํ˜•ํƒœ๋กœ ์ €์žฅ๋œ๋‹ค. (Document๋Š” Value์˜ ๊ณ„์ธต์  ํ˜•ํƒœ) ๊ฐ์ฒด ์ง€ํ–ฅ์˜ ๊ฐ์ฒด์™€ ์œ ์‚ฌํ•˜๋ฉฐ, ์ด๋“ค์€ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ์ทจ๊ธ‰๋˜์–ด ์ €์žฅ๋œ๋‹ค. ์ฆ‰, ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์— ๋‚˜๋ˆ  ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ง„๋‹ค.

์ฃผ์š”ํ•œ ํŠน์ง•

  1. ๊ฐ์ฒด-๊ด€๊ณ„ ๋งคํ•‘์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค. ๊ฐ์ฒด๋ฅผ Document ํ˜•ํƒœ๋กœ ๋ฐ”๋กœ ์ €์žฅ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

  2. ๊ฒ€์ƒ‰์— ์ตœ์ ํ™” ๋˜์–ด์žˆ๋‹ค.

  3. ์‚ฌ์šฉ์ด ๋ฒˆ๊ฑฐ๋Ÿฝ๊ณ  SQL๊ณผ ์ฟผ๋ฆฌ๊ฐ€ ๋‹ค๋ฅด๋‹ค.

  4. JSON์ด๋‚˜ xml ํ˜•ํƒœ๋กœ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

์ข…๋ฅ˜

  • MongoDB

  • CouchDB

  • MarkLogic

Column-Family

์•ž์„  ๋‘๊ฐœ์˜ ๋ชจ๋ธ์€ ๊ฐ’(Value or Document)์„ ์ด์šฉํ•ด ํ•„๋“œ๋ฅผ ๊ฒฐ์ •ํ–ˆ๋‹ค๋ฉด, Column ๋ชจ๋ธ์€ ํ‚ค์—์„œ ํ•„๋“œ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

ํ‚ค๋Š” ROW(ํ‚ค ๊ฐ’)์™€ Column-Family, Column-Name์„ ๊ฐ€์ง„๋‹ค. ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ๋“ค์€ ๊ฐ™์€ column-family์•ˆ์— ์†ํ•ด์žˆ์œผ๋ฉฐ, ๊ฐ์ž์˜ column-name์„ ๊ฐ€์ง„๋‹ค.

์ด๋Ÿฌํ•œ ํŠน์ง•๋•Œ๋ฌธ์— column-family ๋ชจ๋ธ์€ ํด๋Ÿฌ์Šคํ„ฐ๋ง์ด ์‰ฝ๊ฒŒ ์ด๋ค„์ง€๋ฉฐ, timestamp๊ฐ€ ์กด์žฌํ•ด ๊ฐ’์ด ์ˆ˜์ •๋œ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ๊ฐ’๋“ค์€ ์ผ๋ จ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋กœ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋– ํ•œ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ผ๋„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„์˜ ๋‘ ๋ชจ๋ธ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ Bolb๋‹จ์œ„์˜ ์ฟผ๋ฆฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ, Schema-less์ด๊ธด ํ•˜์ง€๋งŒ ์ƒˆ๋กœ์šด ํ•„๋“œ๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ๋“œ๋Š” ๋น„์šฉ์ด ํฌ๊ธฐ๋•Œ๋ฌธ์— ์‚ฌ์‹ค์ƒ ๊ฒฐ์ •๋œ ์Šคํ‚ค๋งˆ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ต๋‹ค. ๋˜ํ•œ Keyspace๋‚˜ table์„ ๊ณผ๋„ํ•˜๊ฒŒ ์ƒ์„ฑํ•  ๊ฒฝ์šฐ memory overflow๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

์ข…๋ฅ˜

  • Cassandra

  • HBase

  • Hypertable

RDBMS์™€ ๋น„๊ต

  • RDBMS

  • ์นผ๋Ÿผ ํŒจ๋ฐ€๋ฆฌ(Column Family) ๊ธฐ๋ณธ ๋ชจ๋ธ

์œ ์—ฐ์„ฑ์„ ์ ๊ทน ํ™œ์šฉํ•ด ์œ ์‚ฌํ•œ ์ปฌ๋Ÿผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์ปฌ๋Ÿผ๋ช…์ด columns ์†์„ฑ์— ๋ฐ์ดํ„ฐ๋กœ ์ €์žฅ๋˜๊ณ , value์—๋Š” ํ•ด๋‹น ์ปฌ๋Ÿผ์˜ ๊ฐ’๋งŒ ์กด์žฌํ•œ๋‹ค.

๊ด€๊ณ„ํ˜• ๋ชจ๋ธ์—์„œ๋Š” ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ์ด ์ถ”๊ฐ€๋ ๋•Œ๋งˆ๋‹ค ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผํ•˜๊ณ , ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ์—๋Š” ๋ฐ์ดํ„ฐ๋„ ์ƒˆ๋กœ ์ ์žฌํ•ด์•ผํ•œ๋‹ค. Column-Family ๋ชจ๋ธ์€ ์‹ ๊ทœ ๋ฐ์ดํ„ฐ๋ฅผ ์œ„์˜ ์ด๋ฏธ์ง€ ์ฒ˜๋Ÿผ ์ž…๋ ฅํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด๋œ๋‹ค. ์ฆ‰, ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ, ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•  ํ•„์š”๋„ ์—†๋‹ค.

Column Family DB๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ์— ๋” ์œ ์—ฐํ•˜๋‹ค. ํ•˜์ง€๋งŒ ๋‹จ์ ์€ ํƒ€ ํ…Œ์ด๋ธ”๊ณผ์˜ ์กฐ์ธ์ด ์•ˆ๋œ๋‹ค๋Š” ์ ์ด๋‹ค. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ตœ๋Œ€ ์žฅ์ ์ธ SQL ๋ฌธ์œผ๋กœ ํƒ€ ํ…Œ์ด๋ธ”๊ณผ ์กฐ์ธํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ธ ๋ฐ˜๋ฉด NoSQL DB๋Š” ์ด ์ฒ˜๋ฆฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด ๋‹จ์ ์ด๋‹ค. ๊ทธ๋ž˜์„œ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ์กฐ์ธ์ด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋Š” ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์— ์ค‘๋ณต์œผ๋กœ ๊ด€๋ฆฌํ•ด ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ํ–ฅ์ƒ ์‹œํ‚จ๋‹ค. ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋“ค์ด ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด๊ฒƒ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ๊ฐ€์žฅ ์–ด๋ ค์šด ์ ์ด๊ณ  ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํŠน์ง•์ด๋‹ค.

Graph ๋ชจ๋ธ

๊ทธ๋ž˜ํ”„ ๋ชจ๋ธ์€ ์ง‘ํ•ฉ ์ง€ํ–ฅ ๋ชจ๋ธ๋ณด๋‹ค๋Š” ๊ด€๊ณ„ํ˜• ๋ชจ๋ธ์— ๊ฐ€๊น๋‹ค. ์‹ค์ œ ์„ธ๊ณ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๊ณ„์™€ ํ•จ๊ป˜ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋””์ž์ธ๋œ ๋ชจ๋ธ๋กœ์จ, ๋ฐ์ดํ„ฐ๋Š” ์—ฐ์†์ ์ธ ๋…ธ๋“œ, ๊ด€๊ณ„, ํŠน์„ฑ์˜ ํ˜•ํƒœ๋กœ ์ €์žฅ๋œ๋‹ค.

๋ฐ์ดํ„ฐ ๊ฐ„์˜ ๊ด€๊ณ„๊ฐ€ ํƒ์ƒ‰์˜ ํ‚ค์ผ ๊ฒฝ์šฐ์— ์ ํ•ฉํ•˜๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŽ˜์ด์Šค๋ถ์ด๋‚˜ ํŠธ์œ„ํ„ฐ ๊ฐ™์€ ์†Œ์…œ๋„คํŠธ์›Œํฌ์—์„œ ์ ํ•ฉํ•˜๊ณ , ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ฒœํ•ด์ฃผ๋Š” ์ถ”์ฒœ ์—”์ง„์ด๋‚˜ ํŒจํ„ด ์ธ์‹ ๋“ฑ์˜ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋กœ๋„ ์ ํ•ฉํ•˜๋‹ค. ๋˜ํ•œ Aggregate-Oriendted ๋ชจ๋ธ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ๊ฐ์ฒด์˜ ACID ํŠธ๋žœ์žญ์…˜์„ ์ง€์›ํ•œ๋‹ค.

๋‹ค๋งŒ, ๊ทธ๋ž˜ํ”„ ๋ชจ๋ธ์€ ํด๋Ÿฌ์Šคํ„ฐ๋ง์— ์ ํ•ฉํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์งˆ์˜์–ด๋„ ํŠนํ™”๋˜์–ด ์žˆ์–ด ์–ด๋ ต๋‹ค.

RDMBS vs NoSQL

Relational Database
NoSQL

Scale-up - ์„œ๋ฒ„ ํ•œ๋Œ€ ์ค‘์‹ฌ์œผ๋กœ ํ™•์žฅ

Scale-out - ์—ฌ๋Ÿฌ๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ™•์žฅ

๋ฌด๊ฒฐ์„ฑ

์œ ์—ฐ์„ฑ

๋ฐ์ดํ„ฐ ์ค‘๋ณต ์ œ๊ฑฐ

๋ฐ์ดํ„ฐ ์ค‘๋ณต ํ—ˆ์šฉ

ํŠธ๋žœ์žญ์…˜

๋น ๋ฅธ ์“ฐ๊ธฐ, ์ฝ๊ธฐ

MongoDB vs Cassandra vs HBase

Cassandra
MongoDB
HBase

Architecture

Wide Column Store

Document Store

Wide Column Store

Distributed System Consistency

Eventual and Immediate Consistency

Eventual and Immediate Consistency

Immediate Consistency

Owner and developer

Apache Software Foundation

MongoDB, Inc.

Apache Software Foundation

Replication

Masterless Ring

Master-Slave Replication

Master-Slave Replication

Base Code

Java

C++

Java

Popular Use Cases

Sensor Data, Messaging Systems, E-commerce Websites, Always-On Applications, Fraud Detection for Banks

Operational Intelligence, Product Data Management, Content Management Systems, IoT, Real-Time Analytics

Online Log Analytics, Hadoop, Write Heavy Applications, MapReduce

์ฐธ์กฐ ํŽ˜์ด์ง€

img
img

Neo4j
Blazegraph
OrientDB
https://namu.wiki/w/NoSQL
https://cionman.tistory.com/44
https://12bme.tistory.com/323
https://rubygarage.org/blog/neo4j-database-guide-with-use-cases
Types of Databases
img
img
img
Screenshot of query results in the Neo4j graph database.