목차

반응형

1. 개요

안녕하세요! 오늘은 싱글 스트로크 BPM을 200까지 올리는 방법에 대해서 소개해보고자 합니다.

 

저는 스승님을 만났을 때 스틱 잡는 자세, 스트로크 자세부터 잡기 위해서 한 달 정도 시간이 걸렸던 것 같네요. ㅎㅎ

오늘의 주제인 BPM 속도를 높이는 내용을 얘기하기 전에 올바른 그립법과 바운딩을 살린 스트로크에 대한 이해가 꼭 있어야함을 말씀드립니다. 나쁜 스트로크 자세로 BPM을 높여봤자 의미가 없습니다. ㅠㅠ

그립 방법과 스트로크에 대해서는 이번 게시물이 반응이 좋으면 정리해서 올릴 계획입니다.

 

저 같은 경우 드럼을 배우기 시작하고 나서 몇 달간은 음악을 쳐볼 기회도 없었고 오직 스트로크, BPM을 높이는 연습만 했습니다. 마치 복싱하기 전에 줄넘기만 한다는 클리셰 같더라고요. ㅋㅋㅋㅋ

 

하지만 이번에 드럼을 처음 배우는 것이 아니라 다른 곳에서 드럼을 배웠을때 기본기에 대한 이해 없이 음악 연주 위주로 수업을 했는데 소리도 안 예쁘고 금방 한계에 봉착했던 기억이 있어 기본기에 대한 중요함을 인지하고 묵묵히 수행을 했습니다. 세상 만사가 결국 기본기가 중요한것 아니겠습니까....

 

드럼에 대한 기본기를 갈고닦으며 집에서 꾸준히 하루에 한 시간씩 6개월 정도 치다 보니 싱글 스트로크로 겨우 200BPM 까지는 나오게 됐습니다.

 

근데.. BPM 200은 정말 기본 중의 기본이더라고요!

ㅎㅎ 배워야 하는 게 얼마나 많은지...

 

 

2. BPM을 높여야 하는 이유

스승님이 항상 BPM을 높여야 한다고 말씀하시는 이유는 한결같습니다.

실전에서 나오는 속도연습할 때, 패드 위에서 나오는 속도의 70% 밖에 안되기 때문에 연습할때 최대한 높여놔야 실전에서 겨우 연주가 가능하다고 말씀하십니다.

 

참 맞는 말인 게 제가 이번에 에이브릴 라빈의 "sk8ter boi"를 공연했는데 BPM 150인 노래지만 중간에 양손 싱글 스트로크 부분이 연습할 때는 정말 쉽게 치지만 연주할 때는 정말 버겁더라고요.

스승님께서 말씀하셨던 것이 무슨 말씀인지 몸소 이해했습니다. 아마 스트로크 연습을 해서 평소 BPM을 높여놓지 않았다면 150 BPM이지만 소화하지 못했을 것입니다.

 

 

3. 싱글 스트로크 연습 루틴

스트로크 연습은 아무리 못해도 하루 30분씩 꾸준히 해야 합니다.

헬스도 집에서 멀면 잘 안 가게 되듯이 꾸준히 연습할 수 있는 공간을 마련하는 것이 중요합니다.

저는 집에 드럼 연습 패드를 두고 퇴근하면 매일 30분~1시간씩 스트로크 연습을 했습니다.

 

드럼에 진지하게 임하는 당신도 이제 하나 장만할 때가 됐습니다.

 

누르면 판매처로 이동합니다.

쇼핑몰에 드럼 패드 치면 종류가 정말 많이 나옵니다.

위 판매처 상품을 사용해봤는데 제품 퀄리티도 괜찮고 가성비가 좋은 편이라 추천드려봤습니다.

각자 본인에게 맞는 드럼 패드와 드럼스틱을 준비해주세요!

그럼 이제 본격적으로 연습하는 방법에 대해서 알아보도록 하겠습니다.

 

기본적인 연습 순서는 아래와 같습니다.

 

오른손 싱글 스트로크 > 왼손 싱글 스트로크 > 양손 싱글 스트로크

 

 

1. 오른손 싱글 스트로크

 

2. 왼손 싱글 스트로크

 

3. 양손 싱글 스트로크

 

특정 BPM을 기준으로 위 3개 동작을 이어서 연속적으로 반복하면 됩니다!

예를 들어 160 BPM인 상태에서 손에 익을 때까지 오른손 싱글 스트로크, 왼손 싱글 스트로크, 양손 싱글 스트로크를 계속 치면 됩니다. 손에 너무 익어서 편안하다 싶으면 더 높은 BPM으로 치면 됩니다!

 

아래 항목은 스트로크 연습할 때 제가 스승님으로부터 자주 지적해주셨던 자가진단 항목입니다.

꼭 숙지하셔서 아래와 같은 나쁜 습관을 들이지 않도록 주의해야 합니다!

 

 

속도가 올라감에 따라 몸에 힘이 들어가는 것은 어쩔 수 없지만 몸의 힘을 최대한 빼야합니다.

왼쪽:X, 오른쪽:O

조금 과장하긴 했는데 실제로 속도가 빨라지면 저렇게 몸이 움츠러들면서 힘이 잔뜩 들어가게 됩니다. 계속 자세를 의식해서 몸 전체적으로 편하고 바른 자세를 유지하도록 신경 써야 합니다.

 

팔, 팔꿈치가 너무 벌어지면 안 됩니다.

왼쪽:X, 오른쪽:O

몸에 힘이 들어가고 빨리 치기 위해서 팔꿈치가 벌어지는 경우가 있는데 마찬가지로 편하고 바른 자세를 유지해야 합니다!

 

내리칠 때 힘이 과도하게 들어가지 않도록 합니다.

왼쪽:X,  가운데 O, 오른쪽:O

왼쪽처럼 힘을 잔뜩 줘서 치면 소리도 퍽! 퍽! 소리가 나고 손에도 무리가 갑니다. 적어도 가운데, 오른쪽과 같이 적당한 힘 또는 약한 힘으로 치도록 합니다.

 

 

양쪽의 힘, 바운딩 높이가 비슷해야 합니다.

왼쪽:X, 오른쪽:O

왼쪽은 제가 일부러 과장해서 쳤습니다. 실제로 왼쪽 사진처럼 같이 바운딩의 차이가 크게 나지는 않지만 바운딩이 일정하지 않거나 눈에 보일 정도의 차이가 나지 않고 양손의 바운딩이 비슷하도록 힘을 주도록 합니다.

 

팔힘 X, 손가락 X, 손목 X => 손목 + 손가락 O

왼쪽:팔로 치는 경우 X,  가운데:손가락으로 치는 경우 X, 오른쪽:손목으로 치는 경우 X

 

손목, 손가락 둘다 적당한 밸런스를 유지하며 편안한 스트로크

가장 어려운 부분입니다. 팔로만 치는 경우, 너무 손가락을 사용해서 치는 경우, 손가락 없이 손목만으로 치는 경우 속도가 높아질수록 예쁘고 편한 스트로크가 나오기 힘듭니다.

손목, 손가락을 둘 다 적당히 사용하여 가장 편안한 스트로크를 만들도록 합니다.

 

4. BPM 높여서 연습하기

연습 루틴과 자세를 어느 정도 숙지했다면 BPM을 어떻게 높일지 말씀드리면서 글을 마무리 짓도록 하겠습니다.

앱 중에 BPM 소리를 내주는 앱이 있습니다. 저는 Tempo라는 앱을 쓰는데요.

 

처음부터 너무 빠르게 치지 말고 천천히 낮은 속도부터 워밍업 해가면서 순서대로 천천히 속도를 올리면서 치는 것을 추천합니다.

 

당연히 처음에는 잘 안되지만 날마다 꾸준히 연습하다 보면 손과 스틱이 친해지고, 모션이 부드러워지면서 커버 가능한 최대 BPM이 늘어나는 것을 느낄 수 있습니다.

 

저 같은 경우 BPM 140까지는 양손 싱글 스트로크까지 크게 문제가 없었지만 160부터는 손목과 손가락의 적절한 밸런스가 맞지 않으면 편히 치기 어렵더라고요.

 

결국 답은 꾸준한 연습밖에 없습니다!

 

다들 연습 열심히 하셔서 훌륭한 드러머가 되세요!

긴 글 읽어주셔서 감사합니다.

반응형

'일상' 카테고리의 다른 글

임시 게시물  (0) 2023.03.14
좋은 영업 멘트란...?  (0) 2023.02.16
한양대학교 학생증 발급 방법  (0) 2022.03.09
우크라이나 국가별 지원 현황  (0) 2022.03.01
러시아 제재 현황 - 국가별 러시아 제재  (0) 2022.03.01
반응형

1. 개요

2. 발급과 재발급

3. 이후 출입 권한

 

 

 

 

1. 개요

그러하다 나이 먹고 사회에서 방황하다가 다시 졸업하려고 학교 들어갔더니 학생증을 잃어버렸다.

우리 한양대학교는 어떻게 해야 학생증을 다시 발급받을 수 있을까...?

 

2. 발급과 재발급

학생증을 처음 발급(신입생)하는 것과 재발급하는 것은 다르다.

 

재발급

한양대학교 학생회관 2층으로 가서 학생지원 사무실로 가서 카드 재발급받는다고 하면 된다.

현금 3,000원과 신분증이 필요하다.

학기 초(3월)에는 너도나도 학생증 재발급을 하기 때문에 물량이 많이 부족하기 때문에 아침 일찍 가지 않으면 발급용 카드 재고가 없어서 발급 못 받는다.

또는 방문하기 전에 02-2220-0085 한양대학교 학생 지원팀에 연락해서 발급 가능한지 물어보자.

 

 

발급

신입생의 경우는 발급인데 내가 알기로는 최초 1회는 일괄적으로 학교 측에서 나눠주는 것으로 알고 있다.

그냥 가만히 있으면 될 듯?

 

3. 이후 출입 권한

학생증을 (재)발급받으면 3시간 뒤 출입 권한이 부여된다고 한다.

그리고 카드를 통장과 연결하려면 신한은행을 방문하라고 하는데 필수는 아니다.

근데 본인의 경우 자꾸 기숙사 출입 권한이 없어서 기숙사 문을 못 열었다.

그래서 급한 경우 일단 상황실에 전화해서 "제1 생활관 5층 거주 생인데 학생증으로 문이 안 열립니다." 문의하면 신원 확인하고 원격으로 문을 열어준다.

본인의 경우 권한이 제대로 부여되지 않아서 생활관 담당 사무실에 문의해야 한다고 답변받았다.

 

반응형

'일상' 카테고리의 다른 글

좋은 영업 멘트란...?  (0) 2023.02.16
드럼 싱글 스트로크 연습 - BPM 200 뚫기!  (0) 2022.06.19
우크라이나 국가별 지원 현황  (0) 2022.03.01
러시아 제재 현황 - 국가별 러시아 제재  (0) 2022.03.01
근황토크~  (0) 2021.12.21
반응형

1. 개요

2. 현재 상황

3. 진행 사항

4. 추가 탐구 필요한 부분

 

 

 

 

1. 개요

본인은 SI 업체에서 코드 몽키 생활을 2년 정도 하다가 유니티 클라이언트로 2년 정도 하면서 어느 정도 개발에 대한 이해가 조금씩 생기기 시작했다.

백엔드 및 전반적인 서비스 구축에 대한 능력은 소규모, 사이드 프로젝트 경험밖에 없기 때문에 선진 개발 문화 경험이 부족하다.

스스로도 많이 부족함을 느끼고 있지만 당연히 의지가 부족한지라 별도로 스킬업을 할 생각은 못하고 있었다. 

 

그러던 찰나...

 

대표님께서 잘 알고 계시는 대기업 출신 개발자 한분을 모셨다. 처음에는 풀 스택 개발자라길래 좀 걱정됐다.

만나서 몇번 얘기해보니까 정말 믿고 따라갈만한 분인 것을 느꼈다. 

 

 

오자마자 회사의 파트별 리드 개발자들과의 미팅을 하셨고 현재 회사의 상태로는 목표 달성이 힘들 것이라고 말씀하셨다.

이것저것 뜯어 고쳐야하는 부분이 많고 기존 팀원들도 새로 배우고 적용해야 하는 것이 많다고 하셨다.

또한 팀이 전반적으로 '근본 없음'을 지적하셨고 '근본 탑재'를 위해서 노력하겠다고 하셨다.

 

이 시리즈는 근본 없는 개발자가 근본 있는 개발자가 되는 과정을 담아내기 위한 시리즈다.

해당 시리즈에서 앞으로 합류하신 개발자님을 그분 이라고 호칭하겠다. 

 

이 기회에 잘 배워두고 잘 기록해두면 나중에 분명 스타트업같이 맨땅에서 시작할 때 크게 도움이 될 것이라고 생각한다.

 

2. 현재 상황

현재 팀의 상황은 다음과 같다.

- 전체 인원 200명급의 모회사 

- 자회사 인원 7명 ( 디자이너 3, 개발자 3, CEO )

- 블록체인 서비스를 구현하는 것이 목표

- 개발자는 나, 동료, 그분 이렇게 3명

- 인원은 충원중이지만 너무 적다 보니 분야를 가리지 않고 개발해야 함 

 

3. 진행 사항

그분이 오셔서 바로 요청한 작업 사항이다.

 

개인 레포 > 팀 Git 레포 생성 및 취합

기존에는 각자 개발하던 부분을 개인 레포에 올려놓고 공유하는 방식이었는데 이를 팀 레포를 생성해서 한 곳에서 볼 수 있도록 환경을 구축하였다. 

그리고 개인 레포를 전부 팀 레포로 올렸다.

 

또한 거의 혼자 개발하다보니 기능별 커밋을 하지 않고 무분별하게 커밋을 하였는데 앞으로는 기능 단위로 커밋하기로 하였고 추후에는 코드 리뷰까지 도입하겠다고 했다.

 

 

TS 프로젝트 -> JS 프로젝트 컨버팅

본인은 개발하면서 TS로 프로젝트를 개발하고 있었는데 아직까지는 JS에 더 익숙하기 때문에 바닐라 JS로 다시 컨버팅해서 초기에는 JS로 개발하기로 하였다.

바닐라 JS보다 TS가 협업, 유지보수 측면에서 좋지만 러닝 커브가 있기 때문에 추후 TS 프로젝트로 다시 전환하자고 하셨다.

 

run.sh 쉘 스크립트 작성

프로젝트마다 run.sh 스크립트를 실행하면 최대한 환경에 구애받지 않도록 모든 디펜던시를 설치해주고 자동으로 도커 이미지까지 생성, 도커에 올려주는 쉘 스크립트를 짜도록 지시하였다.

쉘 스크립트도 간단히 짜봤고 도커에 대한 공부도 하였다. 

이렇게 해야 추후에 다른 개발자가 합류해도 누군가의 도움 없이 혼자서 빠르게 환경 구축이 가능하기 때문에 이 부분은 선택이 아닌 필수라고 하였다.

 

도커라이징

모든 프로젝트는 도커 환경에서 구동 가능하도록 세팅을 해야 한다고 하셨다.

추후 실 서비스를 호스트 기반 배포로 갈지, 도커 기반으로 갈지는 고민 중이지만 적어도 개발 환경은 도커 기반으로 간다고 하셨다.

이에 따라 프로젝트를 도커에서 구동 가능하도록 Dockerfile 생성, 도커 이미지 빌드, 도커 구동 테스트를 해보았다.

 

리드미 작성

리드미를 작성하지 않았는데 어느 정도 리드미를 작성해야 한다고 하셨다.

환경변수, API 설명, 명령어 정보를 적어둬야 한다.

 

 

4. 추가 탐구 필요한 부분

터미놀로지

터미놀로지라는 용어를 사용하셨는데 뭔지 몰라서 찾아봤다.

이는 조직 내 무언가를 지칭하는 용어를 말한다. 다만 용어가 불분명하여 혼선이 없도록 해야 한다.

 

도커와 VMware 차이

도커와 Vmware는 엄청난 차이가 있다고 하였는데 이 정도는 알아야 할 것 같다. 간단히 찾아봤는데 쉽지 않다 조금 더 심층적으로 탐구해봐야겠다.

반응형
반응형

우크라이나와 러시아에 대한 전쟁이 지속되면서 전세계적으로 우크라이나에 대한 군사 물자 지원을 하고 있다.

러시아의 침략이 성공적으로 마무리 되면 추후 본인들에게도 끼칠 악영향을 우려한 전략적인 선택이라고 생각한다. 직접 전쟁에 참여할 수는 없으나 최대한 러시아의 침략을 방어할 수 있도록 우크라이나를 지원하는 것이다.

지금 어떤 국가가 우크라이나를 대상으로 군사 지원을 했는지 알아보자.

 

 

미국

3억 5000만 달러 상당의 무기를 우크라이나로 방출

대장갑, 소형 화기, 방탄복, 탄약, 대공 방어 시스템 지원

지난 1년 동안 미국은 우크라이나에 10억 달러 이상의 안보 지원 약속

 

영국

경장갑 방어 무기 시스템 공급

치명적인 방어 무기를 포함하여 우크라이나에 대한 군사적 지원 약속

추가 군사 지원 제공 준비중

 

프랑스

방어용 군사 장비 파견

폴란드로 피난한 난민을 위해 33톤의 구호물자 지원

몰도바로 피난한 난민을 위한 추가적인 33톤의 구호물자 지원 예정

 

네덜란드

2천만 유로 지원

대공 로켓, 대전차 시스템 공급 발표

200개의 스팅어, 50개의 판저파우스트, 400개의 대전차 무기 및 로켓 공급 발표

독일과 협력하여 대공방어체계 지원 검토중

 

독일

1,000개의 대전차 무기와 500개의 스팅어 공급 발표

무기 수출 금지 정책 철회

 

이탈리아

즉각적으로 1억 1000만 유로 지원

 

캐나다

5억 캐나다 달러(3억 9400만 달러) 대출

 

스웨덴

중립 국가임에도 불구하고 5,000개의 대전차 로켓, 야전 식량, 방탄복 지원

1939년 소련 침공 이후로 첫 국가 공식 지원

 

벨기에

3,000개의 자동 소총, 200개의 대전차 무기, 3,800톤의 연료 공급 발표

 

포르투갈

야간 투시경, 방탄 조끼, 헬맷, 수류탄, 탄약 및 자동 G3 소총 공급

 

이스라엘

의료 장비, 정수기, 텐트, 침낭과 같은 인도적 자원 물자 100톤 지원

 

터키

난민을 위하여 몰도바에 구호품을 가득 실은 트럭 3대 지원

 

그리스

인도적 지원, 방위장비 공급

 

루마니아

우크라이나와 국경을 접하고 있는 루마니아는 11개 군 병원에서 부상자 치료 지원

330만 달러의 연료, 방탄 조끼, 헬맷 및 기타 군사물자 지원 제안

 

스페인

20톤의 방탄 조끼, 의료 방어 장비 지원 약속

 

체코 공화국

박격포 4,000개, 권총 30,000정, 돌격소총 7,000정 기관총 3,000정 대량의 저격소총, 100만개의 총알을 우크라이나에 지원 약속

 

슬로바키아

1100만 유로(1239만 달러) 상당의 포탄과 연료를 우크라이나에 지원하기로 발표

반응형
반응형

현재 러시아가 우크라이나에 대한 침공을 개시하면서 전세계적으로 반러 정서가 확산되고 국가마다 노골적으로 러시아에 대한 제재를 가하고 있다.

 

위 사진은 러시아와 우크라이나의 수출 현황을 볼 수 있는 그래프다.

러시아는 현재 어떤 제재를 받고 있는지 알아보자.

 

러시아가 현재 받고 있는 제재

러시아 은행의 SWIFT 국제 금융 시스템 제외

EU 관련 모든 기관과의 거래 금지, 러시아 기업의 주식 활동 방해

러시아 개인, 기업의 자산의 동결

러시아 항공사와 개인 제트기는 영국과 EU 영공에서 활공 금지

여러 유럽 항공사들이 러시아 노선 중단 선언

미국은 러시아 에너지 회사, 송유관 회사, 전력 회사, 화물, 철도, 통신 회사를 신용 시장에서 금지

EU는 러시아에 대한 첨단 제품 수출 전면 금지

UEFA 챔피언스리그 결승전이 상트페테르부르크에서 파리로 옮겨짐

FIFA와 UEFA는 러시아 국가대표팀을 모든 대회에서 출전 정지

포뮬러 원 그랑프리, 러시아 월드컵 스키 대회 취소

EU 주도하에 러시아 대통령, 외무장관 및 고위 인사 유럽 자산 동결

 

국가별 제재 및 방침

미국

(러시아의 일일 외환 거래의 80% 이상과 무역 절반 이상이 미국 달러로 이뤄짐)

러시아에 대한 SWIFT 제재 동참

러시아 주요 단체, 개인에 대한 제재 발표

반도체, 통신, 암호화 보안, 레이저, 센서, 항법, 항공 전자 및 해양 기술에 대한 광범위한 제한 발표

러시아의 전반적인 금융 서비스에 대한 제재 조치를 가하는 중

 

독일

러시아 에너지 수입 중단

 

EU

러시아 은행의 SWIFT 국제 금융 시스템 제외

러시아 대통령, 고위 인사 유럽 자산 동결

러시아 대통령, 고위 인사의 EU 여행 금지

 

일본

러시아에 대한 금융 기관과 수출 제재 강화

 

대한민국

서방 SWIFT 차단 시스템 동참

러시아에 대한 저략물자 수출 전면 금지

러시아에 대한 수출규제 강화

전략비축유 추가방출 추진

 

영국

러시아 은행, 고위 인사를 대상으로 제재 발표

영국의 러시아 주요 자산 동결

영국 내 러시아 기업의 자금 조달 중단 조치

러시아 주력 항공사(Aeroflot)의 영국 상륙 금지

러시아에 대한 이중 수출 허가 중단

러시아에 대한 일부 첨단 산업, 채굴 산업 수출 금지

 

캐나다

러시아 고위 인사, 은행, 개인, 단체를 대상으로 추가 제재를 발표, 모든 수출 허가 취소

 

체코 공화국

러시아 항공사가 중부 유럽 국가로 비행하는 것 금지

러시아 소유 기업의 체코 자금 분석 발표

 

대만

대만 정부 주도하에 러시아에 제재를 가할 것이라고 입장 표명

전자회로 제조업체는 모든 수출 통제 규정을 준수하기로 입장 공개

 

호주

러시아와 우호관계를 유지하는 중국 비판

 

뉴질랜드

러시아에 대한 여행 금지령 발령

러시아 군대와 보안군에 대한 무역 금지

 

반응형

'일상' 카테고리의 다른 글

한양대학교 학생증 발급 방법  (0) 2022.03.09
우크라이나 국가별 지원 현황  (0) 2022.03.01
근황토크~  (0) 2021.12.21
자전거 국토종주 3일차 - 충주~대구  (0) 2021.09.24
자전거 국토종주 2일차 - 여주~충주  (0) 2021.09.24
반응형

1. 개요
2. 블록체인 기본 개념
3. 채굴이 그래서 뭐요?
4. POW란?
5. POW - hashcash
6. 여기서 다시 짚어보는 채굴 행위란?
7. 비트코인 채굴 난이도
8. 채굴 난이도 동적 조절

 

 

 

 

 

 

1. 개요

인터넷에 블록체인의 채굴에 대한 설명이 많은데 대략 어떤 느낌이구나... 싶은 글은 많지만 그런 글들을 읽어도 "그래서 채굴이 뭔데?" 라고 물어보면 비개발자는 물론이고 개발자도 충족시켜줄 만한 답변을 찾기 쉽지 않다.

왜 완벽한 이해가 안됐는지 돌이켜보면 사실 채굴 행위 자체에 대한 의해는 큰 의미가 없으며, 블록체인 세상에서 채굴이라는 행위가 갖는 맥락적인 이해까지 해야 진정한 의미를 알 수 있다.

그래서 일하면서 틈틈이 공부해서 얻어낸 채굴에 대한 전반적인 지식을 정리해서 배포해보도록 하겠다.

 

 

2. 블록체인 기본 개념

비개발자

채굴에 대한 이해를 하기 위해서 최소한 블록체인에 대한 이해를 해야 한다.

 

왜 이런 것이 생겨났냐? 지금 세상의 데이터의 관리 주체는 마치 당신의 핸드폰 정보를 삼성, 아이폰이 갖고 있는 것처럼 특정 개인이 하고 있다.

근데 이것이 맘에 안 들어서 세상 모두가 관리 주체가 되자는 느낌으로 탄생한 이념이 web3며 기반 기술은 블록체인이다. 

"마치 우리 스스로 잘 해낼 수 있다!" 이를 탈중앙화라고 하며 IT계의 무정부주의 같은 느낌이다.

 

네이버 실시간 검색 랭킹

왜 탈중앙화를 해야 하나? 과거 네이버 실시간 검색어에 대한 조작 논쟁이 끊이지 않았던 것 기억하는가?

네이버 실시간 검색 랭킹을 누구도 조작할 수 없도록 시스템을 만든다고 생각하면 된다. 이념이 좀 이해가 되는가?

탈중앙화는 데이터에 대한 투명성을 보장해주며, 이는 곧 시스템에 대한 투명성으로 이어진다.

 

그럼 어떻게 우리 스스로 데이터를 배포하고 관리하느냐?

"데이터를 블록으로 쪼개고 우리 모두가 데이터를 읽는(read) 동시에 쓰면(write) 된다." 라고는 하지만 사실 우리는 읽기(read)만 하고 데이터를 쓰는(write) 사람을 나눠놨다. 그리고 보통 데이터를 쓰는 사람을 채굴자라고 하며 채굴을 통해 데이터를 블록체인상에 올릴 수 있다.

 

개발자

솔직히 블록체인 하도 많이 들어서 이런 얘기는 시시콜콜하죠?

네 압니다. pass

 

3. 채굴이 그래서 뭐요?

말이 길었다. 그래서 채굴이 뭐냐? 6번에서 한번 더 설명할 것이지만 일단 간단히 채굴이 뭔지 에피타이저로 맛보도록 하자.

 

비개발자

돈을 벌고 싶은 누군가가 본인의 컴퓨터를 사용하여 엄청나게 어려운 수학 문제를 푼다.
그 수학 문제를 풀면 블록체인 네트워크상에 데이터를 올릴 수 있는 방법을 알게 되고 그곳에 데이터를 올리고 싶은 사람의 데이터를 받아서 대신 올려준다. 그러면 문제를 풀고 데이터를 올려준 사람은 보상으로 코인을 얻게 된다.
이것이 채굴의 기본적인 의미다.
여기서 어려운 수학 문제를 Proof Of Work라고 하는데 아래에서 POW의 유래와 의미를 알아보도록 하자.

 

개발자

스택오버플로우에서 누군가가 mining을 이렇게 표현했다.
mining is doing the work of finding nonce so that sha256(sha256(data+nonce)) < difficulty
즉 누군가 올리고자 하는 데이터를 받아서 거기에 어떤 난수를 추가해서 해시를 엄청나게 돌리는데 그 해시의 값이 특정 조건을 만족할 때까지 난수를 찾는다.

여기서 만족하는 해시를 찾을 것을 POW라고 하며 다양한 POW가 존재한다. POW의 유래와 정확한 의미를 알아보자.

 

4. POW란?

 

 

POW 의미


Proof Of Work의 의미를 보면 스팸 방지를 위해서 만들어놓은 일정의 지연 장치다.
POW의 유래는 자꾸 스팸메일을 보내서 막기 위해 메일을 요청하기 전에 일정 시간을 쓸 수밖에 없도록 어떠한 조건을 걸어놓은 것이다.




이것을 이해하기 쉽게 비슷한 것을 들고 왔다. 바로 captcha다.
자꾸 사람들이 과도한 반복 요청, 매크로를 하니까 이를 막기 위해 어느 정도 시간이 걸리는 문제를 내는 것인데 거의 비슷하다고 보면 된다.

POW에는 다양한 형태가 있는데 사실 그건 중요하지 않다. POW라는 것이 과도한 요청을 막기 위해 존재한다는 것이 가장 중요하다.

 

비개발자

왜 10분이라는 시간이 지나야 데이터를 쓸 수 있도록 불편하게 설계해놨는지 궁금할 수 있는데 데이터의 읽고 쓰는 것이 너무 쉬워버리면 보안성, 효율성이 떨어지게 된다. 그렇기 때문에 비트코인은 문제를 푸는데 대략 10분이라는 시간이 걸리도록 세팅을 해놨다.

 

개발자

POW의 해결 시간을 왜 평균적으로 10분으로 해놨는지 다양한 의견이 있다. 그중 한 가지 예를 들자면 트랜잭션이 블록체인에 올라가면 전체 네트워크에 전파되기까지 약 1분 정도 걸린다고 한다. 그러면 1분 동안 채굴하기 위해 소모된 리소스가 아무 의미가 없어진다. 만약 10분이라는 시간이 POW의 해결 시간이면 대략 10%의 해시 파워가 낭비된다고 볼 수 있다. 만약에 이 시간이 2분으로 짧아지면? 50%의 해시 파워가 낭비되는 것으로 볼 수 있다.

비트코인은 왜 10분이라는 시간을 트랜잭션의 생성 시간으로 했는지 오래 탐구해봤는데 간단한 내용은 아니라서 추후에 다른 게시물에서 정보를 정리할 생각이다. 일단은 이 정도로만 알고 넘어가자!

따지고 보면 "갓토시 나가모토가 10분으로 해놔서" 가 정답이다 ㅋㅋ

 

5. POW - hashcash

블록체인의 POW에는 다양한 유형이 있다.

한번 알아보자

 

 

그만 알아보자

 

비트코인이 사용하는 POW는 hashcash라고 해서 최초의 작업 증명(POW)이며 유명하다.

비슷한 로직의 소스코드도 널리 퍼져있어서 hashcash POW에 대해서 탐구해보도록 하겠다.

 

비개발자

상식적으로 생각해보면 보통 수학 문제를 낼 때 잘 만든 문제를 내기 위해서는 출제자가 더 오래 고민한다. 그러면 문제를 어떻게 내주길래 고성능의 컴퓨터가 푸는데만 10분이 걸리는 문제를 생성할 수 있는 걸까?

hashcash POW의 원리는 문제의 정답을 알았을 때는 이것이 정답이라는 것을 순식간에 알 수 있지만 정답을 찾는 과정은 아직 현대 기술로는 엄청난 시간이 걸리는 형태의 문제다.

sha256이라는 암호화 기술이 있는데 아무 문자를 암호화시키면 해시 코드라고 해서 규칙성 없는 일련의 코드를 생성한다. 이 해시 코드의 특징은 해시 코드만으로는 원래 문자열이 뭔지 알아내기 힘들지만 원본 문자를 아는 경우 해당 원본 문자가 정말 해시 코드의 원본 데이터인지 진위여부를 판단하는 것은 굉장히 쉽다.

 

여러분의 계정 비밀번호도 위와 같이 암호화를 통하여 DB에 저장된다. 비밀번호 원문을 저장하는 건 법에 걸리기 때문에 여러분이 원문을 입력할 때마다 동일한 암호화를 통하여 해시값이 동일한지 판단하여 로그인을 시켜준다.

그럼 각설하고 POW의 hashcash는 어떤 형태의 값을 찾도록 하는지 말해보겠다.

데이터와 특정 문자를 합쳐서 sha256 암호화를 하면 해시가 생성되는데 그 해시의 맨 앞자리에 0으로 연속된 숫자가 나오도록 하는 것이다.

예를 들면 이번 데이터를 올리기 위해서 맨 앞자리가 0000으로 시작하는 해시를 필요로 하면 컴퓨터는 올리고 싶은 데이터에 랜덤 값을 추가해서 앞자리가 0000인 해시가 될 때까지 계속해서 연산 작업을 하는 것이다.

 

개발자

sha256과 해시에 대해서 충분히 알 것이라고 가정하고 얘기하도록 하겠다.

POW hashcash의 대략적인 로직은 위와 같다. 데이터를 올리고 싶은 사람의 data와 반복될 일 없는 nonce라는 값을 포함시켜서 sha256 해시를 만들고 그 해시의 앞자리에 difficulty 값만큼 0이 반복되는 해시가 나올 때까지 계속해서 돌리는 것이다.

 

6. 여기서 다시 짚어보는 채굴 행위란?

여기서 한번 더 큰 시점으로 채굴이라는 행위에 대한 이해를 해보자.

먼저 데이터를 올리고 싶은 수많은 이용자가 있을 것이고 채굴자는 이 중 수수료가 높은 데이터 위주로 데이터를 넘겨받아 POW를 통하여 해당 데이터를 블록체인상이 올릴 수 있도록 기여를 하고 보상으로 코인을 받는다.

근데 여기서 난이도라는 개념이 빠지면 또 섭섭하기 때문에 마지막은 채굴 난이도에 대하여 설명하면서 마치도록 하겠다.

 

 

 

7. 비트코인 채굴 난이도

채굴이 꿀이라는 소문이 여기저기 퍼지면서 채굴자는 기하급수적으로 늘어나기 시작했다. 채굴자가 많아진다면 아무래도 문제를 푸는 데 걸리는 시간은 더 짧아질 수밖에 없다. 하지만 비트코인은 채굴자가 많아지더라도 해당 상황을 인지하여 POW 문제를 해결하는 데 걸리는 시간을 절대적으로 동일할 수 있도록 난이도를 가변 변수로 설정해놨다. 즉 채굴자가 많아질수록 난이도가 높아지는 것이고 그렇게 되면 아까 POW에서 필요로 하는 앞자리 0의 개수를 점차 늘리는 것이다.

 

위 사이트는 과거 비트코인 채굴자의 채굴 이력을 볼 수 있는 페이지다.

해시를 보면 앞자리 0이 들어가 있는 것을 볼 수 있고 아래 당시 채굴 난이도(Difficulty)도 적혀있다.

 

위 그래프는 비트코인의 채굴 난이도를 의미한다. t는 trillion으로 조를 의미하며 난이도가 비트코인이 꿀이라는 소식이 여기저기 퍼지면서 점차 난이도가 상승하는 것을 볼 수 있다.

난이도가 상승할수록 채굴 대비 떨어지는 수익률이 줄어들기 때문에 자연스럽게 개인 채굴자는 줄어들 것이며 대형 채굴업체들이 다 같이 만족할 만큼의 인프라가 형성될 것이다.

채굴 비용이 너무 과하면 자연스럽게 채굴자가 줄어들 것이고 채굴 효율이 너무 좋으면 다시 채굴자가 늘어날 것이기 때문에 난이도라는 가변 변수 앞에 인간들이 통제된다고 볼 수 있다.(??)

 

위 사진은 난이도에 따른 해시값에 대한 예시다. POW - hashcash 방식이 대충 이런 느낌으로 돌아간다고 보면 된다.

 

8. 채굴 난이도 동적 조절

그럼 여기서 궁금한 것이 있다. 비트코인은 어떻게 난이도를 가변 변수로 설정해놨을까?

굉장히 복잡할 것 같지만 엄청 간단한 로직이라서 채굴 난이도 동적 조절에 대한 개념적인 부분까지 설명하고자 한다.

 

비개발자

채굴이 정상적으로 이뤄질 때마다 당시 시간이 기록된다.

비트코인의 이상적인 채굴 시간은 10분으로 설정되어 있는데 100번째 채굴이 10시 30분에 이뤄졌고 101번째 채굴이 10시 35분에 이뤄졌다면 예상했던 것보다 5분 빠르게 채굴된 것이기 때문에 난이도가 너무 쉬워졌다고 볼 수 있다.

블록체인 네트워크는 인지하여 난이도를 올리고 다음 블록은 해당 난이도를 반영하여 채굴하게 된다.

 

 

위의 그림과 같이 채굴이 너무 빠르면 난이도를 높여주고 채굴이 너무 오래 걸리면 난이도를 줄여주는 것을 볼 수 있다.

반응형
반응형

이번에 할 작업

생성한 릴레이 서버 정상 작동하는지 확인

 

따라 하기

전제 필요조건 : 유니티 월렛커넥트 SDK 연동된 프로젝트가 있어야 함.

 

본인의 도메인으로 직접 테스트 가능하다.

https://bridge.당신의도메인/hello 했을때 위와 같이 나오면 정상이다.

https://bridge.당신의도메인 이 주소를 릴레이서버 주소로 사용하면 된다.

 

유니티에서도 다음과 같이 사용 가능하다.

 

 

정상 작동한다.

굿

 

여담으로 Walletconnect 디스코드 채널에 세바스찬 아저씨가 있는데 이 아저씨가 릴레이 서버 설치 관련해서 문의를 담당하시는 것 같다.

도중에 나를 읽씹해버려서 큰 도움은 안되었으나 궁금한거 있으면 이 사람한테 물어보면 될듯!

 

 

Walletconnect 릴레이서버 배포 관련 정보

월렛커넥트 깃 주소 : https://github.com/WalletConnect/walletconnect-monorepo

월렛커넥트 디스코드 주소 : https://discord.com/invite/cB54BwPGru

 

월렛커넥트 릴레이서버 배포 관련 게시물

WalletConnect 릴레이 서버 만들기 - 1 Godday Cloudflare 연동

WalletConnect 릴레이 서버 만들기 - 2 GCP 서버프로젝트 세팅

WalletConnect 릴레이 서버 만들기 - 3 릴레이 서버 배포

WalletConnect 릴레이 서버 만들기 - 4 릴레이 서버 테스트

반응형
반응형

이번에 할 작업

Cloudflare 나머지 설정, 릴레이 서버 배포

 

따라 하기

클라우드플레어 > DNS 설정

 

Record를 위와 같이 3개 설정해야 한다.

본인 도메인이 relaynetwork.com이라면 Name에 bridge, relaynetwork.com, www가 들어가야 한다.

content에는 GCP에서 생성한 인스턴스의 외부 IP를 기입하도록 하자.

Proxy status는 전부 DNS only로 설정

 

 

https://dash.cloudflare.com/profile

위 링크로 들어가서 API Tokens 클릭

 

Create Token 클릭

 

Edit zone DNS > Use template 클릭

 

전부 그대로 두고 Zone Resources의 마지막 부분에 본인의 도메인을 선택

 

Continue 클릭

 

Create Token 클릭

 

토큰을 복사하고 어딘가에 저장해 두자.

다시 조회 못함

 

다시 GCP 프로젝트로 돌아와서 릴레이서버 프로젝트 루트에서 sudo make deploy 명령어 실행

이후 URL domain, Email, cloudflare API token 3개의 값을 입력해야 한다.

 

만약 본인의 도메인이 relaynetwork.com이면 아래와 같이 입력하면 된다.

Relay URL domain : bridge.relaynetwork.com

Email : 그냥 비우고 엔터

cloudflare API token : 발급받았던 토큰 입력

 

3가지 값을 입력하고 기다리면 알아서 열심히 설치한다.

한 20~30분 정도 걸림.

 

설치가 끝났다.

 

sudo docker ps 명령어로 구동 중인 도커 컨테이너를 확인해보자.

위와 같이 나오면 정상이다.

 

Walletconnect 릴레이서버 배포 관련 정보

월렛커넥트 깃 주소 : https://github.com/WalletConnect/walletconnect-monorepo

월렛커넥트 디스코드 주소 : https://discord.com/invite/cB54BwPGru

 

월렛커넥트 릴레이서버 배포 관련 게시물

WalletConnect 릴레이 서버 만들기 - 1 Godday Cloudflare 연동

WalletConnect 릴레이 서버 만들기 - 2 GCP 서버프로젝트 세팅

WalletConnect 릴레이 서버 만들기 - 3 릴레이 서버 배포

WalletConnect 릴레이 서버 만들기 - 4 릴레이 서버 테스트

반응형
반응형

이번에 할 작업

GCP 프로젝트 생성, 필수 라이브러리 설치, 릴레이 서버 Git 프로젝트 클론

 

따라 하기

전제 필요조건 : GCP 계정, 본인 컴퓨터에 gcloud 설치

 

GCP 프로젝트를 생성하도록 하자.

인스턴스 만들기 클릭

 

이름 적당히 정하고 리전은 본인 상황에 맞춰서 설정하자.

 

부팅 디스크 변경

 

운영체제와 버전 크기를 다음과 같이 설정하자

 

HTTP, HTTPS 둘 다 미리 체크하고 만들기 클릭

 

인스턴스 생성되면 glcoud 명령어 보기 클릭

 

명령어 복사

 

gcloud 명령어로 ssh 연결, gcloud 설치 안됐으면 하고오셈

 

Accept

 

정상적으로 접속

 

sudo apt-get update && sudo apt-get-upgrade -y

apt 업데이트

 

sudo apt-get install git -y && sudo apt-get install make -y && sudo apt-get install curl -y

Git, Make, Curl 설치

 

curl -fSL https://get.docker.com -o get-docker.sh

도커 설치 sh 파일 다운로드

 

sudo sh ./get-docker.sh

도커 설치 스크립트 실행

 

sudo service docker start

sudo docker swarm init

도커 서비스 시작, 도커 swarm 설정

 

sudo docker ps

도커 서비스 정상 작동하는지 확인

 

git clone https://github.com/WalletConnect/walletconnect-monorepo.git

월렛커넥트 git 클론

 

깃 클론 완료

 

최신 버전 작동 안 해서 위 커밋 내역 확인해서 클릭

 

해당 커밋 해시값 복사

 

git checkout 해시값

정상작동하는 커밋 버전으로 롤백

 

깃 프로젝트 루트에서 vi Makefile을 해서 Makefile을 까 보면 build-images라는 명령어가 있는데 거기에 build-img-caddy가 있는지 확인

 

Walletconnect 릴레이서버 배포 관련 정보

월렛커넥트 깃 주소 : https://github.com/WalletConnect/walletconnect-monorepo

월렛커넥트 디스코드 주소 : https://discord.com/invite/cB54BwPGru

 

월렛커넥트 릴레이서버 배포 관련 게시물

WalletConnect 릴레이 서버 만들기 - 1 Godday Cloudflare 연동

WalletConnect 릴레이 서버 만들기 - 2 GCP 서버프로젝트 세팅

WalletConnect 릴레이 서버 만들기 - 3 릴레이 서버 배포

WalletConnect 릴레이 서버 만들기 - 4 릴레이 서버 테스트

반응형
반응형

개요

블록체인 Dapp을 만들기 위해서 지갑 연동 라이브러리를 써야 하는데 WalletConnect를 많이 쓰는 것 같다.

근데 월렛커넥트 Dapp을 만들다 보면 유니티에서 예시용으로 사용하는 릴레이 서버를 사용해서 로그인하면 불안정해서 WalletConnect 측에서 제공한 코드를 사용해서 릴레이 서버를 직접 만들어야 한다.

https://github.com/WalletConnect-Labs/walletconnect-v2-monorepo

 

문제는 설명이 불친절해서 초고교급 인프라 능력자가 아니면 엄청 삽질해야 한다.

본인은 이거 구축하는데 2주 걸렸다...

솔직히 블로깅 해도 읽을 사람 별로 없는 내용인 거 나도 아는데 그냥 쓰고 싶어서 써본다.

이 글을 읽는 당신 나한테 굉장히 감사해라

 

이번에 할 작업

이번 릴레이 서버 구축 1편에서 할 작업은 Godaddy의 도메인과 Cloudflare를 연동하는 것이다.

 

따라 하기

전제 필요조건 : 도메인 필요, Cloudflare 계정

 

Cloudflare에서 본인이 구매한 도메인을 입력하고 Add site를 한다.

ex) relaynetwork.com

 

free plan 선택 후 Continue 누른다

 

그러면 DNS 탐색한다고 한다. 기다린다.

 

그러면 건들지 말고 Continue 누른다.

 

 

그러면 Godaddy에서 빨간색 부분은 지우라고 하고 파란색 부분을 추가하라고 한다.

 

Godaddy에서 도메인 즉당한거 사고 관리 페이지에서 ... 눌러서 DNS 관리로 들어간다.

 

네임서버 > 변경 클릭

 

내 자신의 네임서버 입력

 

아까 추가해달라고 한 2개 주소를 추가해준다.

 

체크하고 계속

 

다시 Cloudflare로 돌아가서 Done check nameserver 클릭

 

하단의 check nameservers 클릭

 

기다리라고 한다.

 

조금만 기다리면 위와 같이 연결 성공했다고 알려준다.

 

Walletconnect 릴레이서버 배포 관련 정보

월렛커넥트 깃 주소 : https://github.com/WalletConnect/walletconnect-monorepo

월렛커넥트 디스코드 주소 : https://discord.com/invite/cB54BwPGru

 

월렛커넥트 릴레이서버 배포 관련 게시물

WalletConnect 릴레이 서버 만들기 - 1 Godday Cloudflare 연동

WalletConnect 릴레이 서버 만들기 - 2 GCP 서버프로젝트 세팅

WalletConnect 릴레이 서버 만들기 - 3 릴레이 서버 배포

WalletConnect 릴레이 서버 만들기 - 4 릴레이 서버 테스트

 

 

 

 

 

반응형