ABOUT ME

-

Today
-
Total
-
  • NFT 블록체인 마켓 앱 만들기 🔥 BApp 설계
    Study/Blockchain 2022. 3. 16. 16:00
    반응형

     

    BApp 설계

    BApp을 설계할 때 고려해야 할 것은 다음과 같다.

    1. 서비스 설계 : 스마트컨트랙트, 프론트엔드, 서버
    2. 노드 운영유무
    3. 수수료
    4. 유저 상호작용 : 유저의 지갑(개인키) 사용 방식, 트랜잭션 생성 후 결과 확인

    일반 앱은 서버와 소통을 하는데 비앱은 블록체인 노드들과 소통하게 된다. 그렇다면 그 노드는 누가 설치해서 가지고 있는가? 직접 노드를 설치하고 운영하는 것이 쉽지 않으므로, 클레이튼에서 제공하는 노드(KAS)를 사용하면 편리해진다.

    스마트 컨트랙트에 모든 데이터를 기록하고 읽어오는 것은 무리가 있다. 유저 입장에서 수수료가 엄청나게 들 것이다. 따라서 다른 자체 서버를 추가로 운영해서 유저 대신 수수료 대납을 해주거나 데이터 캐싱을 해서 더 빠른 처리를 할 수도 있다.

     

    - 스마트컨트랙트

    스마트 컨트랙트는 업그레이드가 어렵다. 따라서 read, write 함수를 신중하게 만들어야 한다. 그리고 컨트랙트를 따로 여러 개 배포해서 연동할 수 있다. 또한, event를 외부에서 받아볼 수 있어서 코드 실행 시 event를 emit 하면 웹앱에서 그에 해당하는 값을 사용할 수 있다. 스마트 컨트랙트는 배포된 이상 누구나 호출하고 접근할 수 있다. 코드에 보안적으로 문제가 있다면 아주 큰일이다. 따라서 테스트 코드를 잘 짜야하고, 시큐리티 업체에 맡겨서 스마트 컨트랙트 코드 검증이 필요할 수 있다.

     

    - 노드 운영: 블록체인 노드 관련된 API를 얼마나 이용할 것인가, 스마트 컨트랙트 관련 API를 얼마나 이용할 것인가 고려해야 한다. 항상 블록체인 네트워크와 싱크를 맞춰야 하는 게 중요하다. 노드 운영/유지비와 KAS이용비를 따져볼 필요가 있다.

     

    - 수수료: BApp서비스는 원래 유저가 수수료를 지불하는 구조이다. 하지만 유저가 수수료를 안 내게 하고 싶다면 서비스 제공자가 대납할 것인지 고려해야 한다. 코드 상으로 수수료를 최대한 적게 낼 수 있도록 최적화하는 것도 중요하다.

     

    - 유저 상호작용: 개인키를 어떻게 사용하게 할 것인가를 고려해야 한다. 클레이튼같은 경우는 클립(Klip)을 사용해서 유저에게 개인키 사용에 있어서 편리함을 제공하고 있다. 그리고 특정액션 이후 결과값 확인은 어떻게 할것인가 고려해야하고, 트랜잭션이 성공/실패 시 어떻게 처리할 것인지 고려해야한다.

     

    NFT Market BApp 설계

    • 기능
    • klip 지갑 주소 가져오기
    • klay 잔고 조회
    • NFT 조회 : 유저 보유 NFT, 마켓 보유 NFT
    • NFT 발행
    • NFT 판매 : 마켓에 NFT 전송
    • NFT 구매
    • 상호작용 방법
    • klip 지갑주소 가져오기 : klip API
    • klay 잔고 조회 : caver-js의 caver.klay.getBalance 메서드 이용
    • NFT 조회 : caver-js로 컨트랙트 함수 호출 (tokenOfOwnerByIndex, tokenURI)
    • NFT 발행: klip API
    • 메타데이터 업로드 : KAS API
    • NFT 판매: klip API
    • NFT 구매: klip API
    • klip 지갑 연동: 브라우저에서는 QR코드, 모바일에서는 바로 카카오톡 klip 지갑 앱으로 연동

     

    BApp 개발

    일반 애플리케이션과 BApp에 있어서 개발에서 가장 큰 차이점은 아이디와 비밀번호이다.

    일반 앱은 서버에서 아이디와 비밀번호를 관리하고 유저가 이를 사용하는데, BApp은 별도로 서비스 제공자가 서버를 구축하지 않고 블록체인에서 스마트 컨트랙트와 상호작용할 수 있는 address 와 private key를 가지고 서비스를 이용하게 된다.

     

    BApp 개발 순서는 다음과 같다.

    1. 스마트컨트랙트 배포 주소 가져오기
    2. caver-js 이용해서 스마트컨트랙트 연동하기
    3. 스마트컨트랙트 실행 결과(데이터)를 웹에 표현하기

     

     NFT 블록체인 마켓 앱 만들기 with 그라운드X 시리즈 

    1. 블록체인이란?

    2. 클레이튼이란?

    3. NFT란?

    4. Smat Contract & Solidity

    5. Klaytn 개발환경 세팅

    6. BApp 설계

    7. BApp 기능 구현 

     

    반응형

    댓글