오브젝트 및 NFT 생성 - Encode Club Sui 시리즈 #3

총 6개의 교육 동영상 중 세 번째 동영상에서는 Sui 네트워크에서 NFT를 생성하는 방법을 알아보세요.

오브젝트 및 NFT 생성 - Encode Club Sui 시리즈 #3

인코드 클럽의 Sui 시리즈의 세 번째 동영상에서는 Sui 에서 객체의 특성을 살펴보고 대체 불가능한 토큰(NFT)을 생성하는 데 필요한 단계를 안내합니다.

Sui 재단은 Encode Club과 제휴하여 6개의 개발자 중심 동영상 시리즈를 제공합니다. 이 시리즈는 Sui 의 기본 사항부터 Sui 의 스마트 컨트랙트 구축 및 객체 작업에 대한 튜토리얼까지 다양합니다.

학습 하이라이트

Sui의 데이터 모델은 네트워크에서 객체를 생성하는 것을 코딩의 기본으로 삼습니다. 여기에서는 네 가지 객체 모델, 고유 식별자의 구성 요소, NFT를 생성하는 방법을 보여주는 코드 스니펫을 제공합니다.

개체 검토

이전 세션에서 살펴본 내용을 간단히 요약하면 Sui 의 객체는 가장 기본적인 저장소 단위입니다. 객체는 네 가지 범주 중 하나에 속합니다:

주소 소유 개체

struct ObjectA has key { id: UID }

public entry fun create_object_owned_by_an_address(ctx: &mut TxContext) {
	transfer::transfer({
		ObjectA { id: object::new(ctx) }
	}, tx_context::sender(ctx))
}

개체 소유 개체

struct ObjectB has key, store { id: UID }

public entry fun create_object_owned_by_an_object(parent: &mut ObjectA, ctx: &mut TxContext) {
	let child = ObjectB { id: object::new(ctx) };
	ofield::add(&mut parent.id, b"child", child);
}

공유 개체

struct ObjectC has key { id: UID }

public entry fun create_shared_object(ctx: &mut TxContext) {
	transfer::share_object(ObjectC { id: object::new(ctx) })
}

불변 객체

struct ObjectD has key { id: UID }

public entry fun create_immutable_object(ctx: &mut TxContext) {
	transfer::freeze_object(ObjectD { id: object::new(ctx) })
}

오브젝트 및 NFT

기술적으로 Sui 에서 객체와 NFT 사이에는 차이가 없습니다. 아래 코드 스니펫을 사용하여 Sui 표준 라이브러리의 option.move에서 고유 식별자(UID)에 대한 정의를 살펴봅시다.

/// Globally unique IDs that define an object's ID in storage. Any Sui object, that is a struct
/// with the `key` ability, must have `id: UID` as its first field.
/// These are globally unique in the sense that no two values of type `UID` are ever equal, in
/// other words for any two values `id1: UID` and `id2: UID`, `id1` != `id2`.
/// This is a privileged type that can only be derived from a `TxContext`.
/// `UID` doesn't have the `drop` ability, so deleting a `UID` requires a call to `delete`.
struct UID has store {
	id: ID,
}


Sui 새 개체가 생성될 때마다 전역적으로 고유한 ID가 생성되므로, 나머지 필드가 동일하더라도 두 개체가 진정으로 대체 가능한 개체는 없습니다.

에서 NFT 생성 Sui

Sui의 객체 중심 접근 방식 덕분에 아래 코드 스니펫에서 볼 수 있듯이 NFT를 생성하는 것은 비교적 간단합니다.

struct NFT has key, store {
	id: UID,
	name: String,
	description: String,
	url: Url,
	// ... Additional attributes for various use cases (i.e. game, social profile, etc.)
}


하지만 위의 예시는 초보적인 예시입니다. SuiNFT의 고유한 프로그래밍 모델은 사실상 무한한 사용 사례를 가능하게 합니다. NFT 표준에 대한 아이디어를 제공하거나 다음 단계로 발전시킬 수 있는 방법에 관심이 있으신 분은 공식 개발자 포럼( Sui )을 방문하시기 바랍니다!

전체 시리즈 보기

  1. Sui?
  2. 스마트 계약
  3. 오브젝트 및 NFT 생성
  4. 동적 필드 및 컬렉션
  5. RPG 빌드 기본 사항
  6. 블록체인에 게임 배포