728x90

데이터베이스 6

데이터베이스 샤딩

데이터베이스 샤딩대규모 데이터베이스를 여러 머신에 저장하는 프로세스이다.단일 머신 또는 데이터베이스 서버는 제한된 양의 데이터만 저장하고 처리할 수 있다. 데이터베이스 샤딩은 데이터를 샤드라고 하는 더 작은 청크로 분할하고 여러 데이터베이스 서버에 저장함으로써 이러한 한계를 극복한다.모든 데이터베이스 서버의 기본 기술은 일반적으로 동일하며 함께 작동하여 대량의 데이터를 저장하고 처리한다.샤딩분할된 데이터 청크를 논리적 샤드라고 한다. 논리적 샤드를 저장하는 시스템을 물리적 샤드 또는 데이터베이스 노드라고 한다. 하나의 물리적 샤드는 여러 개의 논리적 샤드를 포함할 수 있다.샤드 키소프트웨어 개발자는 샤드 키를 사용하여 데이터 세트를 분할하는 방법을 결정한다.데이터 세트의 열은 함께 그룹화되어 샤드를 구성..

Dev 2024.08.07

24.08.01 C#, 데이터베이스 샤딩

C#델리게이트(Delegate)메서드를 참조할 수 있는 형식 안전한 개체이다.델리게이트는 메서드를 변수처럼 저장할 수 있게 해주며, 메서드에 대한 참조를 호출 시점까지 연기하여 동적으로 메서드를 호출할 수 있는 유연성을 제공한다. 이는 콜백 함수, 이벤트 처리기 및 기타 다양한 패턴에서 유용하게 사용할 수 있다.델리게이트의 주요 특징형식 안정성델리게이트는 특정 메서드 시그니처(반환 타입과 매개변수 목록)를 정의한다.델리게이트가 참조할 수 있는 메서드는 반드시 이 시그니처와 일치해야 한다.다중 캐스팅델리게이트는 여러 메서드를 호출할 수 있다.델리게이트 인스턴스에 여러 메서드를 추가하면, 델리게이트를 호출할 때 해당 메서드들이 차례로 호출된다.익명 메서드 및 람다식 지원델리게이트는 익명 메서드 또는 람다식과..

24.04.15 서버 개발기

서버 개발기 일단 구동을 시켜야 하기에 간단하게라도 만들어보고자 생각을 했다. 아이디어 아이디와 비밀번호 사이에 구분자를 추가해줘서 그것으로 구분하자. 성공적으로 서버에서 받는 것도 확인할 수 있었다. 이제 받은 데이터를 구분해줘야 한다. 구분자를 통해 split시키는 함수 중 strtok_s를 사용했다. 원래 strtok를 사용하려고 했는데, 더 안전한 것을 사용하라고 하기도 하고, strtok_s를 통해서면 id, pw만 받는 로그인에서 편할 것이라고 생각했다. ID, PW를 구분해주는 것을 완료했다. 여기서 또 다른 문제 LoginServer에서는 Login뿐만 아니라 Register도 처리 해줘야한다. 요청에 따른 다른 처리를 구현해야 한다. 기능에 따라 다른 메시지를 보내게 설계했다. 서버에서도..

게임 서버 프로그래밍 8장. 분산 서버 구조

8장. 분산 서버 구조 8.1 수직 확장과 수평 확장 확장성(scalability)이란 사용자 수가 늘어나더라도 쉽게 대응할 수 있어야 한다는 의미다. 최대로 처리할 수 있는 사용자 수가 무제한이여도 가능해야 한다는 것이 확장성 목표이다. 사용자 수가 늘어나도 서버 성능을 유지하려면 보통 다음 두 가지 중 하나를 수행한다. 스케일 업(scale-up) : 수직 확장 스케일 아웃(scale-out) : 수평 확장 수직 확장은 서버의 하드웨어를 더 좋은 것으로 교체하여 처리량을 늘리는 것을 의미한다. 수평 확장은 서버 대수를 늘려서 더 많은 처리를 하는 것이다. 수평 확장이 더 많이 사용되는 방법이지만, 소프트웨어 설계가 더 복잡하다는 대가가 따른다. 또 수평 확장은 수직 확장으로 서버보다 단위 처리 속도가..

책/운영체제 2024.04.12

게임 서버 프로그래밍 교과서 7장. 데이터베이스 기초

7장. 데이터베이스 기초 7.1 플레이어의 정보 저장 온라인 게임에서는 플레이어 정보를 클라이언트가 아닌 서버에만 저장한다. 클라이언트는 로그인한 후 플레이어 정보를 서버에서 받아 사용한다. 플레이어 정보를 서버에 저장하는 방법은 크게 두 가지가 있다. 파일 데이터베이스 단순파일 DB 비고 소프트웨어 비용 없다. 없거나 높다 오픈 소스 제품은 제한적으로 무료다 저장 및 로딩속도 빠르다 느리다 DB도 결국 파일 시스템을 사용한다. 데이터 관리, 분석 속도 느리다 빠르다 DB는 빠른 검색을 위한 인덱스 기능이 있다 데이터 백업 및 복원 기능 없다 있다. - 원자성 불가능하다 가능하다 DB의 트랜잭션 기능이다 일관성 (잘못된 상태의 데이터를 원천 봉쇄한다.) 없다 있다 DB의 제약(Constraints) 기능..

24.04.11 서버 프로그래밍

게임 서버 프로그래밍 교과서 7장. 데이터베이스 기초 7.1 플레이어의 정보 저장 온라인 게임에서는 플레이어 정보를 클라이언트가 아닌 서버에만 저장한다. 클라이언트는 로그인한 후 플레이어 정보를 서버에서 받아 사용한다. 플레이어 정보를 서버에 저장하는 방법은 크게 두 가지가 있다. 파일 데이터베이스 단순파일 DB 비고 소프트웨어 비용 없다. 없거나 높다 오픈 소스 제품은 제한적으로 무료다 저장 및 로딩속도 빠르다 느리다 DB도 결국 파일 시스템을 사용한다. 데이터 관리, 분석 속도 느리다 빠르다 DB는 빠른 검색을 위한 인덱스 기능이 있다 데이터 백업 및 복원 기능 없다 있다. - 원자성 불가능하다 가능하다 DB의 트랜잭션 기능이다 일관성 (잘못된 상태의 데이터를 원천 봉쇄한다.) 없다 있다 DB의 제약..

728x90