[개인 프로젝트 리뷰] PEPEBear - Solana 블록체인 기반 Web3 프로젝트

PEPEBear 프로젝트 리뷰 - Solana 블록체인 기반 Web3 프로젝트

프로젝트 개요

프로젝트명: PEPEBear
기간: 2025.11
기술 스택: Next.js, TypeScript, React, Solana, Web3, Anchor Framework
목적: Solana 블록체인 기반 커뮤니티 중심 밈 암호화폐 프로젝트

PEPEBear는 제가 Web3와 블록체인에 관심을 갖게 되면서 시작한 프로젝트입니다. Solana 블록체인을 활용하여 게이미피케이션 요소가 있는 커뮤니티 플랫폼을 만들고 싶었습니다.

프로젝트를 시작한 이유

블록체인과 Web3에 관심이 생기면서 "직접 만들어보면 더 잘 이해할 수 있지 않을까?"라는 생각이 들었습니다. 특히 Solana는 빠른 트랜잭션 속도와 낮은 수수료로 인해 주목받고 있었고, 이를 활용한 프로젝트를 만들고 싶었습니다.

주요 기능 구현

1. Solana 지갑 연동

Phantom, Solflare 등 Solana 지갑을 연동하는 것이 처음에는 정말 어려웠습니다.

처음 접했을 때:

  • "지갑이 뭐지?"라는 생각부터 시작했습니다.
  • Web3의 개념 자체가 처음에는 이해하기 어려웠습니다.
  • 지갑 연동 API를 사용하는 것이 까다로웠습니다.

구현:

typescript
// Solana 지갑 연결
import { useWallet } from '@solana/wallet-adapter-react';

const { publicKey, connect, disconnect } = useWallet();

const handleConnect = async () => {
  try {
    await connect();
    console.log('지갑 연결 성공:', publicKey?.toBase58());
  } catch (error) {
    console.error('지갑 연결 실패:', error);
  }
};

배운 점:

  • Web3는 사용자 경험이 중요합니다. 지갑 연결 과정이 복잡하면 사용자가 이탈합니다.
  • 트랜잭션 수수료를 사용자가 지불해야 하므로, 불필요한 트랜잭션을 최소화해야 합니다.
  • 에러 처리가 정말 중요합니다. 네트워크 오류나 지갑 거부 등 다양한 상황을 고려해야 합니다.

2. 게이미피케이션 시스템

포인트, 레벨, 업적 시스템을 구현했습니다.

구현 과정:

  • 사용자 활동에 따라 포인트 지급
  • 포인트에 따라 레벨 업
  • 특정 조건 달성 시 업적 획득

어려웠던 점:

  • 온체인 데이터와 오프체인 데이터를 어떻게 동기화할지 어려웠습니다.
  • 게임 밸런스를 맞추는 것이 까다로웠습니다.
  • 사용자가 조작할 수 없도록 검증 로직이 필요했습니다.

해결 방법:

  • 중요한 데이터는 온체인에 저장하고, 부가 데이터는 오프체인에 저장했습니다.
  • 스마트 컨트랙트에서 검증 로직을 구현했습니다.
  • 사용자 테스트를 통해 게임 밸런스를 조정했습니다.

3. 실시간 온체인 데이터 추적

Solana 블록체인에서 실시간으로 데이터를 가져오는 것이 처음에는 어려웠습니다.

처음 접했을 때:

  • "온체인 데이터를 어떻게 가져오지?"라는 생각부터 시작했습니다.
  • Solana RPC API를 사용하는 것이 처음에는 복잡했습니다.
  • 실시간으로 데이터를 업데이트하는 것이 까다로웠습니다.

구현:

typescript
// 온체인 데이터 조회
import { Connection, PublicKey } from '@solana/web3.js';

const connection = new Connection('https://api.mainnet-beta.solana.com');

const getTokenBalance = async (walletAddress: string) => {
  const publicKey = new PublicKey(walletAddress);
  const balance = await connection.getTokenAccountBalance(publicKey);
  return balance.value.uiAmount;
};

배운 점:

  • RPC 엔드포인트를 선택하는 것이 중요합니다. 무료 엔드포인트는 제한이 있을 수 있습니다.
  • 실시간 업데이트를 위해서는 WebSocket을 활용하거나 폴링을 사용해야 합니다.
  • 데이터를 캐싱하여 불필요한 요청을 줄여야 합니다.

4. 스마트 컨트랙트 상호작용

Anchor Framework를 사용하여 스마트 컨트랙트와 상호작용했습니다.

처음 접했을 때:

  • "스마트 컨트랙트가 뭐지?"라는 생각부터 시작했습니다.
  • Anchor Framework를 사용하는 것이 처음에는 어려웠습니다.
  • 트랜잭션을 생성하고 전송하는 것이 복잡했습니다.

배운 점:

  • 스마트 컨트랙트는 한 번 배포하면 수정이 어렵기 때문에 신중하게 설계해야 합니다.
  • 테스트가 정말 중요합니다. 메인넷에 배포하기 전에 테스트넷에서 충분히 테스트해야 합니다.
  • 가스비(수수료)를 고려해야 합니다. 불필요한 연산을 줄여야 합니다.

5. 랭킹 시스템 및 애니메이션

토큰 홀더 랭킹을 실시간으로 표시하고, 변화를 애니메이션으로 보여주는 기능을 구현했습니다.

구현:

  • 온체인 데이터를 주기적으로 조회
  • 랭킹 변화 감지
  • 애니메이션으로 시각화

배운 점:

  • 실시간 데이터를 효율적으로 관리해야 합니다.
  • 애니메이션은 성능에 영향을 줄 수 있으므로 최적화가 필요합니다.
  • 사용자 경험을 고려한 UI/UX가 중요합니다.

어려웠던 점

1. 블록체인 개념 이해

블록체인 자체가 처음에는 정말 어려웠습니다.

처음에는:

  • "블록체인이 뭐지?"라는 생각부터 시작했습니다.
  • 분산 원장, 합의 알고리즘 등의 개념이 이해하기 어려웠습니다.
  • 트랜잭션, 블록, 해시 등의 용어가 처음에는 헷갈렸습니다.

하지만 배운 점:

  • 직접 만들어보니 개념이 더 명확해졌습니다.
  • 블록체인은 신뢰할 수 있는 중앙화된 시스템을 대체할 수 있는 기술입니다.
  • Web3는 사용자에게 더 많은 권한을 주는 패러다임입니다.

2. 트랜잭션 처리

트랜잭션을 생성하고 전송하는 것이 생각보다 복잡했습니다.

어려웠던 점:

  • 트랜잭션이 실패할 수 있는 다양한 경우를 처리해야 했습니다.
  • 네트워크 지연이나 혼잡으로 인한 문제를 고려해야 했습니다.
  • 사용자에게 적절한 피드백을 제공해야 했습니다.

해결 방법:

  • 트랜잭션 상태를 추적하여 사용자에게 피드백을 제공했습니다.
  • 재시도 로직을 구현했습니다.
  • 에러 메시지를 사용자가 이해할 수 있게 표시했습니다.

3. 보안

Web3 프로젝트에서는 보안이 정말 중요합니다.

고려사항:

  • 지갑 연결 시 사용자 확인
  • 트랜잭션 서명 시 명확한 정보 제공
  • 스마트 컨트랙트 취약점 방지

배운 점:

  • 보안은 처음부터 고려해야 합니다.
  • 사용자에게 명확한 정보를 제공해야 합니다.
  • 보안 감사를 받는 것이 좋습니다.

개선하고 싶은 점

1. 스마트 컨트랙트 최적화

현재 스마트 컨트랙트가 아직 최적화되지 않았습니다. 가스비를 줄이고 효율성을 높이고 싶습니다.

2. 사용자 경험 개선

Web3는 아직 사용하기 어려운 부분이 있습니다. 사용자 경험을 개선하여 더 쉽게 사용할 수 있도록 하고 싶습니다.

3. 커뮤니티 기능 강화

커뮤니티 기능을 더 강화하여 사용자 참여를 높이고 싶습니다.

총평

PEPEBear는 제가 Web3와 블록체인을 배우기 위해 시작한 프로젝트입니다. Solana 블록체인을 활용하여 실제로 작동하는 Web3 서비스를 만들 수 있어서 뿌듯합니다.

특히 지갑 연동, 스마트 컨트랙트 상호작용, 온체인 데이터 추적 등을 경험하면서 Web3 개발에 대한 이해도 크게 높일 수 있었습니다.

블록체인은 아직 배워야 할 것이 많지만, 이 프로젝트를 통해 기초를 다질 수 있었습니다. 앞으로도 더 많은 Web3 프로젝트를 만들고 싶습니다.

링크