PRE. 공공데이터의 힘
바야흐로 학생때 프로젝트를 진행할때 무언가 공신력 있는 자료를 뽑아내려면 공공데이터를 활용하는 경우가 많았습니다.
데이터 아낌없이 퍼주는 공공데이터 포탈은 그야말로 데이터의 천국이었는데요.
공공솔루션 주제를 보고 오랜만에 들어가봤습니다.
흥미로운 건 공공데이터를 활용해서 3118개의 앱, 웹이 개발되었다는 것입니다.
공공데이터를 쓰면서 공공솔루션을 더 잘 개발하기 위해선 어떻게 해야할까요?
Main1. 공공솔루션 관련 네이버 클라우드 기술이 있다?
Main2. 공공클라우드, 그거 최신기술까지 다 들어있는거 맞아?
Main3. 잠깐 잠깐, Redis?
여기서 Redis에 대해 조금 자세히 한번 알아보겠습니다.
IT 업계 계신분들은 Redis가 in-memory 방식으로 데이터를 메모리에 저장하기에 엄청나게 빠르다고 알고 있을 겁니다.
기본적으로 Key-Value store로 해시테이블 처럼 key를 통해 Value에 접근하는 방식이죠.
레디스는 다양한 인 메모리 구조 집합을 제공하기에 다양한 사용자 정의 애플리케이션을 손쉽게 정의할수 있습니다.
주요 레디스 사용 사례는 캐싱, 세션 관리, pub/sub 및 순위표를 들 수 있습니다.
특히 장점으로 5가지 자료구조를 지원, String, Set, Sorted, Hash, List 등이 있어 더 빠르고 간단하게 데이터를 정렬할 수 있습니다.
또 기본-복제 아키텍쳐, 메모리를 활용하면서도 스냅샷으로 기간저장을 제공, 싱글 스레드 아키텍쳐등을 제공합니다.
긴말 필요없이 사이트를 방문해보았습니다.
1. Search and Query
- in-memory, 즉 메모리 계층에서 데이터를 주고받는 방식으로 데이터를 캐싱하여 엄청나게 빠르게 찾고(Search) 질의(Query)할 수 있습니다.
- 위에 설명한 다양한 자료구조로 데이터 저장을 넘어 다양한 캐싱 전략을 구상할 수 있습니다.
- Key-value store의 Key에 유효기간을 설정함으로써 자동으로 만료되게 할 수 있습니다.
- Pub/Sub : publish, subscribe 즉 특정 채널을 통해 메시지를 주고 받으며 실시간 다대다 통신을 가능하게 합니다.
2. JSON
- JSON은 데이터를 표현하는 형식으로 Key-Value 쌍으로 이루어져 사람과 컴퓨터 모두 쉽게 이해할 수 있도록 합니다.
- Redis에서도 빠른 검색과 질의를 위해 JSON을 사용한다고 대문짝만하게 기재를 해두었습니다.
- 확실히 JSON은 현재 가장 널리 사용되는 데이터 교환 형식이며, 웹 개발을 비롯한 다양한 분야에서 대세로 자리 잡았습니다
3. Active - Active
- Active-Active라는 용어는 네트워크에서 많이 쓴다고 생각했는데 Redis는 Key feature중 하나로 Active-Active를 들고 있었습니다. 모든 노드가 공통 애플리케이션에 참여하여 각 지역이 격리되어 실행될 수 있는 동안 로컬의 짧은 대기 시간을 보장할 수 있도록 공통 복제 데이터베이스에 액세스할 수 있는 별도의 처리 노드 네트워크라고 합니다.
- Redis는 CRDB(conflict-free replicated data types)을 강조하는데 물리적으로 다른 데이터 센터에 Redis Cluster를 두고 마치 CDN(Content Delivery Network)의 이점과 High Availability(고가용성)의 이점을 강조하는 것으로 보여졌습니다.
4. Auto-Tiering
- 자동 계층화라는 용어로 DRAM과 SSD를 사용해 DRAM의 용량 이상으로 확장 할 수 있도록 한다고 합니다.
- DRAM : 더 자주 액세스 되는 데이터를 Hot values로 설정합니다.
- SSD : 덜 액세스 되는 데이터를 Warm Values로 설정합니다.
- Speedb : 스토리지 엔진으로 Warm, hot data를 분산 저장하고 필요에 따라 이동시킵니다.
- LRU/LFU : LRU(Least Recently Used) 또는 LFU(Least Frequently Used) 알고리즘을 사용하여 액세스 빈도가 낮은 데이터를 DRAM에서 SSD로 이동시킵니다.
5. Vector-Search
- Vector Search (벡터검색)은 텍스트-이미지등을 벡터로 변환해 이것을 벡터 데이터베이스에 저장해 유사한 벡터값을 가진 결과를 찾는 검색방식입니다.
- AI와 Machine Learning이 대세로 자리잡으면서 이런 상품들을 판매전략으로 내세우는 것 같습니다.
6. Data Integration
- Redis는 Enterprise라인을 만들면서 기존 cache-aside 방식을 개선시키려고 합니다.
- 기존 Cache-aside 방식은 애플리케이션이 캐시와 데이터베이스를 모두 관리해야 했습니다. 이는 다음과 같은 문제점을 야기했습니다.
- 캐시에 데이터가 없으면 애플리케이션은 데이터베이스에 직접 접근해야 하므로 성능이 저하됩니다.
- 데이터베이스의 데이터가 변경되면 캐시의 데이터는 오래된 데이터가 됩니다. 애플리케이션은 오래된 데이터를 사용하게 되어 데이터 정합성 문제가 발생할 수 있습니다.
- 애플리케이션은 캐시 무효화, 데이터 동기화 등을 직접 처리해야 하므로 관리가 복잡합니다.
- 이런 문제점을 캐시와 데이터를 항상 동기화하는 방식으로 해결하려는 모습을 보여주려 합니다.
Conclusion. 네이버 클라우드는 합니다.
“ 본 포스팅은 네이버클라우드에서 소정의 수수료를 제공받아 작성된 글입니다. “
'IT Note > Data&AI' 카테고리의 다른 글
Kafka의 필요성: 분산 데이터 환경의 필수품 (0) | 2024.12.15 |
---|---|
Query Optimization (feat. watsonx.data) (0) | 2024.11.28 |
제 1회 2024년 당근 테크 밋업에 갔다온 후기 (0) | 2024.10.20 |
호다닥 톺아보는 데이터저장소 친구들(feat. DB,DW,DL,LH) (1) | 2024.10.08 |
생성형 AI 개발 정상화해줬잖아 개발까지 다 해줬잖아 (Feat 클로바 스튜디오) (0) | 2024.09.08 |