"Key-value" 자료구조는 데이터를 저장하고 관리하는데 사용되는 간단하면서도 유용한 방법 중 하나다.
각각의 데이터 항목은 고유한 식별자인 "키(Key)"와 그에 대응하는 "값(Value)"으로 구성된다. 키는 일반적으로 문자열이나 숫자 등으로 표현되며, 값은 키와 연관된 데이터 자체를 나타낸다.

Key-Value 데이터베이스는 Key와 Value로 구성되어 있고, key를 사용하여 DB에 값을 저장한다.
그러므로 알아보기 쉽고, 접근시간이 빠르다.
→ 배열은 인덱스 주소값으로 찾기 때문에(직접참조) Full Range Scan보다 빠르다.
Key-Value 구조는 요소들을 key로 한번에 접근이 가능한데, 이것이 사실상 배열이기 때문에 가능한 일이다.
key-value는 딕셔너리(Dictionary), 해시(Hash) 등으로 알려져 있는 자료 구조인 연관 배열의 저장, 검색 관리를 위해 설계되었다.
key와 value가 매칭되는 것을 매핑(mapping)이라고 한다.
<aside> 💡 예시
JSON과 XML은 key_value의 구조로 구성된 데이터이다.
{"key1" : "aaa", "key2" : "bbb"}
<key1>aaa</key1>
<key2>aaa</key2>
</aside>
dict, JavaScript의 객체({}), Java의 HashMap 등이 있다.배열 크기의 문제
key-value 구조는 사실상 배열로 되어있기 때문에 메모리 문제가 발생한다.
key가 계속 추가되어 배열 크기를 초과할 경우 재생성을 자주 해주어야만 하므로 성능이 저하된다.
→ NullPointerException 문제 때문.
사용되지 않는 배열 공간은 그대로 낭비된다.