샤딩이란?
샤딩은 데이터를 조각내 분산 저장하는 데이터 처리 방법입니다. 자세히 풀어 설명하자면 샤딩은 일괄적인 관리가 어려운 거대 데이터베이스나 네트워크를 작게 나눠서 저장하고 관리하는 방법이라고 할 수 있습니다.
샤딩을 통해 분할 된 데이터 조각은 샤드라고 부릅니다. 동시에 샤드는 분산 데이터의 저장 공간을 의미합니다. 샤드 서버에는 샤드 각각에게 일을 분배하는 라우팅 기능을 가진 몽고가 존재합니다. 이와 같은 메커니즘을 가진 샤딩은 DB 사업과 네트워크 기반 플랫폼 사업 등에서 유용하게 사용되고 있습니다. 사용되는 분야에 따라서 샤딩의 종류도 데이터베이스 샤딩, 네트워크 샤딩, 연산 샤딩 등 다양하게 분류할 수 있습니다.
샤딩 장점
1. 데이터 처리 속도
샤딩의 직관적인 장점은 데이터 처리 속도를 월등하게 향상하는 것입니다. 만약 100 만큼의 데이터가 있고 100개의 노드가 있다면, 기존 블록체인 방식에서는 100개의 노드가 100 만큼의 데이터를 모두 공유하며 처리합니다. 반면 샤딩을 활용하면 데이터 100을 100개로 쪼개 노드 1개당 1 만큼의 데이터만 처리하게 합니다. 덕분에 노드에 가해지는 데이터 부하는 작아지고 데이터 처리 속도는 빨라집니다.
2. 탈중앙화 및 보안성 확보
샤딩의 또 다른 장점은 탈중앙화와 보안성 확보입니다. 샤딩을 활용하면 노드가 많아지며 여러 저장소에 데이터가 나뉘어 저장됩니다. 중앙 데이터 저장소가 없는 탈중앙화 저장 방식은 해킹 취약점을 감소시킵니다. 그리하여 바이러스 침투와 해킹으로부터 보안성을 확보할 수 있습니다.
샤딩 문제점
1. 복잡성
샤딩의 문제점은 복잡성입니다. 분명히 데이터 처리 속도를 빠르게 만들어 효율성은 있지만, 여러 곳에 데이터가 분산되는 만큼 데이터를 조합하고 찾는 과정은 복잡해집니다. 데이터 하나를 출력하기 위해서는 여러 노드가 서로 정보를 전송하고 참조하는 과정을 거쳐야 하기 때문입니다.
2. 데이터 처리 지연
샤드 간의 커뮤니케이션이 너무 자주 일어나면 오히려 데이터 처리가 지연되기도 합니다. 시스템 전체적인 안전성은 샤딩으로 강화할 수 있지만, 샤드 간 불균형이 일어나 저장한 데이터 비율이 달라진다면 재배치가 필요할 수도 있습니다. 이 과정에서 트래픽까지 높아진다면 샤딩 최적화는 더욱 어려워집니다.
자주 묻는 질문 (FAQs)
샤딩이란 무엇인가요?
샤딩이란 데이터를 작은 조각으로 나누어 저장하는 기술입니다. 샤딩으로 나누어진 데이터는 ‘샤드’라고 불리며, 각각의 샤드는 다른 샤드와 독립적으로 움직입니다. 샤딩 덕분에 데이터를 더욱 효율적으로 저장할 수 있고 데이터 처리 속도도 향상할 수 있습니다.
샤딩의 장점은 무엇인가요?
샤딩은 데이터를 나누는 저장 방식이기 때문에 데이터 처리 속도를 높일 수 있습니다. 또한 데이터를 분산해서 저장하기 때문에 데이터 보안성도 확보할 수 있습니다.
어떤 가상화폐가 샤딩을 사용하나요?
샤딩을 사용하는 대표적인 가상화폐는 총 4개입니다. 이더리움, 니어 프로토콜, 폴카닷, 질리카가 입니다. 이외에도 다양한 가상화폐가 샤딩 기술을 사용하고 있습니다.