개발 인원: BE 3인, AOS 3인
개발 기간: 2025. 02. ~ 2025. 04. (6주)
Github 바로가기 →

📚 서비스 소개

블록체인과 IPFS 기술을 활용하여 강의 콘텐츠의 위변조를 방지하고, 신뢰 가능한 수료증을 발급하는 디지털 교육 플랫폼입니다.
기존 중앙화된 교육 플랫폼의 불투명한 수익 분배와 콘텐츠 보안 문제를 해결하기 위해 스마트 컨트랙트를 통한 자동 정산 시스템과 P2P 강의 거래를 지원하여 신뢰할 수 있는 온라인 교육 생태계를 구축합니다.

 

 

👤 담당 역할

  • 팀장
  • Android 앱 개발 (기여도 30%)
    • 사용자 인터페이스 설계 및 구현
    • Kotlin을 활용한 모바일 앱 전체 개발
  • QR코드 시스템 (기여도 100%)
    • 수료증 검증을 위한 QR코드 생성 및 스캔 기능 개발
  • IPFS 시스템 구현 (기여도 100%)
    • CID 기반 콘텐츠 관리 시스템 구축
    • 강의 자료 및 수료증 데이터의 IPFS 업로드/다운로드 기능 개발
  • 프로젝트 최종 발표

 

⚙️ 개발 환경

언어 Java 17, Kotlin 2.1.10
서버 Ubuntu 22.04, Docker 28.0.1, Jenkins 2.426
프레임워크 Spring Boot 3.4.3, Hardhat 2.22.19, Android SDK, ...
DB MySQL 8.0.41, Redis 7.4.2
IDE IntelliJ IDEA Ultimate, Android Studio 2024.2.2
API, 라이브러리 RESTful API, YouTube API, Web3j, Firebase, Kakao SDK, ...

 

 


 

아키텍처 구성도

 


주요 기술 선정 이유

Spring Boot

  • RESTful API 서버 구축에 최적화되어 있고, Web3j와의 연동을 통해 블록체인 트랜잭션 처리가 용이.

MySQL

  • 사용자, 강의, 수강 정보 등 관계형 데이터 저장에 적합하며, 팀원들의 기술 숙련도와 Docker 환경에서의 안정적인 운영을 고려해 선택.

Web3j

  • Spring Boot와 블록체인(Polygon) 간의 연동을 위한 라이브러리로, 스마트 컨트랙트 배포 및 트랜잭션 처리를 안정적으로 구현 가능. Meta Transaction(ERC-2771) 구현에도 필수적.

Redis

  • 록체인 트랜잭션 처리 시 발생하는 네트워크 지연 문제를 해결하기 위한 캐싱 레이어로 활용. 그 결과 평균 응답시간 75.4% 감소와 처리량 284.0% 증가를 달성.

 


 

 

주요 기능 및 목업

 


 

성과

팀 성과

  • Redis 캐싱 아키텍처 도입
    • 평균 응답시간 75.4% 감소, 처리량 284.0% 증가 등
  • 사용자 경험 개선
    • Smart Contract · Relayer 구조 최적화 → 사용자의 가스 수수료 부담 해소
    • 다중 관리자 계정 운영트랜잭션 병목 문제 대응

개인 기여

  • QR코드 기반 수료증 검증 시스템 구현
  • 강의 자료 및 수료증 정보의 무결성 보장을 위한 IPFS 로직 설계 및 구현
  • 내용 기반 해시(CID) 특성을 활용한 중복 파일 자동 제거로 스토리지 비용 절약
  • 사용자가 트랜잭션 처리 상태를 명확히 인지할 수 있도록 UX 개선
  • 블록체인 트랜잭션 지연 문제를 파악하고 로딩 상태 관리 시스템 구현 (중복 거래 시도 방지)

 


 

회고

  • 블록체인, 스마트 컨트랙트, IPFS 등 새로운 기술 영역에 도전하며 복잡한 기술일수록 더 깊이 있는 학습 경험을 얻을 수 있다는 점을 깨달았습니다. 초기 러닝 커브는 가팔랐지만, 새로운 기술 스택에 대한 적응력을 기를 수 있었습니다.
  • 이전 프로젝트와 달리 안드로이드 개발을 담당하면서 서버-클라이언트 간 원활한 협업을 위해서는 명확한 API 문서화와 실시간 소통이 필수라는 점을 깨달았습니다. 백엔드 개발자 관점에서 명세서 작성과 변경사항 공유의 중요성을 체감할 수 있었습니다.
  • 팀장으로서 일일 스크럼 운영과 업무 분배를 통해 개발과 매니징을 병행하는 리더십 경험을 쌓을 수 있었습니다. 팀원들의 진행 상황 파악과 일정 조율의 중요성을 깨달았습니다.
  • 기술 선정의 중요성을 깨달았습니다. Polygon 기반으로 개발한 우리 팀과 Solana(Rust) 기반으로 개발한 다른 팀의 성능 차이를 비교하면서, 블록체인 플랫폼 선택이 사용자 경험에 미치는 영향력을 체감할 수 있었습니다.

 


 

Detail

1. Pinata에 강의 자료 및 수료증 정보 업로드

Pinata는 IPFS(InterPlanetary File System) 기반의 파일 저장 및 관리 서비스를 제공하는 플랫폼입니다.
파일이 중앙 서버가 아닌 P2P 네트워크 저장되며, 러너스 서비스가 다운돼도 IPFS에 핀된 파일과 수료증 정보에는 접근이 가능합니다.

또한 파일의 위치가 아닌 내용에 기반한 해시값을 기준으로 URL이 생성됩니다.
따라서, 동일한 내용의 파일은 동일한 해시(CID)가 되기에 중복 저장이 되지 않아 스토리지를 절약할 수 있습니다.

 

 

2. 블록체인 중복거래 시도 방지

토큰 충전, 강의 구매 등의 이벤트로 거래가 발생하면, 블록체인 특성상 트랜잭션에 일정 시간이 소요됩니다.
작업이 완료되지 않은 채로 거래 버튼을 다시 클릭한다거나, 다른 화면으로 이동하여 거래를 시도하였을 시 서비스 이용에 혼란을 초래하는 바, 사용자가 직관적으로 거래 진행 중임을 인지하고 다른 화면으로 이동할 수 없도록 로딩 관리 시스템을 구현하였습니다.
로딩 중일 때에는 오버레이 애니메이션을 화면에 적용합니다.

'project' 카테고리의 다른 글

전북잇다 (JB eat-da)  (0) 2025.09.05
요비 (YOBI)  (0) 2025.09.05
레퍼 (REPER)  (0) 2025.09.05
프로필 사진

시작이 반이라면

나머지 반도 완성하는 개발자,

이서현입니다.

저를 소개합니다

'한 번 맡으면 정말 다 해내는 개발자'

일 년간 저를 지켜본 팀원이 붙여준 수식어입니다.

복잡하고 새로운 일도 책임지고 반드시 완수해냅니다.

SSAFY 12기 구미캠퍼스에서 2번의 팀장 경험을 포함한 다양한 팀 프로젝트를 진행했으며,

모든 프로젝트에서 베스트 멤버로 선정되었습니다.

팀 그라운드룰과 Git 컨벤션 수립, 일일 스크럼과 Jira를 활용한

체계적인 프로젝트 관리를 지향합니다.

학습 내용을 블로그에 꾸준히 문서화하고 CS 스터디를 주도적으로 진행하며,

새로운 기술 학습과 문제 해결에 적극적으로 임합니다.

명확한 소통, 밝은 에너지를 통해 팀과 조직에 긍정적인 영향을 미치는 개발자가 되고 싶습니다.

SKILLS
& TOOLS

Spring
Kotlin
Java
JPA
MySQL
PostgreSQL
Android Studio
Github
Figma
AWS S3
Docker
Kubernates

AWARDS

2025.02
SSAFY 팀 프로젝트 우수상
• OAuth 2.0 카카오 로그인 시스템 설계
• MediaPipe 모션 인식 기능 구현 및 구현
• Spring Boot 기반 REST API 설계 및 구현
• 백엔드 팀원들을 대상으로 한 기술 설명 문서화 및 공유

PROJECT

RECENT
EXPERIENCE

2024.07 - 2025.06
삼성 청년 SW 아카데미 (SSAFY)
• 집중 코딩 및 알고리즘 교육 (820시간)
• 4차 산업혁명 기술 프로젝트 과정 (800시간)
• Java, Vue.js, Spring, DB, Kotlin, Android 등
• 모바일, 블록체인, AI 프로젝트 등 수행
2025.06 -
CS 및 알고리즘 스터디
• CS 지식 공부 및 블로그 포스팅
• 알고리즘 코드 리뷰 및 로직 정리 (Github)

Thank You!

망설이지 않는 도전, 유연한 협업 정신으로

조직에 기여하는 개발자가 되겠습니다.

감사합니다!

PC 버전에 최적화 된 홈페이지입니다.
이메일 주소가 복사되었습니다!