Supersett
개발자의 하루
Supersett
Blockchain Dev
전체 방문자
오늘
어제
  • 분류 전체보기
    • 프론트
    • 회사생활
    • 블록체인
    • 프로젝트
      • 창업 프로젝트 (DRF + AWS)
      • Spring 프로젝트
    • [중앙대]멋쟁이 사자처럼
    • 기술서적
    • Problem Solving
      • 알고리즘
    • 일기장
      • 하루 정리
      • 삽질 일기
      • 조급할 때 눌러보기

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Near Explorer
  • 구글소셜로그인
  • 면접준비
  • 자바스크립트
  • 멋사 중앙대
  • 자바
  • 컴퓨터학원
  • 비트코인
  • Near Scan
  • 국비교육
  • 멋쟁이 사자처럼 서류
  • 블록체인 서버설계
  • DEPROMEET
  • Multichain API
  • 국비
  • 글리치해커톤
  • java
  • 초보개발자
  • Luniverse
  • 해커톤
  • 블록체인정보가공
  • 멋쟁이 사자처럼 면접
  • 멋쟁이 사자처럼
  • 디프만16기
  • 니어프로토콜
  • 프로젝트
  • 국비지원
  • 멋쟁이사자처럼 중앙대
  • 취업준비
  • 신입개발자

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Supersett

개발자의 하루

[Hackathon] Web3 프로젝트 구조 설계에 관한 깊은 고찰🤔
블록체인

[Hackathon] Web3 프로젝트 구조 설계에 관한 깊은 고찰🤔

2023. 5. 9. 07:16
블록체인 기술을 통해 서비스가 주고자 하는 것이 무엇인가?
기존 WEB2 서비스와의 차별점이 무엇인가?
굳이 블록체인 이여야 하는가?

🎯신경을 많이 쓴 부분

기존 Web2 서비스를 설계할 때, 모든 정보를 DB에 저장했었고 어디에 뭘 나눠야 한다는 고민을 해본 적은 없었습니다.

블록체인이라는 분산DB로 넘어오게 되었고, 블록체인이 갖는 특유의 성질로 인해 특히 주의해서 설계해야 함을 인지했습니다.

*CREATE, UPDATE, DELETE 시 Gas Fee 발생

*체인별 TPS 상이(Web2와 비교했을때 처리 속도가 느림)

설계 없이 Web2 하듯이 모든 정보를 다 블록체인에 때려박게 된다면, 음.. 매우 비효율적일 겁니다.

 

어디까지 블록체인에 그리고 DB에 저장할지에 대한 충분한 논의를 나눴고, 주변에도 자문을 구해보니 아직 dApp에서는 정답이 없고 기획에 맞게 설계하기 나름이라는 생각이 들었습니다.

 

 현업분들에게 물어보니 규모가 있는 설계의 경우 블록체인에 있는 정보를 서버가 가져와서 DB에 저장하고 클라이언트로부터 온 요청을 DB에 있는 정보를 응답해 주지만(매번 동기화),

 작은 프로젝트인 해커톤 사이즈의 경우 DB에 블록체인의 모든 정보를 저장한다는게 비용이나 컴퓨터의 성능적으로나 현실적으로 어렵다는 것을 알게 되었습니다.

🎯NICO 프로젝트의 Back-end 설계

기본 개인정보 중 (유저의 balance, 귀속된 뱃지[NFT])에 관한 정보의 호출 같은 경우는 니어프로토콜에서 제공하는 near-api-js 를 이용하기 위해 별도의 node.js 서버를 구축할 예정입니다. (java와 호환되는 api는 현재 없음)

 

 그러면 왜 node.js 서버 하나로 하면 되지 굳이 서버를 두개 두려고 할까요?

 

 바로 저희 서비스에서 구현하려는 나름 복잡한 엔터네이너적인 요소(레벨업, 다양한 퀘스트)를 구현하는 로직을 소화하기 위해서 입니다. node.js보다는 java 프레임워크(Spring Boot)가 복잡한 로직 구현에 더 안정적입니다.

 

NICO의 Back-end 구조를 정리하자면 이렇습니다.

NICO 프로젝트= 대부분의 비즈니스 로직 처리를 위한 [java server] + 블록체인에 담긴 정보 호출을 위한[node.js server]

 

java와 호환되는 api를 제공했다면 java server 하나로 구현을 했을텐데 말이죠..
니어 체인이 인기가 많아진다면, 그날엔 web3j 와 같은 api를 제공해주겠죠?

 

🎯구현해야 할 요소

우선순위 요소
1순위 계정
자유게시판
레벨시스템
2순위 알림창

 

그러면 구현하러 가볼까요?

NICO genesis block

'블록체인' 카테고리의 다른 글

[Hackathon] Backend DashBoard is underway👾  (2) 2023.05.14
[Hackathon] 삽질 일대기😰  (0) 2023.05.11
[Hackathon] 📚프로젝트 구조화 + 우선순위 설정 (feat. NEAR Protocol)  (0) 2023.05.03
왜 성능 좋은 3세대 체인들은 이더리움의 인기를 뛰어넘지 못할까요?🙄🙄  (0) 2023.05.03
[Hackathon] NEAR Protocol(니어 프로토콜)이란?  (0) 2023.05.01
    '블록체인' 카테고리의 다른 글
    • [Hackathon] Backend DashBoard is underway👾
    • [Hackathon] 삽질 일대기😰
    • [Hackathon] 📚프로젝트 구조화 + 우선순위 설정 (feat. NEAR Protocol)
    • 왜 성능 좋은 3세대 체인들은 이더리움의 인기를 뛰어넘지 못할까요?🙄🙄
    Supersett
    Supersett
    하루를 돌아보고 공부한 티를 내기 위해 블로그를 만들었습니다.

    티스토리툴바