채굴 UI, 왜 만들었냐고요? 써보면 압니다 – 블록체인 프론트엔드 실습기
채굴 UI, 왜 만들었냐고요? 써보면 압니다 – 블록체인 프론트엔드 실습기
2025년, 블록체인 UI 실습이 실전이 되는 순간
블록체인을 공부하면서 가장 많이 받는 질문이 하나 있습니다.
“그걸 대체 어떻게 쓰죠?”
사실 백엔드는 기가 막히게 짜놨어요. 채굴(mining)도 되고, 난이도 조정(mining difficulty)까지 제대로 구현돼 있죠. 근데 문제는 그걸 누가, 어떻게 쓰냐는 거예요. 개발자 말고 일반 사용자 말입니다.
그래서 제가 직접 만들어봤습니다. 블록체인 채굴자를 위한 UI(사용자 인터페이스).
누가 보면 “이런 것도 UI라고?” 할 수도 있겠지만, 실제 현업에서 돌아가는 환경과 최대한 유사하게 만든 리얼한 실습 경험담을 공유해 보려고 합니다.
블록체인 UI, 터미널만으로 충분하다? 절대 아닙니다
이전까지는 터미널만으로도 충분히 채굴 프로세스를 컨트롤할 수 있었죠. 명령어 몇 개만 입력하면 블록 생성되고, 트랜잭션 추가되고, 난이도 조정까지 가능합니다.
근데 이런 방식은 개발자들한테나 익숙한 거죠.
제 지인 중 하나가 디지털 지갑 주소를 복사해서 붙여넣고 마이닝 시작하는 데 20분 넘게 걸렸다고 합니다. 이유요? 터미널 자체가 생소해서요. P2P 기반 블록체인 네트워크는 중앙 서버가 없는 구조인데, UI조차 없다면 일반인에겐 진입 장벽이 너무 높아집니다.
그래서 직접 만들어봤습니다 – 채굴자 중심의 Web UI
제가 만든 건 딱 4개의 파일만으로 돌아갑니다.
-
base.html
– 공통 레이아웃 -
nav_bar.html
– 상단 내비게이션 바 -
mining.html
– 마이닝 전용 인터페이스 -
style.css
– 최소한의 시각 효과
이 구조가 중요한 이유는 재사용성 때문이에요. 이후 지갑 서버 UI나 거래 송금 UI로 확장할 때도 똑같이 가져다 쓸 수 있습니다.
실제로 전 챕터 5의 서버 기반 UI 실습 코드를 재활용해서 만들었습니다. 프론트는 원래 ‘재활용 장인’이 돼야 합니다.
사용성(UX)은 진짜 중요합니다 – 작동 중이라는 걸 보여줘야 해요
기능은 둘째치고, 사용자 입장에서 뭐가 돌아가고 있는지 보여주는 게 핵심입니다. 예를 들어, 채굴 시작 버튼을 누르고 아무 반응이 없다면 사람은 불안해집니다.
“어? 이거 되는 거야?”
그래서 다음과 같은 UI 요소를 추가했습니다.
-
모래시계 아이콘 or 텍스트: 채굴이 진행 중이라는 시각적 알림
-
깜빡이는 경고 문구: "컴퓨터를 끄지 마세요"라는 안내
-
코인 수량 실시간 표기: 마이닝 시작 전후로 보유량 비교
CSS만으로도 간단히 구현 가능합니다. 효과는 생각보다 큽니다.
마이닝 UI 구성 요소, 이렇게 짰습니다
-
전자지갑 주소 입력창
-
사용자가 본인 지갑 주소를 직접 입력
-
나중에 자동완성 기능도 추가할 계획
-
-
코인 조회 버튼
-
현재 보유 중인 토큰 개수를 서버에 요청
-
readonly input으로 값만 보여줌
-
-
채굴 시작/중지 토글 버튼
-
버튼을 누르면 채굴 시작
-
채굴이 시작되면 "중지" 버튼으로 토글됨
-
중지 후에는 채굴 수량 요약 메시지 표시
-
-
UI 알림 박스
-
시작할 때 코인 수량
-
중지 시점에서 수량 비교
-
자바스크립트는 아직 붙이지 않았습니다. 껍데기만 만들어놓고 JS 연동은 다음 강의에서 다룰 예정이에요.
HTML 템플릿 구조, 복잡해 보이지만 간단합니다
플라스크(Flask)를 기반으로, Jinja2
템플릿 엔진을 활용했습니다. 이 구조의 장점은 가독성과 유지보수입니다.
-
{{ block content }}
안에 각 페이지별 콘텐츠 삽입 -
내비게이션 바는
include
로 재사용 -
render_template()
로 서버에서 동적으로 HTML 생성
이 방식은 제가 이전에 수많은 사이드 프로젝트와 실무 프로젝트에서 써오던 방식입니다. 실제로 스타트업 개발 현장에서도 가장 많이 쓰는 구조이기도 하고요.
에러 없는 프론트, 진짜 더 무서운 겁니다
프론트엔드는 에러가 안 납니다. 아니, 안 나는 것처럼 보여서 문제죠.
자바스크립트는 에러가 있어도 그냥 지나갑니다. HTML은 태그 틀려도 대충 보입니다. 그럼 어떤 일이 생기냐면, 디자인은 보이는데 기능이 안 되는 현상이 발생합니다.
C, C++ 쓰던 시절엔 문법 하나만 틀려도 빌드가 안 됐습니다. 그게 얼마나 감사한 일이었는지, 이제야 깨닫게 됩니다.
프론트 작업하시는 분들, 정말 존경합니다. 안 되는 UI 고치는 게 제일 힘들어요.
디자이너 없이 혼자 코딩하는 프론트 실습의 현실
“그걸 디자인이라고 하세요?”
프론트 개발자 지인한테 이런 말 들어본 적 있습니다. 네, 맞습니다. 저는 디자이너가 아니니까요.
이번 실습의 목적은 미적 감각이 아니라 기능 중심의 실용적인 UI를 만드는 거였고, 실제 채굴자 입장에서 필요한 것들만 뽑아서 최소한으로 구현한 겁니다.
실제 프로젝트에선 디자이너와 협업해서 스타일링을 입히면 됩니다. 다만 로직은 개발자가 직접 구현할 줄 알아야 하죠.
실전 코딩이 더 재밌는 이유
정리하자면, 오늘 실습에서는 다음을 구현했습니다.
-
base.html
구조 설계 -
상단 메뉴바 구성 (
nav_bar.html
) -
마이닝 인터페이스 뼈대 (
mining.html
) -
작동 중 시각 효과를 위한 계획 (CSS/JS는 다음 강의에서)
지금은 껍데기만 만들었지만, 이 정도 구조만 잡아놓으면 다음 단계부터는 엄청 빠르게 개발이 진행됩니다.
마치며 – UI는 코드가 아니라 소통입니다
아무리 백엔드를 잘 만들어도, 그걸 사용할 수 있는 구조가 없다면 의미가 없습니다. 특히 블록체인 같이 낯선 기술은 더 그렇죠.
채굴자가 쉽게 다가올 수 있는 UI를 제공해야 네트워크가 살아나고, 참여자들이 늘어납니다. 저는 이 실습을 통해 기술이 사용자에게 다가가는 방법에 대해 다시금 생각하게 됐습니다.
한 줄 요약
UI는 기술이 아니라 공감입니다.
블록체인도 사람을 이해하지 못하면 아무 의미 없어요.
댓글
댓글 쓰기