inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Học thiết kế hệ thống quy mô lớn thông qua việc tự tay xây dựng với Spring Boot - Bảng tin

Cơ sở dữ liệu quan hệ phân tán

샤딩에 대해서 궁금점있습니다.

Đã giải quyết

108

hahahl

19 câu hỏi đã được viết

0

저의 짧은 지식으로는 샤딩은 수평분할에 기반한 방식이라 수직은 존재하지 않는 것으로 알고 있습니다. 혹시, 이부분에 대해서 설명을 해주실 수 있으신가요?

java mysql spring-boot kafka redis

Câu trả lời 2

0

kuke

hahahl님, 안녕하세요!

 

일반적으로 샤딩이라 함은 수평 분할에 대한 용어로 사용되지만, 개념적으로 수직 분할이란게 없는건 아닙니다. (공식적인 용어에 대해서 묻는 것이라면, it 분야가 용어와 그에 대한 해석이 다양할 수 있고 비공식적인 용어도 흔히 사용되다보니, 그 부분에 대해선 저도 모르겠습니다.)

수평(테이블로 치면 레코드 단위)으로 분산하는게 아닌, 수직(테이블로 치면 컬럼 단위)으로 분산하면 그것이 수직 분할인 것이고요.

사실 1:1 테이블 관계로 정규화한다라는 개념과 딱히 다를 것 없다고 생각되기도 하네요. (물론 엄밀히 따지면 다르지만요)

특별히 설명 드릴만한게 있는 부분도 아니고 용어에 대해서 깊게 짚고 넘어가야할 부분은 아니라, 크게 신경 안쓰시고 넘어가셔도 괜찮을 것 같네요!

 

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. hahahl님.

샤딩은 데이터베이스 성능을 향상시키기 위해 자주 사용되는 기법 중 하나로, 일반적으로 수평 분할(Horizontal Partitioning)을 통해 데이터를 여러 개의 작은 데이터베이스로 나누는 것을 의미합니다. 이를 통해 한 번에 처리해야 하는 데이터의 양을 줄이고, 여러 데이터베이스 서버가 병렬로 작업을 수행할 수 있도록 하여 성능을 향상시킵니다.

수평 분할 (Horizontal Sharding)

  • 개념: 가장 널리 사용되는 방식으로, 동일한 테이블 구조를 가진 여러 데이터베이스에 서로 다른 행(Row)을 분산하여 저장하는 것입니다.
  • 장점: 데이터를 분산함으로써 읽기 및 쓰기 부하를 여러 서버에 분산할 수 있어 확장성을 극대화할 수 있습니다.

수직 분할 (Vertical Partitioning)

  • 개념: 테이블의 열(Column)을 기준으로 데이터를 분리하여 저장하는 방식입니다. 예를 들어, 사용자 정보가 담긴 테이블에서 ‘개인 정보’와 ‘부가 정보’를 각각 다른 데이터베이스에 저장하는 것이 수직 분할의 예입니다.
  • 특징: 수직 분할은 데이터베이스의 특정 파트의 크기를 줄이거나, 민감한 데이터를 분리해 보안을 강화할 때 사용될 수 있습니다.
  • 한계: 높은 확장성을 필요로 하는 경우보다는 특정 컬럼에 대한 액세스를 최적화할 때 효과적입니다.

샤딩과 관련된 많은 질문들이 있으며, 수평 분할과 수직 분할의 장단점을 다룬 게시물이 있습니다. 자세한 내용은 다음 링크를 참고하시면 좋을 것 같습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

consumer에서 에러가 발생할 경우 데이터 유실 문의

0

34

2

게시글 테스트 데이터 삽입

0

41

2

정렬, 필터, 검색 등의 조건이 붙을 경우 최적화할 수 있는 방법이 무엇이 있을까요?

0

91

2

좋아요 기능 정합성 보장 방법

0

87

2

좋아요 동시성처리 최적의 선택?

1

108

2

프론트엔드 msa 환경 api 주소 통합? 과 서버끼리 통신 방식에대해

0

82

2

안녕하세요 무한스크롤 강의듣다가 질문이 있습니다.

0

51

1

조회수 조회 로직 질문

1

59

2

비로그인 유저도 어뷰징 방지 정책

1

60

2

CommentServiceTest의 테스트 로직 질문

0

47

2

무한 스크롤 방식에서 페이지 번호 방식 쿼리의 문제점 의문

1

68

2

path 쿼리 관련 질문드립니다!

0

50

2

antigravity 에디터를 쓰신다면 종료해주세요

1

115

0

프로젝트 구조

0

79

2

article_like_count api test

0

65

2

이벤트 페이로드 객체의 생성 방식이 팩토리 메서드 패턴이 아닌 빌더 패턴인 이유가 궁금합니다!.

0

93

2

[33. 좋아요 수 구현] 에서 테스트 하는 화면 동시성 문제

0

81

2

findByPath에서 articleId로도 검색을 해야 할 것 같아요.

0

84

3

jpa ddl-auto none을 하는 이유와 join 방법

0

90

2

팩터리 메소드와 response 객체 사용 이유가 궁금합니다!

0

82

2

커서 기반 페이지네이션 과 무한 스크롤링

0

91

2

게시글 생성 로직에서 오류 발생시 redis 게시글 수 되돌리기

0

92

2

멀티 모듈이 아닌 MSA 환경에서 common

0

143

2

2Depth 강의 도중 궁금한 점 있어요!!

0

69

2