기본 콘텐츠로 건너뛰기

현재 처리되는 블록체인을 더 확장하려면?




중앙집중식 처리를 참여자가 공동 처리 방식을 위한 블록체인 방식이 왜 선호 될까?

글로벌 서비스를 하려면 중앙집중식 방식은 서비스 기관이 대용량 서버를 구성해야 하고 이를 유지하는 비용이 점점 많이 들어간다.

참여자 공동처리 방식은 이런 비용을 나눠서 사용할 수 있으므로 서비스 비용을 줄일 수 있고 블록체인 기법을 도입하면서 보안 이슈를 해결할 수 있는 방안들이 만들어지고 있다.

대신 비즈니스를 적용하는 문제가 해결되어야 하는데 현재 진행 중인 블록체인 기법을 이용하는 서비스는 대부분 단건 계약을 통한 서비스로 한정되어 있다.

이는 서비스에 대한 요건을 단순화 할 수 밖에 없고 블록체인으로 만드는 서비스는 늘어나지만 서비스간의 연계 등의 이슈는 발생한다.

블록체인 서비스간의 연계를 처리하는 방법에 대한 연구가 진행되고 있어 조만간 다양한 서비스가 하나의 플랫폼에서 제공될 수 있어 많은 비즈니스에 활용 될 것으로 보인다.

한국에서 블록체인을 도입한다면 소액 자금결제시장에 먼저 도입해서 은행간 자금 결제 부분을 처리하는 것이 가장 좋을 수 있다.




댓글

이 블로그의 인기 게시물

golang overload 처럼 처리하기

go 언어에서는 함수명이 같을 경우 재선언 오류를 발생시킨다.
다른 메소드를 만들고 오버로드 처리하도록 설계해서 구현해야 한다.
오버로드 처리를 위해 type switch를 사용해서 들어오는 타입에 따라 메소드 호출하는 처리를 사용한다.
함수나 메소드 인자를 다양하게 처리하려면 []interface{} 로 정의해서 다양한 인자를 받아서 오버로딩 처리하면된다.


package main
import (  "fmt" )
func main() {  var p Person  p = Person{"dahl"}
 var s string = "moon"
 fmt.Println(" overloading  ", p.Overload(s))  fmt.Println(" overloading", p.Overload(nil)) }
type Person struct {  name string }
func (this *Person) Overload(args interface{}) string {  switch args.(type) {  case string:   return this.GetName2("moon")  case nil:   return this.GetName1()  default:   return " no match"  } }
func (this *Person) GetName1() string {  return this.name }
func (this *Person) GetName2(s string) string {  return this.name
}


golang에서 인터페이스 Type Assertion 처리하기

인터페이스: Type assertion 
인터페이스를 이용하여 메소드가 아닌 일반 변수에 할당하며 변수에 정의된 타입들에 대해 명확히 구분할 수 있다.   
Var 변수명 interface{} 로 정의하면 일반 변수정의 타입들도 전달할 수 있다.      //구조체 정의 var a BB = BB{X:10} 
//Type assertion 정의 var value interface{} 
   // 할당    value = a     //value.(타입)     fmt.Println("  type assertion ", value.(BB))  //출력값 {10}
리턴값을 interface{} 즉 type assertion 을 처리하도록 정의 func weird(i intinterface{} { if i < 0 { return"negative"      } return i }
func main() {

golang 에서 generic 처리하기

go언어에서 제너릭 처리를 위해서는 아래처럼  인터페이스를 정의하고 각 타입별로 구현을 한다.

슬라이스에 각 타입으로 컨버전하여 값을 넣고 슬라이스 순번대로 호출하면 자신의 타입에 맞는 메소들를 호출하여 처리한다.




type Integer16 int16
type Integer32 int32

type Calculator interface {
Calculate()
}

func (i Integer16) Calculate() {
/* behavior here */
fmt.Println(" Integer16 ", i)

}
func (i Integer32) Calculate() {
/* behavior here */
fmt.Println(" Integer32 ", i)
}


func main() {

container := []Calculator{Integer16(1), Integer32(2)}
fmt.Println("container   ", container)
container[0].Calculate()
container[1].Calculate()


}

// 결과값

ontainer    [1 2]
Integer16  1
Integer32  2