본문 바로가기
etc/블록체인 뉴딜일자리사업

블록체인 이해하기 / Git 명령어

by vellahw 2023. 5. 2.

 

💭 교육 1일차

서울시에서 주관하는 뉴딜일자리사업인 [메타버스 핵심기술, 블록체인 기반의 기술사업화 전문인력 정 2차] 과정에 참여하게 되었다. 메타버스와 블록체인은 꺼지지 않는 불씨와도 같으니 궁금했고 알고 싶었다. 취업 준비를 하면서 내 실력에 의문이 너무나도 많고 더 배우고 싶고 일단 좀 더 코드를 짜보고 싶단 마음이 많이 들게 되어 지원하게 됐다. 

3개월의 짧은 기간 동안 초심을 잃지 않고 꾸준함을 유지하기 위해 매일매일 배운 것을 기록 해보기로 결심!

 

오늘은 블록체인을 이해하는 시간을 가졌고 간단한 cmd와 git 명령어를 배웠다. git 명령어는 얼추 알고 있긴 했지만 강사님께서 재미있게 비유 해주셔서 빡! 기억할 수 있었다 ㅎㅎ

 

 

 

 

 

💡 블록체인?

데이터를 나누어져있는 블록(block)들에 저장하는데 이 블록들이 chain 처럼 연결되어 있다고 해서 블록체인이라고 부르게 된다. 

 

 

예를 들어 위와 같은 상황으로 쉽게 블록체인을 이해할 수 있다.

A가 B에게 만원을 빌렸다는 상황이다. 그런데 B는 A를 잘 알지 못해 선뜻 돈을 빌려줄 수 없어 둘은 계약서를 작성한다.

이 계약서를 각각 작성하여 각자의 컴퓨터에 저장한다.

 

이렇듯 블록체인은 거래기록을 중앙서버가 아닌 네트워크 상에 분산되어 있는 블록들에 분산하여 저장한다.

 

 

 

그런데 A가 B와의 거래를 증인 삼아줄(?) C를 영입한다. 둘 사이의 계약이 맺어지고 A가 가지고 있는 B와의 거래 계약서를 C의 컴퓨터에도 저장된다.

여기서 컴퓨터에 저장하는 이유는 블록체인은 숫자, 알파벳으로 조합된 무작위의 암호를 가지고 있기 때문에 이 암호를 계산하여 풀기 위해선 컴퓨터가 필요하기 때문이다.

 

만약 A가 B에게 만원을 주지 않으려고 "난 3천원만 빌렸어!"라고 주장하며 C에게 거짓을 말하라고 하고, B와 거래한 계약서를 변조한다면? 당연히 2:1로 주장을 하는 상황에 계약서까지 3천원으로 변조되었기 때문에 B는 만원을 받을 수 없게된다.

하지만 이러한 거래 내역, A가 C와 짜고 변조까지 한 내역은 투명하게 공개된다.

 

블록체인에서 데이터를 위변조하기 위해선 절반 이상의 수가 쉽게 말해 찬성.. 참여 해야만 조작할 수 있다. 

하지만 블록체인은 2천개 이상의 컴퓨터에 계약서(데이터)를 저장하고 그 2천개 이상의 컴퓨터에 나뉘어진 데이터를 조작하려면 1천개의 데이터를 조작해야만하는데 이것은 현실적으로 불가능하다.

이러한 이유로 블록체인은 데이터 위변조가 어려워 안전성과 무결성을 보장한다는 장점이 있는 것이다.

 

 

 

블록체인의 보안성

블록체인은 해킹이 절대 불가능한 기술이 아니다. 오히려 여러 블록에 분산하여 저장하는 만큼 한 블록만 뚫으면 다 알 수 있는 것이니 해킹이 쉬울 수 있다.

하지만 위에 쓴 것과 같이 데이터 위변조가 아주 어렵다. 따라서 블록체인의 보안성에 대해 말하고자 한다면 "해킹에서 자유롭습니다! 안전합니다!"가 아니라 데이터를 위조/변조 할 수 없다고 말해야 할 것이다.

 

 

 

 

 

블록체인과 암호화폐

동일한 상황에서 D가 이 거래에 참여하겠다고 한다. D는 A, B, C 그 누구와도 계약을 맺지 않은 채 '내 서버에 그 계약서 저장해~ 제공해줄게~'라는 입장인 것이다.

 

이렇듯 D는 데이터를 분산 저장할 수 있게 해준다. 따라서 대가가 필요한 것이고 이 대가가 암호화폐인 것이다.

 

 

 

 

 

블록체인 적용 사례와 적용할 수 있는 서비스

블록체인의 대표적인 적용 사례로 백신 예방접종증명서 COOV와 모바일운전면허증이 있다.

이 두 사례는 모두 '실시간' 서비스를 제공할 필요가 없다. 위변조가 불가능한 데이터만 보여주면 되기 때문이다.

그리고 블록체인 기술로 실시간 서비스를 제공할 수 있는 속도가 나오지 않는다고 한다. 따라서 데이터 기반의 의료정보와 같은 비실시간적 서비스에 적용하는 것이 바람직 하지 않을까.

이 파트를 들으며 블록체인 관련 업체 의료 도메인이 많은 회사가 많은 이유에 대해 이해할 수 있었다!

 

 

 


 

 

💡 환경변수 추가하기 (Path 추가)

path 추가란... 쉽게 말해 '바로가기' 만들기이다.

 

 

윈도우 검색창에 '시스템 환경 변수 편집'을 검색한다.

 

 

환경 변수를 클릭하고 

 

아래 시스템 변수의 Path를 선택하고 편집을 클릭한다.

 

 

새로 만들기를 클릭 후 '바로가기' 등록할 어플리케이션의 exe 파일이 있는 폴더 경로를 입력하면 된다.

나 같은 경우는 크롬을 등록해보았고 확인을 누르고 적용 후 터미널을 열어 chrome을 입력하면 새로운 크롬창이 열리는 것을 볼 수 있다.

 

cmd

 

 

 


 

 

💡 cmd 명령어

명령어 설명
code . VSCode를 통해 현재 폴더 기준 모든 파일들 열기
cd 경로 이동
cd /  루트 폴더
mkdir 폴더명 폴더 생성
tab 키 자동완성 기능(현재 터미널에서 입력한 단어/명령어 한정)
&& 엔터 기능

 

 

폴더 생성

 

 

위와 같이 명령어를 입력하면

 

VSCode 오픈!

 

 

 


 

 

💡Git 명령어

명령어 설명
git init - 깃 초기화(initialize)
- .git 폴더를 생성
- git으로 형상관리를 할 수 있게 해줌
git add 파일명 git state에 파일 올리기 (커밋 전 해야할 것!)
git commit -m '커밋메세지' 커밋 메세지와 함께 커밋 
git log 로그 확인

 

 

.git 폴더는 반드시 숨긴 항목에 체크 해주어야만 볼 수 있다.

 

 

테스트를 위한 txt 파일 생성

 

 

 

 

👀 Tip!

gitHub에서 레포지토리를 README 자동 생성 없이 생성하면 git 명령어를 카피해서 쓸 수 있다.

커밋까지 완료 했으니 branch~push, 그리고 밑의 세 줄을 복사해다 붙이면 gitHub에 정상적으로 커밋된 것을 확인할 수 있다.

 

 

 

 

 


 

댓글