다시 돌아온 혁신성장 청년인재 집중양성 사업에서

듣는 수업을 정리해보려고 합니다.

오늘 정리할 내용은 Hyperledger Fabric의 첫시간을 정리할 예정입니다.

그럼 시작해 볼까요?


하이퍼 레저 첫 시간이라 흐름을 이해시키기 위해 참치 장사이야기, 각종 국가기관을 예로 들어 서로의 관계를 통해 하이퍼 렛저를 쉽게 받아드릴 수 있도록 설명해주셨어요

이후 Hyperledger Fabric의 기본용어를 Hyperledger Fabric 공식 문서를 통해서 요점만 쏙쏙 설명해주셨는데 이를 기반으로 간단하게 설명해볼게요 ~

Hyperledger Fabric란?

At the heart of a blockchain network is a distributed ledger that records all the transactions that take place on the network.

이를 단순히 말하게 되면 분산 원장 솔루션용 플랫폼(기밀성을 가진 블록체인 기술)을 의미합니다.

 

분산 원장이란? 

At the heart of a blockchain network is a distributed ledger that records all the transactions that take place on the network.

즉, 네트워크에서 발생하는 모든 트랜잭션을 기록하는 것을 '분산원장'이라고 말합니다.

 

 

Hyperledger Fabric에서 블록의 생성 방식

① Peer에서 블록을 생성 → ② 근처에 있는 노드들에게 해당 블록에 대한 트랜잭션을 알림 이 트랜잭션이 생성된 후 

 

ChainCode(CC)란? 

Chaincode is software defining an asset or assets, and the transaction instructions for modifying the asset(s); in other words, it’s the business logic.

체인 코드는 자산을 정의하는 소프트웨어이며 자산을 수정하기위한 거래 지침입니다. 즉, 비즈니스 로직입니다

이더리움과 비교해본다면 이더리움 상에 Smart Contract의 역할을 하게 되는 것이다.

 

ChainCode의 특성 중 은둔성

Hyperledger Fabric employs an immutable ledger on a per-channel basis, as well as chaincode that can manipulate and modify the current state of assets (i.e. update key-value pairs). A ledger exists in the scope of a channel

Hyperledger Fabric은 채널별로 변경 불가능한 원장과 자산의 현재 상태를 조작하고 수정할 수 있는 체인코드(Key-Values Update)를 사용합니다. 여기서 체인코드의 역할이 등장하게 됩니다.

 

체인코드는 호출되면  현재 가지고 있는 자산에 대해 C(Create), R(Read), U(Update), D(Delete)이 가능하다. 즉 해당 자산의 데이터를 생성, 읽기, 수정, 삭제가 모두 가능하다는 의미이다. 근데 불변성을 가졌는데 어떻게 수정과 삭제가 가능하냐고 물어볼 수 있는데 이는 데이터의 값은 변화할 수 있으나 변경시킨 내용에 대해서 추가적인 기록이 남게 된다는 의미이다.

결국엔 *월드 스테이트에 블록이 기록될 때 여기 기록된 내용은 최종 데이터의 형태가 저장되게 된다.

 

※ 이 때 마지막 블록의 내용과 월드스테이트의 저장된 내용이 같은 것은 아니다. 왜냐하면 최종 수정된 데이터의 내용을 월드 스테이트에서 저장하고 있기 때문이다.

 

*월드 스테이트

: 트랜잭션에 의해서 체인코드가 호출될 때 상태 및 데이터 저장을 위한 Key-value 데이터베이스 

 

해당 내용을 여러가지 국가 기관에 비유하여 시나리오를 작성하고 이를 설명해주셨습니다.

자세한 내용들은 차후에 다른 게시물에서 정리해보도록 하겠습니다.

 

PKI란?

PKI는 네트워크에서 보안 통신을 제공하는 인터넷 기술 모음입니다. HTTPS를 사용하는 것이 PKI입니다.

Membership Service Provider(MSP)란?

HyperFabric에서 만든 PKI, 모든 네트워크 참여자들에게 책임을 부여하고 행위를 추적하는 역할을 합니다.

즉, 책임성이 보장하고 네트워크에 인증서비스를 제공하는 역할을 합니다.

 


해당 게시물은

Hyperledger Fabric의 공식문서(https://hyperledger-fabric.readthedocs.io/)에서 

기재된 순서대로 필요한 부분만 찝어서 설명해주셨어요 ~

오늘은 여기까지 !

이번 시간은 자바스크립트를 본격적으로 나가기 전에 워밍업정도라고 생각하시면 될 거 같습니다.

해당 과정에선 자바스크립트를 구현하면서 자동완성을 사용하기 위해 이클립스에 "tern"을 추가했어요.

자바스크립트를 시작하기 전 이클립스는 "tern"기능을 추가해서 자동완성 기능을 사용해보세요. :D

(저는 IntelliJ를 이용해서 하기 때문에 따로 추가하지 않았어요 ~)


기본구조

<script type="text/javascript">
    스크립트 내용 삽입
</script> 
  • script는 html 파일에서 <head> 태그 내에 위치하게 작성
  • 해당 스크립트 내용은 순차적으로 실행
  • <body>에 사용해도 되지만 <head>에서 사용하는 게 바람직함

alert

alert("알리고 싶은 message");
  • alert은 경고메세지가 웹페이지에서 나타나게 된다.
  • 알리고 싶은 메세지는 문장이 들어가도 되고 수식이 들어가도 된다.

변수선언

var __변수명__ = ' ';
  • 자바처럼 int, char와 같이 타입이 정해지지 않고 var로 데이터 타입을 지정
  • String형 객체를 입력할 때에는 ''를 사용해서 입력

document.write()

document.write(______);
  • 내용부분은 자바처럼 사용하면 되고, ""를 사용해도 되고 ''도 사용가능
  • html에서 사용되는 모든 태그 사용 가능

typeof()

typeof(변수);
  • 해당 변수의 데이터 타입을 출력

window.prompt(), prompt()

window.prompt(_________);
prompt("___", "_");
  • 입력할 수 있는 창을 생성하여 값을 입력받음
  • prompt는 앞에는 요구하는 메세지, 뒤에는 받을 내용에 대한 예시를 표시
  • prompt로 입력된 값들은 모두 "String"타입
  • prompt의 타입을 바꾸기 위해선 "Number()"나 "parseInt()"와 같이 형변환을 해주는 메소드를 사용

window.load()

window.load=fuction(){

}
  • 웹페이지가 로드시 바로 나오는 창이 나올 수 있게 해주는 것
  • 출력방식은 document.writedocument.body.innerHTML을 사용

window.open()

window.open('url명', 'value명', '스펙 '); 
  • url은 src와 같은 역할로, 이미지나 url를 삽입
  • value는 해당 객체를 나타내는 이름
  • spec은 해당 객체의 크기, 스크롤 바 등을 설정

eval()

eval("수식");
  • 문자열을 코드로 인식

confirm()

confirm("메세지 내용");
  • 확인하는 메세지창을 띄워서 예 / 아니오 버튼을 통해 확인
  • 예는 1을, 아니오는 0을 반환

함수 선언

/*일반적인 함수선언*/
function 함수명(인자값1, 인자값2, .....){

    
    return 반환값;
}

/* 리터널 방식 */
함수명  =  function(인자값1, 인자값2, ....){

    return 반환값;
}
  • 인자값, 반환값은 있어도 되고 없어도 됨
  • 가장 흔한 함수 호출법은 인자값과 반환값이 없는 경우임
  • 호출은 함수명();으로 하면 됨

익명의 함수선언

(function(){

})();
  • 구분시킬 때 사용

 


오늘은 간단하게 JAVASCRIPT에서 동작하는 변수와 입출력, 함수선언에 관해 알아보는 시간을 가졌습니다.

아직은 처음부분이라 어렵지 않게 진행하고 있는데 앞으로 어떻게 될지는 잘모르겠습니다 ㅠㅠ

오늘은 여기까지 :D

(해당 내용에 대한 자세한 코딩은 https://github.com/Choi-Jinhong/BlockchainEngineerCourse-fninedu에서 확인이 가능합니다.)

 

Choi-Jinhong - Overview

Choi-Jinhong has 3 repositories available. Follow their code on GitHub.

github.com

 

 

 

 

오늘은 어제에 이어서 기초 태그들에 대해 알아보는 시간을 가졌습니다.

오늘도 태그를 알아보도록 가보겠습니다 :D


<input type="radio">

개요

- 단일 선택이 가능한 체크박스
- name을 통해 전체적은 분류를 해주고, value를 통해 해당 버튼의 의미를 나타냄
- 같은 radio끼리는 같은 name을 사용해주어야 함

사용방법

<input type="radio" name="__________" value="__________">

실제 사용

결과 값


<input type="checkbox">

개요

- 다중 선택이 가능한 체크박스
- 여러가지를 선택해야 할 경우에 많이 사용
- radio와 마찬가지로 name, value를 사용

사용 방법

<input type="checkbox" name="_________" value="________">

실제 사용

결과 값


<input type="number">

개요

- 숫자를 입력받아야 할 경우 사용
- 사람의 키, 몸무게 등을 입력받을 때 많이 사용
- name은 해당 객체를 나타내는 이름
- min과 max는 최소와 최대를 설정
- step은 up/down 버튼을 통해 클릭당 올릴 수 있는 수
- value는 초기 보여주는 값

사용 방법

<input type="number" name="_________" min="_____" max="_____" step="_____" value="____">

실제 사용

결과


<input type="date">

개요

- 날짜를 입력받는 태그
- 여러 속성값이 있으나 차후 배울 예정

사용방법

<input type="date" >

실제 사용

결과


<select> & <option>

개요

- 드롭다운 형식의 입력을 받을 때 사용
- 하나만 지정 가능
- value 속성을 option을 분류하여 사용가능

사용방법

<select>
       <option>목록1</option>
       <option>목록2</option>
       <option>목록3</option>
</select>

실제 사용

결과


<audio>

개요

- 웹페이지에 오디오를 넣고 싶을 때 사용
- .mp3, .wav 등의 확장자명의 파일을 src에 입력
- controls를 이용해 해당 오디오 조작 가능

사용방법

<audio src="____________________" controls="controls"></audio>

실제 사용

결과


<video>

개요

- 웹페이지에 영상을 넣고 싶을 때 사용
- .mp4 등의 확장자명의 파일을 src에 입력
- controls를 이용해 해당 오디오 조작 가능
- width와 height를 통해 영상크기 조절
- onmousehover/onmouseout을 통해 영상에 마우스가 위치할 경우 재생, 벗어날 경우 일시정지가 실행
- onmousehover/onmouseout 사용하기 위해선 한 번의 재생을 해줘야 함

사용방법

<video src="______" controls="controls" width="300" height="200" onmouseover="this.play()" onmouseout="this.pause()"></video>

실제 사용

결과


오늘 오전에 배운 내용은 여기까지 입니다.

다양한 태그를 배웠고 해당 태그들은 자주 사용될 태그이니 숙지하고

앞으로 필요에 따라 사용할 수 있게 하면 좋을 거 같습니다. 

 

오늘은 여기까지 :D

(해당 내용에 대한 자세한 코딩은 https://github.com/Choi-Jinhong/BlockchainEngineerCourse-fninedu에서 확인이 가능합니다.)

 

Choi-Jinhong - Overview

Choi-Jinhong has 3 repositories available. Follow their code on GitHub.

github.com

'[혁신성장_청년인재_집중양성_사업] > [HTML]' 카테고리의 다른 글

HTML 태그 #1  (0) 2020.06.10

이번 2020 혁신성장 청년인재 집중양성블록체인 시스템 엔지니어 양성과정을 참여하게 되어

앞으로 교육 받은 내용에 관해 업로드할 예정입니다.


교육 소개

4차 산업혁명 선도 8대 분야의 우수인재를 집중 양성하여 국가 기술경쟁력 강화 및 산업체 인력수요를 해소하고 양질의 일자리 창출을 목표로 하며 블록체인 비즈니스 기본 이론 및 웹 기술 개발 교육, 이더리움 스마트 컨트랙트 활용 등 블록체인 실무 핵심 기술을 학습하고, 실무프로젝트를 통해 현업에서 필요한 블록체인 개발 전문가 양성 프로그램입니다. 

  즉, 블록체인을 배울 기회를 제공하고, 이 기술을 가지고 취업을 도와주는 정부사업 교육과정입니다.

 

교육대상

- 기졸업자 
- 졸업 예정자, 2020년 3월 이전 졸업가능한 자(학력, 전공 무관)
- 만 34세이하(내국인)

 

이러한 교육과정 참가 시 "여기서 배우는 걸 얼마나 활용가치가 있는가"를 생각해보고 참가하게 됩니다.

이번 2020 혁신성장 청년인재 집중양성 과정에서의 교육과정은 다음과 같습니다.

 

교육과정

블록체인 엔지니어 교육, 프로그래밍 기초(자바, DB), 웹개발 기초 & 개발(HTML, javascript, AJax, spring, node.js), 리눅스, 도커 이더리움의 교육 진행
이후엔 각 챕터별 조별 프로젝트를 진행하여 각각의 언어가 어떻게 수행되는지를 개발하는 시간을 가짐

 

웹과 보안 그리고 블록체인까지 배울 수 있다는 점과 각 단계별 프로젝트를 진행한다는 점에서

저와 같이 프로젝트 경험이 적은 전공생에게 프로젝트 경험을 쌓을 수 있는 기회라고 생각해 참가하게 되었습니다.

 

자세한 사항은 fninedu 홈페이지에서 확인이 가능합니다.
http://www.fninnoedu.com/pc/free_edu/curriculum

HTML 기본 구조

HTML 기본 구조
HTML을 작성시 기본적으로 적용해야할 구조
<!DOCTYPE html
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>

</body>
</html>
  • <!DOCTYPE html> // HTML5의 기본 Document Type을 의미
  • <html lang="en"></html> // html 코드를 작성하는 공간을 할당하는 것을 의미
  • <meta charset="UTF-8"> // UTF-8은 한글에 최적화 되어있는 문자 체계, Encording 시 한글 깨짐 현상이 없음
  • <title>Title</title> // 제목을 입력하는 곳으로 상단바에 나타남
  • <body></body> // 실제 코드가 동작하는 영역
실행결과

HTML TAG

태그란?
웹문서를 내가 원하는 방식으로 표현하는 방법

 

<!--주석 내용-->

해당 코드에 대한 설명을 하기 위한 코드
실제 코드가 실행될 때 이 부분은 실행되지 않음
코드 부분 <!--주석 내용-->
실제 사용 예시

<pre>

<!-- __________________________ -->
<pre></pre>
<b></b>
<br>
<hr>
<hr color="#______" width="___" size="__" align="_____">
<p></p>
<font></font>
<font size="__" color="#______" face="__________">
<img>
<img alt="_______" src="______"> 
<style></style>
  • <!--_______________--> // HTML에서 주석처리 방법
  • <pre></pre> // 해당영역은 내가 짠 코드모습 그대로 줄바꿈처리가 됨
  • <b></b> // 글씨를 굵게 표시
  • <hr> // 수평선 생성
  • <hr color="#______" width="___" size="__" align="_____"> //수평선에 색(color), 길이(width), 두께(size), 정렬(align)을 설정
    ※ color는 #을 이용해 세밀하게 조정, 특정 색(red, green, yellow...)으로 지정
    ※ witdh, size는 px 단위로 지정(단위길이를 설정하지 않을 시)
    ※ align은 Left, Right, Center 등으로 지정
  • <font></font> // 글씨체를 설정
  • <font size="__" color="#______" face="__________"> // 글씨의 크기(size), 색(color), 글꼴(face)을 설정
    ※ face는 Impact과 같이 특정 글꼴명을 입력
  • <img> // 사진과 같은 이미지 파일을 삽입할 때 사용
  • <img alt="_______" src="______"> // 이미지에 대한 설명(alt), 이미지 파일의 위치(src)
    ※ alt는 이미지 로드를 실패 했을 때 대신 나오게 되는 텍스트
    ※ src는 이미지 파일의 위치(동일 선상의 폴더일 경우에는 ../를 이용해서 찾아야함
  • <style></style> // 해당 태그에 내에 있는 요소들에 여러가지 스타일 요소들을 적용가능
  • <style="background: ___; font-size:___ "> // 해당 태그내의 요소들에 배경색과 폰트 크기를 변경

'[혁신성장_청년인재_집중양성_사업] > [HTML]' 카테고리의 다른 글

HTML 태그 #2  (2) 2020.06.11

+ Recent posts