> For the complete documentation index, see [llms.txt](/llms.txt)

# GS2에 리소스 생성

GS2 의 각 마이크로서비스에 리소스를 생성한다




먼저 프로젝트와 리전, 마이크로서비스의 관계에 대한 이해를 깊게 해봅시다.

프로젝트와 마이크로서비스는 다음과 같은 데이터 구조를 가집니다.

```plantuml
Gs2Project "1" *-- "many" Region
Region "1" *-- "many" Microservice
Microservice "1" *-- "many" Namespace
Namespace "1" *-- "many" Resource
```

## 리전

프로젝트 바로 아래에는 리전이 존재합니다.

리전은 GS2 가 마이크로서비스를 제공하는 데 사용하는 데이터센터의 지역을 나타냅니다.

## 마이크로서비스

소지품 관리나 매치메이킹, 게임 내 상점 등 다양한 기능이 있습니다.
이들은 리전별로 호스팅되며, 마이크로서비스의 데이터베이스는 지역별로 분리됩니다.

리얼타임 통신에서는 플레이어와 가장 가까운 지역에서 호스팅한 머신에서 동작시키는 것이 바람직하다고 여겨지지만, GS2 가 제공하는 마이크로서비스 대부분은 그 정도로 실시간성을 요구하지 않는 기능이 대부분을 차지합니다.
따라서 GS2-Realtime 만 여러 리전에 배치하고, 그 외 마이크로서비스는 한 곳의 리전에 모아서 이용하는 방법도 생각해 볼 수 있습니다.

## 네임스페이스

각 마이크로서비스는 여러 개의 네임스페이스를 가질 수 있습니다.
네임스페이스 간은 완전히 분리되지만, 여러 개의 스페이스를 가질 수 있습니다.

GS2-Inventory 를 이용할 때 "소비형 아이템을 보유하는 네임스페이스", "게임 내 통화를 보유하는 네임스페이스", "획득한 캐릭터를 보유하는 네임스페이스"와 같이 나누어 관리할 수 있습니다.

## 리소스

각 네임스페이스는 고유한 리소스를 가집니다.
리소스에는 크게 2가지 종류가 있습니다.

- 마스터 데이터
- 사용자 데이터

### 마스터 데이터

GS2-Inventory 라면 어떤 아이템이 존재하는지. GS2-Showcase 라면 어떤 상품이 판매되고 있는지. GS2-Schedule 이라면 어떤 이벤트가 예정되어 있는지.

개발자 측이 사전에 정한 데이터를 보유하는 영역입니다.

### 사용자 데이터

게임 플레이어가 개별적으로 보유하는 데이터입니다.
GS2-Inventory 라면 아이템을 몇 개 가지고 있는지. GS2-Quest 라면 어떤 퀘스트를 클리어했는지.

게임을 운영해 나가면서 자연스럽게 늘어나는 데이터를 가리킵니다.

## 리소스 생성 방법

리소스를 생성하는 방법은 크게 나누어 2가지가 있습니다.

### 1. 관리 콘솔에서 수동으로 생성
브라우저에서 GS2 의 관리 콘솔에 로그인하여 UI 상에서 설정을 입력해 리소스를 생성합니다.
시행착오를 겪는 단계이거나 설정 항목이 적은 경우에는 간편하고 편리합니다.

### 2. GS2-Deploy 를 사용하여 자동 생성(권장)
YAML 형식의 템플릿 파일을 작성하고, GS2-Deploy 에 업로드함으로써 리소스를 자동으로 생성합니다.
이 방법에는 다음과 같은 장점이 있으므로, 본격적인 개발에서는 이 방법이 권장됩니다.

- **재현성**: 동일한 설정의 리소스(개발 환경, 운영 환경 등)를 확실하게 재현할 수 있습니다.
- **버전 관리**: 템플릿 파일을 Git 등으로 관리함으로써, 설정 변경 이력을 남길 수 있습니다.
- **일괄 관리**: 여러 서비스(Inventory, Quest, Account 등)의 리소스를 한꺼번에 정의할 수 있습니다.




- [GS2-CDK 를 사용한 설정](/ko/overview/workflow/setup_gs2_resources/cdk_setup/)
  
- [GS2-Deploy 를 사용한 설정](/ko/overview/workflow/setup_gs2_resources/automation_setup/)
  
- [관리 콘솔을 사용한 설정](/ko/overview/workflow/setup_gs2_resources/manual_setup/)
  
