클라우드 컴퓨팅 정의


2011년 9월에 발간된 "The NIST Definition of Cloud Computing" 보고서에서 클라우드 컴퓨팅을 다음 5가지 특징으로 정의하고 있음.


1. 주문형 셀프 서비스(On-demand Self-Service)

   웹 기반 관리화면을 통해 사용자가 직접 서비스를 주문하여 사용할 수 있다.


2. 광범위한 네트워크 접근성(Broad network access)

    노트북, 데스크탑, 스마트폰, 테블릿, 사물인터넷(IoT)기기, 자동차 등 다양한 기기들을 통해 서비스에 접속할 수 있으며, 하나의 데이터센터, 국가 뿐만이 아니라 Region을 통해서 접속할 수 있다.


3. 리소스 공유(Resource pooling)

   사업자의 컴퓨팅 자원을 인터넷을 통해 여러 사용자들이 공유하는 형태로 이용할 수 있다. 


4. 신속한 확장성(Rapid elasticity)

   필요한 만큼 사용하다가 더 필요하면 확장(Scale Up)과 축소(Scale Out)을 몇 분 안에 할 수 있다.


5. 측정 가능한 서비스(Measured service) 

   사용하는 만큼 비용을 지불하는 방식이다.



클라우드 컴퓨팅 서비스 모델



IaaS(Infrastructure as a Service)는 인프라를 서비스 형태로 제공. 


PaaS(Platform as a Service)는 IaaS에 서비스개발을 위해 설치하는 운영체제, 개발환경까지 서비스 형태로 제공


SaaS(Software as a Service)는 MS Officce, Google Gmail과 같이 사용자는 서비스를 사용하기만 하면 되도록 애플리케이션 형태로 서비스 제공


일반적으로 거대한 구름으로 표현되는 클라우드는 누구나 접속 가능한 public 인터넷을 기반으로 누구나 접속가능한 클라우드 컴퓨팅 서비스를 제공하는 퍼블릭 클라우드와 공용 인터넷과 연동은 되지만 내부적으로 별도의 네트워크를 구축하여 조직의 멤버들만 사용가능한 프라이빗 클라우드로 구분한다.


'4차산업 > 클라우드' 카테고리의 다른 글

클라우드 컴퓨팅 특징  (0) 2019.01.20
블로그 이미지

오픈이지 오픈이지

시큐어코딩 교육/컨설팅 전문가 그룹


2018년 9월3일~ 2019년 2월28일까지 클라우드 기반 블록체인 전문가 과정 


20명 * 2개반 교육생, 

4명의 전문 블록체인 강사진, 

그리고 산업계의 쟁쟁한 10명의 멘토님으로 클라우드 기반 블록체인 애플리케이션 개발자 양성과정을 진행하고 있습니다.


열성적인 교육생들의 노력이 이제 슬슬 산출물로 나오고 있네요.

각 조별 프로젝트 주제입니다


1. 무역거래시스템(하이퍼레저 패브릭 기반)

2. 유니드 디지털 컨텐츠 유통 시스템(이더리움 기반)

3. 전투의 민족 전자투표 시스템 (하이퍼레제 패브릭 & 이더리움 기반)

4. 팝스토어(사진 및 이미지 창작물에 대한 저작권 거래 및 이력관리)(하이퍼레저 패브릭 기반)

5. 의료정보 전송시스템(하이퍼레저 패브릭 기반)

6. RC코인 (하이퍼레저 패브릭 기반)

7. 진품 마카 인증서 관리 시스템 (하이퍼레저 패브릭 기반)

8. 전자문서 위변조 방지(하이퍼레저 패브릭 기반)

9. 시그니처 사운드 음원서비스 (IPFS 및 하이퍼레저 패브릭 기반)


블로그 이미지

오픈이지 오픈이지

시큐어코딩 교육/컨설팅 전문가 그룹

도커(Docker)


"컨테이너 기반의 오픈소스 가상화 플랫폼"

Docker는 애플리케이션을 격리된 공간(컨테이너)에서 실행할 수 있도록 해주는 애플리케이션.



Docker Architecture Diagram



도커 이미지(Docker Image)

컨테이너에 넣을 프로그램 이미지 


도커 컨테이너(Docker Container)

실제로 실행되는 가상머신. 


도커파일(Dockerfile)

이미지를 생성하기 위한 배치파일


Registry

오픈된 중앙 저장소. 이미 만들어져 잇는 다양한 이미지들 저장 


# 가상머신


출처: http://www.docker.com/whatisdocker/

# Docker

출처: http://www.docker.com/whatisdocker/




Docker 컨테이너 조작 명령어 정리


docker start CONTAINER

docker stop CONTAINER

docker restart CONTAINER

=> 컨테이너 기동/중지/재시작


docker top CONTAINER

=> 컨테이너에서 실행중인 프로세스 확인


docker exec -it CONTAINER /bin/bash

=> 기동중인 컨테이너에 접속 

     exit로 종료해도 컨테이너는 실행


docker attach CONTAINER

=> 기동중인 컨테이너에 접속 

     exit로 종료하면 컨테이너도 중지


docker create IMAGE

=> 이미지로 부터 컨테이너 작성


docker ps            // 실행중인 컨테이너만 출력

docker ps -a        // 정지중인 컨테이너도 포함 

docker ps -aq      // 컨테이너의 해쉬 리스트만 출력

=> 컨테이너 리스트 확인


docker run -itd IMAGE       // 컨테이너를 만들어 띄우기만 

docker run -it IMAGE /bin/bash  // 이름이 없으면 자동 부여 

docker run -it --name NAME IMAGE /bin/bash  // 이름을 붙이고 bash로 접속

=> 이미지로 부터 컨테이너 가동




Docker 이미지 조작 명령어 정리



docker images

=> 다운로드한 이미지 리스트 출력


docker search TERM

=> 이미지 검색 


docker rmi  IMGE

=> 삭제할 이미지 이름을 열거하여 이미지 삭제




https://www.soday.net/wp/archives/371

'4차산업 > 블록체인' 카테고리의 다른 글

Docker 정리  (0) 2019.01.13
Golang Basic  (0) 2019.01.13
Hyperledger Fabric 특징과 구성요소  (0) 2019.01.03
curl 사용법  (0) 2018.12.08
이더리움 스마트 건트랙트 시큐어코딩  (0) 2018.12.05
[블록체인 05] 해싱  (0) 2018.04.10
블로그 이미지

오픈이지 오픈이지

시큐어코딩 교육/컨설팅 전문가 그룹

 [링크]제로 배우는 Go 프로그래밍

http://golang.site/go/article/1-Go-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%96%B8%EC%96%B4-%EC%86%8C%EA%B0%9C


Go는 2009년 구글에서 개발한 간결한 문법과 생산성을 제공하는 프로그래밍 언어이다. 


 golang의 특징


1. 간결한 문법 

    Go는 키워드가 25개로 간결하고 배우는데 다른 언어에 비해 상대적으로 시간이 적게 걸림.


2. 개발 속도 및 컴파일 언어

     컴파일 방식의 언어이며, 간결한 의존성 해석 알고리즘을 통해 다른 컴파일 언어에 비해 빠르게 동작하는 컴파일러 제공.


3. 가비지 컬렉션(GC)

    메모리를 관리해주는 가비지 컬렉터가 실행 파일 안에 내장 되어 있어 직접 관리하지 않아도 됨.


4. 동시성

    동시성을 지원하기 위해 고루틴이라는 것을 지원함. 스레드와 유사하지만 더 적은 메모리를 소비하여 더 적은 양의 코드로 구현할 수 있는 데이터 구조.


5. 타입시스템 

    계층구조가 없는 유연한 타입 시스템을 제공하기 때문에 리팩토링에 대한 부담을 최소화 하면서 코드를 재사용할 수 있음.


Golang의 특징을 정의해 놓은 다음 사이트의 내용을 정리함.

https://velog.io/@veloss/GoLang-%ED%83%90%EB%B0%A9%EA%B8%B0-golang%EC%9D%B4%EB%9E%80-vpjmr8weoa



구글 홈페이지의 Google Go팀이 작성한 많은 자료를 참조할 수 있음.

 Go 설치

 

 # wget https://storage.googleapis.com/golang/go1.7.linux-amd64.tar.gz

 # tar -xvzf go1.7.linux-amd64.tar.gz

 # mv go /usr/local


 # export PATH=$PATH:/usr/local/go/bin

 # echo $PATH

 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


 # go version

 go version go1.7 linux/amd64


 # mkdir $HOME/workspace

 # export GOPATH:$HOME/workspace






 Go 언어 구조 이해

패키지명이 main인 경우 컴파일러는 패키지를 공유 라이브러리가 아닌 실행 프로그램으로 만듦

 package main



Go 표준라이브러리인 fmt  패키지를 사용하기 위해 import

 import "fmt"



구조체 선언

 

 type Rect struct {

     width, height int

 }



func 키워드와 함수명사이에 "그 함수가 어떤 struct를 위한 메서드인지"를 표시. receiver라고 불리며, 메서드가 속한 struct타입과 struct 변수명을 지정. struct 변수명은 함수 내에서 마치 입력 파라미터 처럼 사용됨.

값으로  받음

 

 func (r Rect) area() int {

    return r.width * r.height

 }



포인트로 받음

 

 func ( r *Rect) area2() int {

    r.width++

    return r.width * r.height

 }

 


main() 함수

 

 func main() { 

     fmt.Println("Go Test")

     rect := Rect{10,20}

     area := rect.area()

     println(area)

     area2 := rect.area2()

     println(rect.width, area2)

 }




 실행하기

 # go run test.go

 
 또는

 # go build




'4차산업 > 블록체인' 카테고리의 다른 글

Docker 정리  (0) 2019.01.13
Golang Basic  (0) 2019.01.13
Hyperledger Fabric 특징과 구성요소  (0) 2019.01.03
curl 사용법  (0) 2018.12.08
이더리움 스마트 건트랙트 시큐어코딩  (0) 2018.12.05
[블록체인 05] 해싱  (0) 2018.04.10
블로그 이미지

오픈이지 오픈이지

시큐어코딩 교육/컨설팅 전문가 그룹

Hyperledger Fabric 특징


1. 허가형(Permissioned) 블록체인

    공캐키(PKI)활용한 멤버십 관리 서비스로 참여자 제한


2. 일반 프로그래밍 언어 사용

    Go, Java, Node.js 와 같은 언어 사용

    이더리움의 경우 Solidity라는 언어 사용


3. 암호화폐를 사용하지 않음

    특정 목적의 허가된 사용자만 참여하기 때문에 블록체인을 유지하기위한 보상체계가 필요하지 않음


4. 고성능

    병렬처리 기능으로 다수의 거래를 동시에 처리


5. 모듈러 아키텍처

    합의 프로토콜을 교체하여 사용할 수 있는 모듈러 아키텍처


6. 다중 블록체인 지원

    채널을 설정하여 네트워크내에서 채널별 독립적인 블록체인을 활용 할 수 있음.




Hyperledger Fabric  구성요소



1. Peer


하이퍼레저 패블릭 블록체인을 구성하는 네트워크 노드 중 하나.


분산원장과 스마트컨트랙트를 관리하는 역할을 함.


하나의 Peer는 하나의 체인코드와 분산원장을 가질 수 있음.

하나의 Peer는 여러개의 체인코드와 분산원장을 가질 수 있음.







2. ChianCode 


분산원장에 데이터를 기록하거나 읽는 작업을 수행함.

주로 비즈니스 모델에 맞는 DApp과 함께 개발되어 사용됨




블록체인 참여자는 체인코드를 통해 분산원장에 데이터를 읽거나 쓸 수 있지만 대부분 비즈니스 모델에 맞는 분산 애플리케이션(DApp)과 함께 개발되어 사용 됨. 




[그림] 분산 애플리케이션을 통한 분산원장 업데이트 과정


(1) 사용자가 트랜잭션 생성을 요청함.

(2) DApp은 Peer와 연결함.

(3) 체인코드 실행을 요청함.

(4) Peer는 체인코드를 실행함.

(5) 보증허가된 트랜잭션을 DApp에게 반환함.

(6) DApp은 허가된 트랜잭션을 Orderer에게 전달함.

(7) Orderer는 트랜잭션을 정렬하여 최신블럭에 트랜잭션을 포함시킴.

(8) Orderer는 새로 생성된 블럭을 네트워크의 Peer에게 전달함.



3. 시스템 체인코드 


스마트 컨트랙트 <-- 애플리케이션 레벨에서 원장에 접근하는 일반적인 체인코드

시스템 체인코드 <-- 하이퍼레저 패블릭 시스템 레벨에서 실행.  

                           기본제공됨.



QSCC(Query System ChainCode) : 블록체인에 저장된 데이터를 읽어올 때 사용되는 시스템 체인코드 


CSCC(Configuration System ChainCode) :  채널을 설정 할 때 사용되는 시스템 체인코드


LSCC(LifeCycle System ChainCode) :  체인코드 설치 부터 인스턴스화 까지 모든 과정을 수행하는데 사용되는 시스템 체인코드 


ESCC(Endorsement System ChainCode) : 보증정책을 담당하는 시스템 체인코드


VSCC(Validation System ChainCode) :  블록을 검증할 때 사용되는 시스템 체인코드





'4차산업 > 블록체인' 카테고리의 다른 글

Docker 정리  (0) 2019.01.13
Golang Basic  (0) 2019.01.13
Hyperledger Fabric 특징과 구성요소  (0) 2019.01.03
curl 사용법  (0) 2018.12.08
이더리움 스마트 건트랙트 시큐어코딩  (0) 2018.12.05
[블록체인 05] 해싱  (0) 2018.04.10
블로그 이미지

오픈이지 오픈이지

시큐어코딩 교육/컨설팅 전문가 그룹

티스토리 툴바