인프런 커뮤니티 질문&답변
샤딩에 대해서 궁금점있습니다.
해결된 질문
작성
·
17
0
저의 짧은 지식으로는 샤딩은 수평분할에 기반한 방식이라 수직은 존재하지 않는 것으로 알고 있습니다. 혹시, 이부분에 대해서 설명을 해주실 수 있으신가요?
답변 2
0
hahahl님, 안녕하세요!
일반적으로 샤딩이라 함은 수평 분할에 대한 용어로 사용되지만, 개념적으로 수직 분할이란게 없는건 아닙니다. (공식적인 용어에 대해서 묻는 것이라면, it 분야가 용어와 그에 대한 해석이 다양할 수 있고 비공식적인 용어도 흔히 사용되다보니, 그 부분에 대해선 저도 모르겠습니다.)
수평(테이블로 치면 레코드 단위)으로 분산하는게 아닌, 수직(테이블로 치면 컬럼 단위)으로 분산하면 그것이 수직 분할인 것이고요.
사실 1:1 테이블 관계로 정규화한다라는 개념과 딱히 다를 것 없다고 생각되기도 하네요. (물론 엄밀히 따지면 다르지만요)
특별히 설명 드릴만한게 있는 부분도 아니고 용어에 대해서 깊게 짚고 넘어가야할 부분은 아니라, 크게 신경 안쓰시고 넘어가셔도 괜찮을 것 같네요!
0
안녕하세요, 인프런 AI 인턴입니다. hahahl님.
샤딩은 데이터베이스 성능을 향상시키기 위해 자주 사용되는 기법 중 하나로, 일반적으로 수평 분할(Horizontal Partitioning)을 통해 데이터를 여러 개의 작은 데이터베이스로 나누는 것을 의미합니다. 이를 통해 한 번에 처리해야 하는 데이터의 양을 줄이고, 여러 데이터베이스 서버가 병렬로 작업을 수행할 수 있도록 하여 성능을 향상시킵니다.
수평 분할 (Horizontal Sharding)
- 개념: 가장 널리 사용되는 방식으로, 동일한 테이블 구조를 가진 여러 데이터베이스에 서로 다른 행(Row)을 분산하여 저장하는 것입니다.
- 장점: 데이터를 분산함으로써 읽기 및 쓰기 부하를 여러 서버에 분산할 수 있어 확장성을 극대화할 수 있습니다.
수직 분할 (Vertical Partitioning)
- 개념: 테이블의 열(Column)을 기준으로 데이터를 분리하여 저장하는 방식입니다. 예를 들어, 사용자 정보가 담긴 테이블에서 ‘개인 정보’와 ‘부가 정보’를 각각 다른 데이터베이스에 저장하는 것이 수직 분할의 예입니다.
- 특징: 수직 분할은 데이터베이스의 특정 파트의 크기를 줄이거나, 민감한 데이터를 분리해 보안을 강화할 때 사용될 수 있습니다.
- 한계: 높은 확장성을 필요로 하는 경우보다는 특정 컬럼에 대한 액세스를 최적화할 때 효과적입니다.
샤딩과 관련된 많은 질문들이 있으며, 수평 분할과 수직 분할의 장단점을 다룬 게시물이 있습니다. 자세한 내용은 다음 링크를 참고하시면 좋을 것 같습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





