상세 컨텐츠

본문 제목

블록체인 기반 러닝 앱(UniRun) 개발기 소개 _ [Curation]

방송미디어

by ICT찐찐찐 2025. 2. 19. 19:51

본문

월간지 <방송과기술>  2025년 1월호에 소개된 "블록체인 기반 러닝 앱(UniRun) 개발"을 소개합니다. 이것의 부제은 '대한민국 ICT 인재를 키우는 힘, 2024년 한마음 ICT 멘토링 프로젝트 참여기'입니다. 그리고 이 글은 저자(KBS, 강자원 기술사(컴퓨터시스템응용기술사)의 승인을 얻었음을 밝힙니다. 

블록체인 기반 러닝 앱(UniRun) 개발기 소개
블록체인 기반 러닝 앱(UniRun) 개발기 소개

 

대한민국 ICT인재를 키우는 힘, 2024년 한이음 ICT 멘토링 프로젝트 참여기

<블록체인 기반 러닝 앱(UniRun) 개발>

 

글. 강자원 컴퓨터시스템응용기술사, KBS MNC (Media Network Center) 팀

동덕여자대학교 - 강서연, 김하늘, 류주아, 임주영, 황지민

 

한이음 ICT멘토링은 과학기술정보통신부가 주관하는 디지털 인재 양성사업으로 대학생(멘티)이 기업전문가(멘토)와 팀을 이루어 프로젝트를 수행함으로써 실무 역량을 향상하는 프로그램이다. 필자는 다년간 대학생들과 프로젝트를 진행하고 있지만, 특히 동덕여대 학생들의 프로젝트 수행능력은 늘 기대이상이다. 올해도 4월부터 11월까지 학생들과 함께 진행한 “블록체인 기반 러닝 앱 개발” 프로젝트에 대해 소개하는 시간을 가져보려 한다. 이번 프로젝트는 이더리움 기반의 ‘유니런’만의 암호화폐(RapiD)를 개발하여 NFT 구매 시스템을 구현해 사용자들의 보상 체계를 구축한 것이 가장 주목할 점이다.

블록체인 대학생 러닝 앱(UNIRUN)
블록체인 대학생 러닝 앱(UNIRUN)

■ UniRun이란?

UniRun은 대학생 러너들을 위한 NFT 기반 러닝(Running) 커뮤니티 플랫폼이다.

개인 러닝 데이터를 실시간으로 축적하고 확인할 수 있는 것은 물론, 대학 내 및 타 대학 크루 간의 네트워킹을 지원한다. 사용자는 자유롭게 일정을 생성하거나 다른 사용자가 생성한 러닝 일정에 참여할 수 있으며, 5.5km를 달릴 때마다 자체 개발한 ‘RapiD’ 토큰이 자동으로 생성되고 지급된다. 지급된 RapiD는 각 대학교의 마스코트가 러닝 하는 모습을 담은 캐릭터 NFT 아이템을 구매하는 데 활용할 수 있다. UniRun은 대학생 러너들에게 새로운 동기와 가치를 제공하며, 즐겁고 지속 가능한 러닝 문화를 만들어 간다.

 

러닝 앱 기능 소개

 (1) 러닝 기능

러닝 앱 기능 소개
회원관리, 실시간러닝 등 러닝 기능 화면

(2) 블록체인 활용 기능

NFT 캐릭터와 마켓
러닝 기능 화면 구성, 사진출처: 방송과기술
NFT 캐릭터와 마켓

 

■ 프로세스 및 핵심 구현기술

(1) 서비스 프로세스

5.5km를 달릴 때마다 NFT ‘RapiD’토큰이 자동 지급되는 서비스 흐름도, 출처: 방송과기술

 

① 유저, gps, 타임 스탬프 데이터 전송
② 날짜, 거리 시간, 칼로리 등 러닝 데이터 전송
③ 거리 달성 인증 데이터 전송
④ 검증 후 블록체인 토큰 지급
⑤ NFT 토큰 ‘RapiD’ 발행
⑥ NFT 아이템 구매
⑦ NFT 아이템 소장
⑧ 구매 정보 확인

 

(2) NFT, 자체개발 토큰(RapiD) 발행 프로세스

NFT ‘RapiD’토큰 발행 프로세스
NFT ‘RapiD’토큰 발행 프로세스

0번: ERC20 준비 

컴퓨터나 개발 환경에서 Solidity 코드를 작성하거나 테스트하는 과정이 포함된다.

 

1번: 스마트 컨트랙트 작성 완료 

ERC20 스마트 컨트랙트를 작성하고 배포 트랜잭션을 생성하는 단계로, 코드 작성 및 컴파일 후 배포를 위한 준비가 이루어진다.

 

2번: 네트워크 전송

배포 트랜잭션을 이더리움 네트워크로 전송하여, 네트워크의 블록에 스마트 컨트랙트 배포 내용이 기록된다.

 

3번: 네트워크 상태기록

ERC20 표준 컨트랙트가 배포되어, 네트워크에서 상태를 기록하는 과정이다.

 

4번: 초기 공급량 설정

ERC20 컨트랙트가 배포되면서 초기 공급량을 설정하고 Mint 작업을 수행하는 단계이다. 초기 공급량이 소유자의 지갑으로 발행된다.

 

5번: 토큰 생성

Mint는 새로운 토큰이 생성되어 컨트랙트 소유자에게 할당된다. 네트워크 상에서 기록되어 유통 가능한 상태가 된다.

 

6번: 유통 준비
발행된 토큰이 컨트랙트의 상태로 기록되어 유통이 준비되는 과정이다. 토큰의 총 공급량과 소유자 잔액이 업데이트된다.

 

(3) 블록체인 핵심 구현 기술

가. 블록체인 보상 시스템을 위한 토큰 발행

MetaMask로 발행한 RapiD(RD) 토큰

 

OpenZeppelin의 ERC20 라이브러리를 사용해 기본적인 토큰 인프라(잔액 조회, 전송 등)를 구축하며, Ownable 라이브러리를 사용해 소유자만 특정 작업을 수행할 수 있도록 접근 제어를 구현한다. 이를 통해 토큰의 보안성과 무결성을 보장한다. 보상 시스템의 신뢰성을 높이기 위해 스마트 컨트랙트 내부에 사전 잔액 검증 로직을 추가하여, 토큰 잔고가 부족할 경우 자동으로 트랜잭션을 차단한다. onlyOwner 키워드로 보상 지급 권한을 플랫폼 소유자에게 제한하며, 토큰 발행과 관련된 잠재적 보안 취약점을 원천적으로 방지한다.


나. 블록체인 보상 시스템을 위한 NFT 발행

ERC721 표준을 기반으로 NFT 발행 및 관리 시스템을 구축하였다. ERC721 토큰 표준을 채택함으로써 각 NFT 아이템의 고유성과 소유권 추적을 보장하였으며, 컨트랙트 소유자만이 NFT를 발행할 수 있도록 제한하여 디지털 자산의 희소성을 높였다. 또한, NFT의 메타데이터와 Base URI를 체계적으로 관리하여 향후 다양한 마켓플레이스와의 통합 가능성을 확보하였다.


다. 실시간 러닝 세션 관리 - WebSocket 기반 양방향 통신

러닝 세션 관리 시스템은 웹 소켓 프로토콜을 기반으로 한 실시간 양방향 통신 아키텍처를 구현했다. 사용자가 러닝 시작 버튼을 클릭하면 클라이언트와 서버 간 웹 소켓 연결이 즉시 설정되며, 이를 통해 실시간 위치 추적이 가능하다. 사용자의 러닝 상태 변화(일시정지, 재시작, 멈춤)는 JSON 직렬화된 상태 객체로 변환되어 실시간으로 서버에 전송된다. 서버는 수신된 상태 데이터를 기반으로 상황에 맞는 응답 메시지를 생성하고 클라이언트에 즉시 전달한다.


위치 추적 시스템에서는 GPS 모듈을 통해 정밀한 지리적 좌표(위도, 경도)를 주기적으로 수집한다. 서버는 이 지리적 좌표 데이터를 Harversine 공식에 적용하여 사용자의 정확한 이동 거리를 실시간으로 계산한다. 러닝 완료 후 사용자는 날짜, 러닝 소요 시간, 총 달린 거리, 칼로리를 확인할 수 있다.

Harversine 공식
Harversine 공식, 사진출처: 방송과기술

 

■ 프로젝트 성과

한국정보처리학회의 ACK 2024 논문집(제31권 제2호)에 ‘블록체인 기술을 활용한 러닝 플랫폼 설계’를 주제로 논문을 게재하고 우수상을 수상하는 성과를 얻었다.

임주영&amp;#44; 황지민&amp;#44; 김하늘&amp;#44; 강서연&amp;#44; 류주아우수상 ACK 2024 학술발표대회 우수상
프로젝트 성과

 

■ 유니런 프로젝트 멤버의 역할과 완료 후기

팀원 이름 소속 부서/학과 역할 직위/학년
멘토 강자원 KBS MNC(미디어네트워크센터) 프로젝트 지도 감독
멘티 팀장 임주영 동덕여자대학교 데이터사이언스전공 프로젝트 관리(PM) 4학년
팀원1 김하늘 컴퓨터학과 프론트엔드 개발, UI/UX 디자인
팀원2 류주아  HCI 사이언스전공 프론트엔드, 블록체인 개발
팀원3 황지민 컴퓨터학과 백엔드, 블록체인 개발
팀원4 강서연 HCI 사이언스전공 백엔드 개발

 

임주영

대학 시절, 플랫폼 개발의 생애주기를 경험하며 큰 보람을 느꼈습니다. PM 역할을 맡아 팀워크와 협력의 중요성을 깨달았고, 기술과 사람을 연결하는 역할의 가치를 실감했습니다. 이 경험을 바탕으로 DevRel 포지션으로 취업하게 되었고, 새로운 도전을 시작했습니다. 앞으로 기술과 사람을 잇는 역할을 하여, 누구나 쉽게 기술을 다룰 수 있는 세상을 만드는 데 기여하고 싶습니다.


김하늘

이번 프로젝트에서 기획, 디자인, 개발, 논문, 특허 출원까지 모든 단계를 경험하며 아이디어를 구체화하는 과정의 어려움을 깨달았습니다. 프런트엔드 개발자로 참여하면서 React Native와 TypeScript를 학습하고 디자인 작업도 병행했습니다. 일정관리의 어려움을 팀원들과 해결하며 프로젝트를 성공적으로 마무리했고, 팀워크의 중요성을 실감했습니다. 이 경험을 통해 큰 성장을 이뤘고, 앞으로도 사용자에게 가치를 제공하는 서비스 디자인을 계속 발전시키고 싶습니다.


류주아

교내 러닝 크루 활동을 통해 대학생을 위한 러닝 앱의 필요성을 느꼈고, 비효율적인 일정 관리 과정을 개선할 솔루션을 개발하고자 했습니다. 프로젝트를 진행하면서 유저 중심의 서비스를 설계하고 블록체인, iOS 등 다양한 기술을 다루며 개발 역량을 키울 수 있었습니다. 사용자 경험을 고려한 서비스 설계에 대해 깊이 고민하는 귀중한 경험이었습니다. 앞으로도 사용자 경험을 극대화하는 서비스를 만드는 개발자로 성장하고자 합니다.


황지민

시스템 설계부터 서버 개발, 배포까지 전 과정을 경험하며 개발자로서의 역량을 키웠습니다. 특히, 다중 서버 설계를 통해 아키텍처의 중요성을 체감할 수 있었습니다. 또한, 블록체인을 처음 접하며 낯선 용어들로 어려움을 겪었던 시간이 기억에 남습니다. 짧은 시간 안에 새로운 기술을 습득하고 실제 개발에 적용하는 과정이 쉽지 않았지만, 이번 경험을 기반으로 기술적 도전에 주저하지 않는 개발자가 되고자 합니다.


강서연

장기 프로젝트에 처음 참여하여 설계부터 개발까지 전 과정을 경험했습니다. 백엔드 개발자로서 데이터 처리 로직과 사용자 인증 시스템을 구현하며 스프링 부트를 학습했고, 일정관리에 어려움이 있었지만 결국 프로젝트를 완수하며 큰 성취감을 얻었습니다. 이번 경험을 통해 실무에서 활용가능한 다양한 기술을 알게 되었고, 이를 더욱 깊이 학습하여 백엔드 개발 역량을 강화할 계획입니다.

 

- THE END -

 

 

프로젝트 참여자들의 열정과 노력이 담긴 경험담을 읽으면서 큰 감동을 받았네요. 각기 다른 분야에서 자신만의 방식으로 성장하며, 기술과 사람을 잇는 역할의 가치를 증명해 보인 프로젝트 감독 등 참여자분의 노고에 진심으로 박수를 보냅니다.  앞으로도 끊임없는 도전과 성장을 통해 더 나은 미래를 만들어 나가시길 바랍니다. 항상 응원하겠습니다!

 

옮긴이 정보통신기술사 박승우

반응형

관련글 더보기