Vue & MVVM Pattern

What is Vue?


Vue.js 공식사이트에서는 Vue.js를 ‘점진적인 JavaScript 프레임워크’(The Progressive JavaScript Framework)라 소개한다. Vue.js의 코어 라이브러리는 React와 유사하게 데이터 바인딩과 컴포넌트에만 집중한다. 그러나 복잡한 대규모 애플리케이션을 개발하려면 라우팅, 상태 공유, 컴포넌트 간의 통신 등을 위해 별도의 수많은 도구가 필요해진다. Ember나 Angular는 이런 도구를 프레임워크에 내재하는 형태로 접근한다. React는 도구를 제공하는 역할을 커뮤니티를 통한 생태계에 맡기고 있다.

Vue.js는 중간적인 형태로 접근을 한다. 코어는 최소한의 기능만 제공하고, 필요한 다른 도구는 별도로 제공한다. Vue.js의 도구는 모두 공식적으로 관리되고 완성도 높은 문서가 함께 제공된다.

Vue
출처: Vue

위에서 Vue.js는 프레임워크라고 말했지만, ‘점진적인’ 말에 주목해야 한다. 즉, Vue.js는 작은 화면단 라이브러리 역할부터 큰 규모의 웹 애플리케이션 개발을 돕는 프레임워크 역할까지 점진적으로 적용할 수 있는 프론트엔드 프레임워크를 말한다. Vue.js는 MVVM 패턴에서 View와 Model을 연결해주는 ViewModel 계층에 초점을 둔 프레임워크이다. 뷰모델을 통해서 양방향 데이터 바인딩이 가능하게 해주며, 뷰 계층을 좀 더 간단하고 유연하게 디자인하게 해준다. 즉, 모델과 뷰의 동기화 역할을 한다.


MVVM Pattern


MVVM 패턴이란, Mode - View - ViewModel의 줄임말로, 로직과 UI의 분리를 위해 설계된 패턴이다. 웹페이지는 돔과 자바스크립트로 만들어지게 되는데 돔이 View 역할을 하고, 자바스크립트가 Model 역할을 한다. 뷰모델이 없는 경우에는 직접 모델과 뷰를 연결해야 한다. 그러나 뷰모델이 중간에서 연결해 주는 것이 MVVM 모델이다.

MVVM Pattern
출처: MVVM Pattern

사용자 인터페이스에 해당하는 뷰(View)와 뷰에 표시되는 데이터(Model) 그리고 뷰(View)와 모델(Model) 사이에서 여러 비즈니스 로직을 처리하는 뷰-모델(View-Model)로 분리하여, 유지보수를 쉽게하고 뷰(View) 처리에 다양한 기능을 사용할 수 있게 되었다.

MVVM Pattern을 총 3개로 나눌 수 있다.

  • Model (비즈니스 규칙, 데이터 접근, 모델 클래스)
  • View (사용자 인터페이스)
  • ViewModel (모델과 뷰 사이의 인터페이스)

뷰모델(ViewModel)은 모델(Model)과 뷰(View)사이에 인터페이스 역할을 한다.
뷰모델은 모델의 데이터를 뷰에 바인딩하고, 명령어를 사용하여 모든 UI의 동작들을 다룬다.
뷰는 뷰모델의 프로퍼티에 제어값을 바인딩하며 차례대로 모델 객체에 있는 데이터를 노출시킨다.

예를 들어 사용자가 뷰에 있는 계산기 프로그램을 사용하여 결과값을 요청하는 버튼을 클릭했을 때, 뷰모델이 요청받은 동작을 수행한다. 뷰모델의 연산 기능을 담당하는 명령어는 연산 후 모델의 데이터 값을 변경시킨다. 만약 뷰모델의 속성값이 변경되면(모델의 데이터 값이 변경되면) 새로운 속성 값들은 데이터 바인딩(data binding)과 알림(notification)을 통해 자동적으로 뷰에 적용된다.

간단한 코드로 보면 다음과 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<template>
// View
<div id = “app”
{{message}}
</div>
</template>


<script>
// Model
var model = {
message : “뷰 생성"
}

// ViewModel
new Vue({
el : ‘#app’,
data : model
})

</script>

MVVM Pattern
출처: MVVM Pattern


Todo 앱으로 MVVM Pattern으로 개발하기


먼저, 부모 역할을 하는 Todolist.vue가 있는데, 여기서 Todo List App을 클릭하면, 라우터를 통해 홈(‘/‘)으로 이동한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<template>
<div id="todolistapp">
<div id="header" class="header">
<router-link to='/'><h2>Todo List App</h2></router-link>
<router-link to='/note'><p>Note</p></router-link>
</div>

<br>

<router-view></router-view>
</div>
</template>

<script type="text/javascript">

export default {
name : 'todo-list',
}
</script>

아래는, Todo를 추가할 수 있는 Todo.vue인데, 여기서는 InputTodo.vue와 List.vue를 보여준다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<template>
<div>

<input-todo />

<br>
<br>

<list></list>
</div>
</template>

<script>
import InputTodo from './InputTodo';
import List from './List';

export default {
name : 'todo',
components : { InputTodo, List }
}

아래는, InputTodo.vue이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<template>
// View
<div>
<input class="input" type="text" id="task" v-model="todo"
placeholder="입력 후 엔터!" v-on:keyup.enter="addTodo">
<span class="addbutton" v-on:click="addTodo">추 가</span>
</div>
</template>

<script type="text/javascript">
import eventBus from '../EventBus'

// ViewModel
export default {
name : 'input-todo',
// Model
data : function() {
return { todo : "" }
},
methods : {
addTodo : function() {
console.log(this.todo);
eventBus.$emit('add-todo', this.todo);
this.todo = "";
}
}
}
</script>

아래는, List.vue이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<template>
// View
<ul id="todolist">
<li v-for="a in todolist" :key="a.id" :class="checked(a.done)"
@click="doneToggle(a.id)">
<span>{{ a.todo }}</span>
<span v-if="a.done"> (완료)</span>
<span class="close" v-on:click.stop="deleteTodo(a.id)">&#x00D7;</span>
</li>
</ul>
</template>

<script type="text/javascript">
import eventBus from '../EventBus'

// ViewModel
export default {
created : function() {
eventBus.$on('add-todo', this.addTodo);
},
// Model
data : function() {
return {
todolist : [
{ id:1, todo : "vue", done:false },
{ id:2, todo : "react", done:true },
{ id:3, todo : "python", done:false },
{ id:4, todo : "java", done:false },
]
}
},
methods : {
checked : function(done) {
if(done) return { checked:true };
else return { checked:false };
},
addTodo : function(todo) {
if (todo !== "") {
this.todolist.push(
{ id:new Date().getTime(), todo : todo, done:false });
}
},
doneToggle : function(id) {
var index = this.todolist.findIndex((item)=>item.id === id);
this.todolist[index].done = !this.todolist[index].done;
},
deleteTodo : function(id) {
var index = this.todolist.findIndex((item)=>item.id === id);
this.todolist.splice(index,1);
}
}
}
</script>

What Is Stablecoin?

What Stablecoin Is


A stablecoin is cryptocurrency with stable prices.

It is pegged to another stable assets such as gold or U.S dollar in order to minimize volatility. For instance, because Tether(USDT) is pegged to the U.S dollar, it is traded for $1 USD, which is a blockchain based asset.


Functions of Stablecoin


There are three functions of stablecoin:

  • Medium of exchange: the ability to trade goods and services without bartering
  • Store of value: means of maintaining wealth over time
  • Unit of account: measurement unit to define and compare market values


How Stablecoin Works


Stablecoin holds collateral of some type and manages the supply to help incentivize the market to trade the coin for no more or less than $1. For Tether or TrueUSD, the concept is to hold actual dollars in reserve that are redeemable for the token. For others, like Dai, they hold crypto assets in reserve and have a lending system.


Stablecoin Market Map


Stablecoin Market Map
출처: Stablecoin Market Map

암호화폐는 화폐 혁명을 이루어 낼것인가?

인류사에 혁명적인 사건, 화폐의 발명


인류사에 있어서 화폐의 발명은 가장 중요한 사건 중 하나다.
화폐는 대부분 진보의 근원이었다. 이를 통해, 교환과 분업과 협력이 가속화되어 문명이 발전했다.

화폐의 발명이후 그 형태는 지속적으로 변화해왔다. 지폐가 디지털화되어 가상화폐가 등장했고, 2009년에는 드디어 탈중앙화 암호화폐가 선보였다. 암호화폐가 만들어진 배경에는 기존화폐가 해결하지 못하는 문제가 있었고, 암호화폐는 결국 필요에 의해 나온 것이다.


기존화폐의 문제점


그럼, 기존화폐의 문제는 무엇인가?

그것은 바로 인플레이션의 위험이다.

그리스와 로마제국을 포함해 끝나지 않을 것 같던 강대한 문명들을 망하게 한 것이 인플레이션이었다. 화폐를 무분별하게 발행하고, 화폐 가치를 절하시키면서 결국 초인플레이션을 초래했다. 마침내 화폐는 신뢰를 잃고 결국 그 문명은 붕괴되었다.

그러나, 정부의 재정수입 원천으로서 인플레이션은 항상 매력적인 선택이었다.

경기침체 시 중앙은행의 무리한 금리인하와 신용창출은 경기의 단기적 회복을 위해 인플레이션의 리스크를 감수하는 꼴이다. 더 나아가 민간 중앙은행이 시행하는 국가의 통화정책은 금융세력들의 이익에 따라 휘둘리고 있다. 또 민간 중앙은행은 금융세력들의 이득을 위해 유동성을 무책임하게 늘림으로써 세계 경제를 잠재적 위험에 빠트리고, 이로 인해 각 나라마다 피곤한 환율전쟁을 치르고 있다. 게다가 미국은 그간 달러의 패권을 이용해 다른 나라들을 상대로 많은 횡포를 벌여왔다.

이런 상황을 참다못해 나온 것이 암호화폐다.

암호화폐는 중앙집권을 타파하고, 임의로 발행량을 늘리는 인플레이션의 위험을 총 발행량 사전 설정을 통해 원천 차단했다. 하지만, 미국의 화폐 역사에서 봤듯이, 다수 민간은행들의 화폐 발행으로 인한 화폐의 범람 역시 많은 문제를 노출했다. 암호화폐 또한 이 문제에서 자유롭지 않다.

중앙은행 존재 자체가 문제가 잘못된 것은 아니다.

많은 대안 중 최선책으로써, 중앙은행의 화폐 발행과 은행들의 부분지급준비제도는 경제 발전을 촉진하고, 특히 경제위기 시 침체된 경기를 활성화시키는 순기능이 있어 경제사에서 중요한 역할을 했다는 사실은 인정해야 한다.

그렇다면 문제는 무엇인가?

문제는 필요 이상으로 과도한 화폐 발행과 신용창출을 할 수밖에 없는 사회정치적 구조다.

금융세력은 적절한 수준의 화폐 발행과 신용창출로는 만족하지 않으며, 끝없는 부의 창출을 위해 지속적으로 통화량을 늘리려 한다. 오늘날 미국의 금권정치 구조에서는 정부가 금융세력에 휘둘릴 수밖에 없다.


암호화폐의 출현


이러한 상황에서 암호화폐의 탄생은 그 의미가 크다.

이제 정부 주도의 화폐에만 의존하지 않고 인플레이션의 위험이 없는 민간화폐도 함께 사용할 수 있게 되었다. 사람들에게 선택권을 주어 두 종류의 화폐가 서로 견제와 균형을 이루고, 서로의 장단점을 상호보완할 수 있는 구조가 마련되었다. 더 크게는 기존 화폐로 인한 인플레이션이 발생할 경우 이에 대한 대안이 생긴 것이다.

화폐는 애초에 중앙집권의 통제 없이 생겨났다.

화폐 발행량, 유동량, 환율이 모두 시장의 보이지 않는 손에 의해 결정되었다. 이후 사회가 성장함에 따라 정부의 손으로 넘어갔다. 화폐가 경제의 힘에서 정치의 힘으로 넘어간 것이다.

이 체제에 도전해 혁명을 일으킨 게 암호화폐다.

기존 화폐를 조절하는 기득권자들의 이익을 위해 감행하던 인플레이션이 감소하고, 더 나아가 소득과 부의 불평등이 완화될 단초도 마련했다. 이 두 과제가 현대사회가 안고 있는 가장 심각한 문제임을 감안할 때 암호화폐의 의미를 파악할 수 있다.


이런 해결책을 가진 암호화폐가 화폐혁명을 이루기 위해, 어떤식으로 접근하면서 기존 화폐의 문제점을 보완할 수 있을까?


금융의 새로운 패러다임, 암호화폐(성숙기)

암호화폐 성숙기


성숙기에는 암호화폐가 과연 어떤 역할을 하고 있을까?
과연 달러를 제치고 세계 기축통화가 될 것인가?

이에 대한 답을 얻기 위해서는 과거와 현재, 그리고 미래의 달러를 보자.

미국은 지난 37년간 한번도 무역흑자를 낸 적이 없고, 재정수지도 지난 40년간 4년을 제외하곤 계속 적자 행진이다. 무역적자와 재정적자를 합쳐 ‘쌍둥이 적자’라고 하는데, 미국은 이 쌍둥이 적자를 겪고 있는 듯 하다.

1985년 플라자 합의를 통해 무역경쟁국인 일본의 엔화와 독일의 마르크화를 절상시켰음에도, 미국은 수출상품의 경쟁력 회복에 실패했다. 이러한 과도한 무역적자의 누적은 국제 금융 시스템과 세계 경제의 안전성까지 위협하고 있는 실정이다.


증대하는 미국의 부채


대규모 재정적자의 원조는 레이건 대통령이다. 레이건은 집권하자마자 부자들의 세율을 50%나 삭감했다.
레이건이 감세와 재정적자의 원조였다면, 부시 부자는 이를 집대성하고 완성했다.

미국의 다양한 부채와 주정부 등 지방자치단체가 발행한 지방채도 많이 있다.

트럼프가 대규모 감세안 통과로 세수로 매년 1000억 달러 정도 줄어드는 상황에서 예산까지 늘면서 2018년 2월 현재 미국의 국가부채는 21조 달러에 달하고 있다.

달러는 태생적으로 트리핀 딜레마를 갖고 있어 부채가 영원히 지속될 수 없다. 미국이 지금은 겉으로는 강해 보이지만, 국가부채가 계속 늘어나면 과거의 제국들처럼 쇠락의 전철을 밟을 수밖에 없다.


드디어, 암호화폐의 시대가 온다


이렇게 위태로운 달러가 암호화폐의 성숙기가 되면 어떻게 될까?

성숙기에 암호화폐는 더 이상 새로운 기술이 아니며 각국 정부에서도 이를 적극 활용하게 될 것이다. 이 시대에는 종이화폐가 사라지고 전적으로 디지털 화폐의 시대가 된다. 예로, 2010년 30%였던 우리나라 스타벅스의 현금 결제율이 2018년에 20%로 떨어졌고, 사무실 지역에서는 3%가 채 안된다.

암호화폐의 중요도가 증가하고, 시세가 오랜 기간 안전성을 유지함에 따라 국제무역에 있어서 암호화폐가 패권을 쥐게 될 것이다. 대부분의 국가는 무역을 할 때 어느 한 곳에 속박되지 않은 중립적인 화폐로 하는 것을 좋아한다. 또한 세계 각국의 준비통화에서도 암호화폐의 비중이 높아진다. 이렇게 되면 세계 경제는 바야흐로 ‘달러 스탠다드’에서 ‘암호화폐 스탠다드’로 넘어갔다고 볼 수 있다.

성숙기에 가장 화두로 떠오르는 경제 주제는 세계화폐다. 각국의 정부는 극도로 밀접하게 움직이고, 점차 세계정부와 같은 하나의 단합된 조직을 형성한다. 국가간 무역과 금융거래가 날로 증가하면서 환전의 번잡함과 비효율성이 대두되고 세계화폐의 필요성이 제기 될 것이다.

19개의 유럽 국가들은 하나의 화폐인 유로화를 사용하면서 국가 간 무역과 각국의 경제 운영이 단일화폐로도 문제없이 돌아감을 입증했다. 세계화폐는 유로화의 범주를 유럽에서 세계로 넓히는 개념일 뿐이다.


암호화폐, 과연 세계화폐가 될 것인가?


세계화폐라는 개념을 통해 안정된 국제 통화체제를 생각한 것은 경제학자인 케인즈였다.

1944년에 케인즈가 세계화폐에 대한 제안한 내용은 다음과 같다.

국제청산동맹이 각 가맹국의 국제무역 비중을 고려해 일정 한도의 방코르를 배정한다. 각 가맹국의 수입초과가 누적되면 방코르가 부족해지는데, 이때는 벌금(이자)을 물고 방코르에 대한 자국의 화폐 가치를 내려야 한다. 그렇게 되면, 해외자본이 유입돼 적자분을 채울 수 있다.

반대로 수출이 많아 방코르가 쌓일 경우에도 일정액 이상이 쌓이면 해당하는 금액에 대해 벌금을 물고 화폐 가치를 올려야 한다. 그렇게 되면 자본이 유출된다.

케인즈는 이 시스템으로 불균형 자본유출, 변동성, 부족한 총 수요, 불 필요한 실업사태가 나타나는 현상을 줄이고 국제무역의 균형을 유지할 수 있다고 여겼다.

국제무역 불균형으로 인한 무역분쟁과 환율전쟁을 막으려 했던 케인즈의 취지를 살리려면 다양한 환율정책을 수용하고 각국 관료들의 자유 재량권을 일정 수준 제한하는 규칙을 마련해 새로운 국제청산동맹을 만들어야 한다.

2008년 글로벌 금융위기를 맞아 세계 금융 시스템에 경종이 울리자 케인즈가 설계했던 세계화폐를 디지털 화폐로 실행하자고 주장하는 사람이 있는데, 그는 전 그리스 재무장관인 야니스 바루파키스다. 그에 따르면, 케인즈가 제안했던 세계화폐 방코르는 국제교역량에 따라 수급을 조정하는 알고리즘을 갖춘 디지털 화폐로 대체하고, 그 발행과 관리 책임을 IMF가 지도록 하면 된다.


세계 경제의 불균형을 막는다는 취지를 살리기 위해 중요한 것은 두 가지다.

  • 첫째, 무역불균형에 대한 과세다.

    • 가맹국의 디지털 화폐 계정에 무역수지 적자와 흑자를 반영해, 수입 누적이나 수출 누적에 따라 국제청산동맹에 추가부담금을 내도록 하는 것이다.
  • 둘째, 자본 유출입 비중에 따라 각국의 민간 금융기관 역시 국제청산동맹에 같은 비중으로 부담금을 내도록 하는 것이다.

    • 무역불균형에 대한 부담금 부과는 무역흑자국 정부가 내수활성화에 더 힘을 쏟도록 하고, 무역적자국이 흑자국에 대해 수출을 늘리는 원동력이 될 수 있다.
    • 외국환시장 참가자들은 무역수지 불균형에 대응하기 위해 더 빠르게 환율조정에 나설 것이며, 만성 무역수지 불균형의 주요 원인이돼온 자본유출 문제도 어느 정도 해결될 것이다.


케인즈의 제안이 제대로 이뤄지려면 오늘날과 같은 ‘디지털 기술’‘외환시장’이 필요했다. 지금은 모든 요건이 갖춰졌다.

바루파키스에 따르면, 달러가 기축통화의 짐을 내려놓을 때, 그 뒤를 잇는 건 세계화폐이자 디지털 화폐인 암호화폐가 될 것이다. 라고 했다. 과연 언제쯤 달러가 기축통화인 시대가 막을 내릴 것인가?


참고: 화폐혁명

금융의 새로운 패러다임, 암호화폐(성장기)

암호화폐 성장기


2018년 2월 기준으로 거래소에 상장된 암호화폐가 약 1500개가 넘고, 모든 암호화폐의 시가총액은 400조원을 웃돌고 있다. 암호화폐가 너무나도 많다. 그러나, 이 수많은 암호화폐 중 결국 극소수만이 살아남아 세상에 영향력을 미칠 것이다. 20년전 인터넷 붐이 일어나던 시절에 수많은 닷컴 기업들이 출현했지만, 결국 극소만만 살아남아 세계를 지배하고 있듯이, 암호화폐 시장도 마찬가지가 될 것이다.


암호화폐 통합과 독과점


암호화폐 시장의 이러한 치열한 경쟁이 가져올 결과는 어떤 모습일까?
–> 분화된 시장의 통합과 독과점으로 귀결될 공산이 크다.

전 골드만삭스 대표이자 전 백악관 국가경제위원장 게리 콘(Gary Cohn)은 암호화폐의 미래에 대해 ‘언젠가 전 세계에서 통용될 수 있는 단일 암호화폐가 등장할 것’이라는 긍정적 전망을 했다. 채굴비용이나 전기세와 무관한 글로벌 암호화폐를 사용하게 될 것이라고 밝혔다. 비트코인과 같이 지나치게 많은 자원을 소모하는 암호화폐 대신 좀 더 효율적이고 대중적인 암호화폐가 나올 것이라고 전망했다.

검색엔지 시장에서는 구글이, 소셜미디어 시장에서는 페이스북이 최고가 되었다. 그럼, 암호화폐 시장에서는 어떤 기업이 최고가 될 것인가? 인터넷의 본질적인 힘이 확장성인 만큼 잘되는 서비스는 국경을 넘어 전 세계로 확장되면서 독과점의 형태로 발전할 것이다.

지금껏 IT업계에서는 1세대의 실수를 보완한 2세대 기업이 시장을 장악하는 경우가 많았듯, 암호화폐 역시 1세대의 문제점을 보완한 2세대가 주인공이 될 가능성이 크다.

현재 비트코인의 후속주자로 나오고 있는 새로운 암호화폐들을 보면 두 종류다.

  • 라이트코인처럼, 비트코인을 보완하러 나온 보완재
  • 비트코인과 공생하기 위한 게 아니라 기존 암호화폐의 기술적 한계점을 해결한 업그레이드된 대체재

다양한 대안이 존재하는 상황에서 궁극적인 선택은 암호화폐의 사용자들이 내릴 것이다. 현재 암호화폐 사용자들은 기술력과 활용 가능성이 아닌 가치 상승 가능성을 기준으로 코인을 선택하고 있다. 하지만, 장기적으로는 화폐 자체의 활용성과 확장성을 기준으로 삼을 것으로 보인다. 화폐의 존재 목적은 투자용 상품이 아니라 교환매체와 가치저장의 수단이기 때문이다.


암호화폐 독과점의 이득과 위험


한두 개 화폐가 독과점을 한다는 것은 무슨 의미를 가질까? 이는 우선 ‘대중화’를 뜻한다.
수많은 암호화폐 가운데 시장이 어느 한 가지 화폐를 선택하게 되면, 그것은 암호화폐를 진정으로 대중화시킬 것이다.


암호화폐 독과점의 이득


1. 해당 암호화폐는 그것으로 무엇이든 살 수 있을 정도로 널리 활용될 것이다.

편의점에서 아침을 사 먹고, 택시를 타고 출근하고, 서점에 책 사고하는 이 모든 것을 그 암호화폐 하나로 가능해질 것이다. 원하면, 월급도 해당 화폐로 받을 수 있다.

또한, 해당 화폐를 더욱 안전하게 보관할 수 있는 암호화폐 전문은행들이 생길 것이다. 세계 어디를 가든 이 화폐 하나만 있으면 환전할 필요가 없으며, 지금 종이화폐로 할 수 있는 모든 것을 암호화폐가 대체하게 될 것이다.


2. 이 화폐가 장기적으로 시장을 독점할 것이라는 신뢰가 생기면 화폐 가치가 치솟을 것이다.

현재 가장 유명한 암호화폐는 비트코인이지만, 비트코인은 기술적인 한계로 인해 1초에 네 건의 거래만 처리할 수 있고, 또 갈수록 비싸지는 채굴비용으로 인해 장기적 활용 가능성에 대해 의문점이 많은 상황이다. 그럼에도 비트코인의 시가총액은 200조원을 바라보고 있다.

그러면 현재의 기술적인 제한을 해결해 세상 모든 사람들이 문제없이 사용할 수 있는 암호화폐가 나오면 어떻게 될까? 그 암호화폐는 진정한 장기적 신뢰를 받아 지금의 100배 이상인 1경, 10경의 시가총액을 갖게 될 것이다.


암호화폐 독과점의 위험


모든 업계가 다 그렇다. 성공기업 하나에 실패기업 열 개가 따르는 법이다. 안타까운 사실은 주식시장 등의 기존 투자 분야들에 비해 암호화폐는 특히 일반 투자자들에게 유독 큰 손실을 안긴다는 것이다.

주식시장에서는 기업들이 비교적 초기단계에 실패하여 정리된다. 대중이 투자하기전, 상장하기전에 정리가 된다. 그러나, 암호화폐의 경우는 다르다. 시장의 검증이 전혀 없었던 수많은 창업기업이 대중으로부터 투자를 바로 받기 시작한다. 즉, 크게 봤을 때 암호화폐 시장은 주식시장보다 훨씬 위험한 투자처다.


시장을 주도하는 암호화폐가 되기 위해서는 무엇이 필요할까?


1세대 암호화폐인 비트코인을 포함한 현 암호화폐들이 지닌 기술적 한계점을 해결해야 한다.

1. 가장 대표적인 기술적 문제는 1초에 감당 가능한 거래수다.

  • 현재 비트코인의 3~7건이 아니라 Visa에서 감당 가능한 2000건을 능가해야 한다.
  • 더 나아가서는 전 세계 사람들이 일상의 모든 거래를 암호화폐로 진행하더라도 감당할 수 있을 수준이 되어야 한다.
  • 또한, 보안, 운영 소요비용과 에너지 등의 이슈들을 해결해야 한다.

2. 세금 문제가 투명하게 이뤄질 수 있어야 한다.

  • 암호화폐로 사업하는 기업이 결제를 위해 암호화폐를 주고받거나, 개인이 암호화폐를 증여받을 때, 어떤 통제도 안 되는 구조를 정부가 허용할 수 없다.
  • 정부의 암호화폐 규제가 완화되는 가장 중요한 조건은 세금이 현재보다 더욱 투명하게 걷히는 것이다. 이를 위해서는 암호화폐의 익명성이 정부에게만 예외가 되는 방식이 필요할 수 있다.

3. 특정 이익추구 단체에서 중앙집권하지 않는 탈중앙 분산관리 오픈소스여야 한다.

  • 근본적으로 이익추구 단체에서 화폐를 운영하는 것은 정부의 중앙집권 화폐와 다를 바 없다. 오히려 정부의 지지가 없기에 훨씬 변동성이 크며 집권단체의 이익에 편향된다.
  • 사카시 나카모토가 비트코인을 만든 주목적은 탈중앙 화폐의 실현이며, 이를 중앙집권 없이 운영하기 위한 수단이 블록체인 기술이다.
  • 따라서, 암호화폐의 본질은 블록체인 기술의 사용이 아니라 탈중앙 화폐에 있다는 점을 간과해서는 안된다.

4. 현존하는 암호화폐들과 반대되는 성격의 것이다.

  • 미래의 선두 암호화폐는 적정한 수준의 인플레이션 기반 화폐가 될 가능성이 있다.

    • 비트코인은 총 화폐 발행량 2100만 BTC로 고정되어 있고, 미발행 화폐의 발행 속도는 갈수록 줄어드는 통화 수축형 디플레이션 기반 화폐다.
    • 하지만 디플레이션에서는 시장이 성장해가도 화폐가 한정되어 있기 때문에 화폐의 가치가 계속 올라간다.
    • 화폐의 구매력이 현재보다 미래에 올라갈 것이라 예상되면 사람들은 그 화폐를 사용하지 않고 소지하려 한다. 이는 소비를 늦추고, 화폐 유통량을 줄여 경기침체로 이어진다.
    • 현재 비트코인을 포함한 대부분의 암호화폐가 디플레이션 기반이기 때문에, 장기적으로 보관하는 자산으로는 좋은 투자 대상이 될 수 있지만, 일상의 소비를 위한 화폐로는 근본적으로 부적절하다.
  • 암호화폐가 꼭 지금과 같아야만 하는 것은 아니다.

    • 암호화폐도 기존 화폐들처럼 화폐 발행량을 제한시키지 않고, 매해 세계 GDP 성장 수준에 맞추어 늘려가는 것을 상상해볼 수 있다.
    • 암호화폐도 이런 기준으로 화폐 발행정책을 설정한다면 인플레이션이나 디플레이션이 없는 통화로 운영될 수 있다.
    • 어쩌면 밀턴 프리드먼이 주장하던 k% 준칙이 드디어 알고리즘화되어 실현되는 시대가 올 수도 있다.


정부의 전략 전환, 규제 아닌 상생


각국 정부의 규제에도 불구하고 세계적으로 암호화폐 사용 비중이 올라감에 따라 정부는 규제보다는 상생으로 전략을 전환할 것이다. 초기 인터넷으로 음악 영화 공유하는 것을 규제에서 합벅적으로 소비할 수 있게 구조화 시킨것과 같다.

정부와 암호화폐와의 공식협력이 이뤄지면 민간 암호화폐가 정부 차원에서 인정받는 결제수단이 되고, 더 나아가 법정화폐로 자리 잡게 될 것이다.


암호화폐의 단점


사회에 인플레이션이 심화될수록, 암호화폐는 주목을 받게 되지만, 성장기에서는 반대로 암호화폐의 본질적인 단점이 주목을 받게 된다. 바로 중앙집권 없이는 경제적 재난상황에 대응하지 못한다는 점이다. 공황이 들이닥쳐 암호화폐의 유통량이 급감하면 화폐로서 시장의 신뢰를 순식간에 잃게 된다. 이러한 사건을 계기로 중앙은행의 화폐 발행과 유통량 조절의 순기능이 재조명받게 될 것이다.

밀턴 프리드먼과 케인즈는 경제에서 심각한 공황이 있을 시에는 정부와 중앙은행의 개입이 필요하다는 것에 동의했다. 암호화폐도 이러한 개입이 필요한 상황이 오게 되며, 이때 암호화폐 발행량정책에 대한 다양한 논의가 일어날 것이다.


암호화폐의 가능성


성장기가 암호화폐의 한계를 현실적으로 받아들이는 기간이기는 하지만, 크게는 확실한 입지구축과 경제에서 의미 있는 비중을 차지하게 되는 엄청난 발전의 기간이 될 것이다.
암호화폐의 발전에 따라 주요 암호화폐 간의 시너지 효과가 생겨날 것이다. 가령 정부발행 암호화폐와 민간발행 암호화폐 간의 시너지도 예상된다.

정부발행 암호화폐에 인플레이션이 발생하면, 사람들이 민간발행 암호화폐로 재산을 옮기고, 민간 암호화폐의 가격 변동이 극심해지면 정부발행 암호화폐로 재산을 옮길 수 있다.

결국 자산관리에 있어서 다양한 선택권이 생기는 것이며, 안 좋은 상황에서도 자신의 재산을 보호할 수 있는 헤징이 되는 것이다.

금융의 새로운 패러다임, 암호화폐(도입기)

암호화폐 시장의 각 단계


패러다임을 가져오는 모든 신기술은 각 단계를 거쳐 성장한다.

도입기 - 성장기 - 성숙기 - 쇠퇴기

심리학자 토니 로빈스에 따르면, ‘사람들은 앞으로 1년 안에 이뤄낼 수 있는 일들을 과대평가하고, 20년 안에 이뤄낼 수 있는 일들을 과소평가한다’ 말한다. 암호화폐 발전도 이와 같을 것이다. 암호화폐가 나오기 시작한지 몇년 안된 지금은 여러가지 기술적, 사회적으로 문제가 많지만, 하나씩 문제를 해결해 발전하게 되면 지금과는 상상할 수 없는 영향력을 갖게 될 것이고, 이에 따라 현재의 금융 생태계에 엄청난 영향을 끼칠 수 있는 ‘패러다임 시프트’ 기술이 될 것이라고 생각한다.


암호화폐 도입기


현재(2018년 11월) 우리는 암호화폐에 도입기에 있다고 볼 수 있는데, 시장에 약 2,000개의 암호화폐가 있기 때문이다. 그야말로, 암호화폐의 춘추전국시대라고 할 수 있다.

앞으로 나올 암호화폐의 종류를 크게 3가지로 나누면 다음과 같다.

  • 비트코인과 같은 본질적으로 화폐의 디지털화를 꿈꾸는 암호화폐
  • 주식회사 형태의 기업들에서 출시하는 코인 또는 토큰의 암호화폐
  • 정부기관들에서 발행하는 암호화폐


1. 비트코인과 같은 본질적으로 화폐의 디지털화를 꿈꾸는 암호화폐


이런 암호화폐들은 비영리재단으로 운영되고, 화폐를 만드는 주체의 이익에 국한되지 않도록 설계될 것이다. 또한, 오픈소스로 프로젝트를 공개하기 때문에, 누구나 참여하여 문제를 해결하고 공유할 수 있다.

예를 들어, 이더리움은 이더리움 재단(Ethereum Foundation)에서 비영리로써 운영되고, 모두 오픈소스 프로젝트들이다. 이러한 암호화폐들은 자유주의 사상을 밑바탕에 깔고 탈중앙화 분산관리를 지향하고 있다. 특정한 상황이나 정해진 업계에서만 사용하는 코인이 아니라 현재의 종이화폐 역할을 할 수 있는 범용 암호화폐다. 즉, 이것은 사토시 나카모토의 의도에 가장 가까운 것이다.


2. 주식회사 형태의 기업들에서 출시하는 코인 또는 토큰의 암호화폐


기업은 ICO 형태로 암호화폐를 발행할 것이다.

기업이 이런 방식으로 암호화폐를 발행하게 되면 2가지 이득이 있다.

  • 쉽게 자금을 유치할 수 있다.
  • 토큰의 수요가 많아지면, 해당 토큰을 대량으로 보유하고 있는 기업의 자산가치 또한 상승한다.

예를 들어, 어떤 대기업에서 자체 토큰을 발행한다면, 그 기업의 이미지로 인해 시작부터 엄청난 수요를 갖고 만들어질 것이다. 많은 사람들은 그 토큰을 많이 구매하게 될 것이고 이에 따라 그 대기업은 많은 자금을 쉽게 모을 수 있을 것이다.

기업이 ICO를 통해 자금을 ICO를 통해 자금을 유치하는 이유는, 그 자체의 시뇨리지 효과와 더불어 화폐의 가치상승을 노리기 때문이다. 시뇨리지란, 화폐를 발행함으로써 얻는 이익으로, 화폐의 액면가에서 제조비용을 뺀 금액을 말한다.

또한, 화폐 발행 이후, 토큰에 대한 수요가 많아지게 되면, 해당 토큰을 대량으로 보유하고 있는 기업의 자산 가치가 올라가게 된다.

이런 기업들은 기업의 이익에만 관심이 있지, 화폐의 디지털화나 자유주의 사상에는 큰 관심이 없다.


3. 정부기관에서 발행하는 암호화폐


각국 정부와 중앙은행은 암호화폐에 대해 다양한 방식으로 대응하고 있다.

국가 주도로 암호화폐 발행은 이미 시작되었고, 그 발행 동기와 화폐의 형태 역시 다양하다.

암호화폐 발행을 적극적으로 하는 국가의 종류는 다음과 같다.

  • 초인플레이션으로 경제난을 경험한 남미국가들
  • 달러에 적대적인 반미국가들

앞으로 국가 단위의 암호화폐와 경제권역별 암호화폐들이 가세할 예정이다. 이로써, 각 경제블록은 현재 글로벌 패권을 쥐고 있는 달러로 무역을 하지 않고, 자신들만의 화폐를 활용해 무역하려 할 것이다.

현재 암호화폐 발행을 진행하고 있는 대표적인 국가들을 살펴보자.


1. 에콰도르

2015년 에콰도르는 세계 최초의 암호화폐 발행을 시도한 국가가 되었다. 미국 달러를 공식화폐로 사용하던 에콰도르는 달러와 동일한 가치를 갖는 국가 암호화폐 ‘전자화폐 시스템’의 발행 계획을 공표했다. 발행 주체가 에콰도르 중앙은행이다. 비록 달러와 동일한 가치를 두기에 독자적인 화폐 개념은 아니지만, 이로써 에콰도르는 화폐 발행권을 갖게 되었다.


2. 베네수엘라

진정으로 독자적인 가치를 갖는 암호화폐의 첫 국가 발행은 베네수엘라다. 석유 기반 가상화폐 ‘페트로’를 발행한 베네수엘라는 일부 전문가들의 우려와 달리 사전판매 첫날인 2018년 2월 20일 7억 3500만 달러의 페트로 판매에 성공했다.

페트로의 총 발행량은 1억 토큰으로, 약 60억 달러어치다. 1페트로의 판매단가는 베네수엘라산 원유 1배럴 가격을 기준으로 한 60달러다. 이후 화폐 가치는 유가시장 변동에 따라 변한다. 베네수엘라의 마두로 대통령은 페트로를 통해 베네수엘라의 독립성과 경제 주권을 강화할 것이라고 했다. 주로 관광, 휘발유 판매와 석유 거래가 주로 이뤄질 예정이라고 했다.

마두로 대통령은 페트로를 통해 최저 수준으로 떨어진 경제와 과잉 인플레이션을 해결하기를 바라고 있다. 베네수엘라는 미국과 유럽연합의 경제제재 속에서 심화한 경제난과 유동성 위기를 겪고 있다.


3. 이란

대표적 반미국가로써, 정부 주도의 암호화폐 발행을 서두르고 있다. 이란의 중앙은행인 포스트뱅크가 클라우드 기반 암호화폐를 개발하고 있다.


4. 터키

‘투르크코인’ 또는 ‘국가 비트코인’ 이라는 정부 차원의 암호화폐 발행을 검토하고 있다.


5. 러시아

석유 기반 가상화폐 ‘크립토루블’ 발행을 결정했다.

러시아 또한 반미국가로써, 암호화폐 개발에 뛰어든 것은 서방의 제재망을 뚫을 금융통로가 절실하기 때문이다. 러시아가 크림반도를 합병한 2014년 이후 러시아 기업들은 서방 금융기관을 통한 거래가 사실상 차단됐다. 해외에 진출한 러시아 기업들이 활동하기 위해서는 자금을 주고받을 수단이 필요한 상황이다. 이래저래 달러에 대한 도전이 거세지고 있다.


이어 튀니지, 세네갈 등이 같은 결정을 내렸고, 스웨덴, 중국, 영국, 네덜란드, 캐나다, 싱가포르 중앙은행은 물론 연준까지 암호화폐 발행 가능성을 검토하고 있는 것으로 알려졌다.


암호화폐에 대한 정부의 규제


도입기는 무엇보다 정부의 규제가 가장 심할 시기다.

암호화폐가 출현하게 되면서, 국가에 위협이 되는 것은 크게 2가지다.

  • 화폐 발행량과 유통량
  • 세금


1. 화폐 발행량과 유통량

정부가 갖는 권력 중 하나가 화폐 발행권인데, 이를 통해 국가의 경제를 조절할 수 있다. 그러나, 암호화폐처럼 정부의 손 밖에 있는 주체가 화폐를 발행한다면 정부는 독점 권한을 잃는다. 국가가 발행하지 않은 화폐가 시장에 추가로 유통되는 것이기에 화폐 유통량이 제어가 안 되고, 더 크게는 국가경제의 조절도 불가능하다.


2. 세금

정부가 갖는 또 다른 권력 중 하나는 세금이다.

우리나라에서도 주식회사의 채무는 주주들에게 전가되지 않지만, 세금만은 전가되어 국가에서 끝까지 추적해 받아내도록 되어 있다.

암호화폐는 세금을 매기기가 힘들다. 그래서 각국 정부들은 유일한 과세지점이 될 수 있는 거래소를 통해 거래정보를 파악하려 한다. 하지만, 이는 곧 거래소의 익명성 제한을 뜻하므로, 사용자들은 익명성이 보장되는 해외거래소나 유저들 각 P2P 방식으로 직접 거래하려 할 것이다. 이와 더불어서 대시, 모네로, 라이크코인 등 비트코인보다 익명성을 훨씬 강화한 암호화폐들이 생겨나고 있으며, 정부의 규제가 강해지면 강해질수록 이러한 익명성이 강화된 암호화폐도 늘어날 것이다.

화폐의 통제권과 세금 징수권을 위해 정부들은 두 가지 방향에서 규제를 하려 한다.

  • 첫째는, 민간 암호화폐의 규제이다.
  • 둘째는, 국가주도 암호화폐의 발행이다.

정부의 이 두 가지 제재는 이미 시작되었다.

정부의 규제가 필요한 부분도 분명 존재한다. 터키의 경제하가 제이훈 엘긴의 조사에 따르면, 세계 경제의 20% 이상이 지하경제로 구성되어 있다고 한다. 이들이 암호화폐를 이용하면 할수록 지하경제 자금의 추적은 더욱 어려워질 것이다. 그러므로 암호화폐와 지하경제의 밀약을 막기 위해서는 정부의 적절한 규제가 필요하다.


아르헨티나 G20을 통해 알게된 암호화폐에 대한 인식


2018년 3월 19~20일 아르헨티나에서 G20 재무장관과 중앙은행 총재 회의가 열렸다.
주된 메시지는 ‘암호화폐를 금지하지는 않겠으나, 규제는 하겠다.’
앞으로 각국의 암호화폐에 대한 대응을 어림할 수 있다는 면에서 다음과 같은 논의내용이 참고가 될 것이다.

논의 내용

  1. 암호화폐와 블록체인은 국가가 채택해야 한다.
  • 경제 시스템의 변방에서 소외당하고 있는 사람들을 경제 시스템 안으로 끼워 넣을 힘을 지니고 있다는 사실을 인정했다.
  • 암호화폐가 복지 시스템을 강화하는데 정부를 도울 수 있다는 사실도 인정했다.


  1. 세계는 전통적 경제의 종말을 인지해야 한다.
  • 기존의 전통적 경제가 변화되는 과정을 겪고 있으며, 이제 그 경제로부터 디지털 시대를 분리시킬 수 없다는 것에 동의했다.


  1. 규제는 불가피하다.
  • 규제는 불가피한 과정이며, 경제가 디지털화되더라도 국민들은 실제이고 한 나라에 살고 있듯이, 다른 모든 비즈니스에 대한 규제가 불가피한 것처럼 암호화폐도 규제되어야 한다.


  1. 금지가 아닌 규제
  • G20 참가국들은 만장일치로 암호화폐가 중요하며 경제와 사회 조직에 큰 혁신을 가져올 것이라는 것에 동의했다.
  • 따라서, 암호화폐는 금지되어서는 안 되며 규제적 절차를 통해 우리 사회에 도입돼야 한다.


  1. 규제는 기술혁신을 막아서는 안되며, 암호화폐에 대한 과세는 불가피하다.
  • 암호화폐에 대한 엄격한 규제가 기술혁신을 저해해서는 안 된다. 하지만, 암호화폐에 대한 과세가 각국에서 다양한 절차에 맞춰 이뤄지는 것은 불가피하다.
  • 회원국들은 암호화폐에 국제자금세탁방지기구 기준을 동일하게 적용할 필요가 있다는 데도 의견을 같이했다.


전반적으로 이런 규제에 대한 합의보다 암호화폐에 대한 긍정적인 논의들이 더 많았다.

IMF의 크리스틴 라가르드 총재는 국가기관이 힘이 없고 국가통화가 불안정한 나라에서는 암호화폐가 기존 통화를 대체할 가능성이 높다고 밝히기도 했다.

그녀는, 달러 같은 다른 국가의 통화를 채택하기보다는 암호화폐를 사용하는 국가들이 늘어날 수도 있다. 기존 화폐보다 쉽고 안전하다는 생각이 많이 퍼질 경우, 암호화폐의 잠재적 성장 가능성은 매우 높다. 암호화폐 시장이 향후 안정된다면, 이러한 시나리오는 더욱 빨리 진행될 수 있다. 라고 했다.

이에 따라, G20에서는 암호화폐를 자산으로 인정해 제도권안으로 편입할 가능성이 클 것이다.

향후 G20은 암호화폐가 테러자금에 악용되는 걸 막기 위해 암호화폐를 자산으로 분류해 제도권 내에서 다룰 것으로 보인다. 자산으로 규정하면 각국은 그에 맞게 규정을 제정하고 표준화할 수 있다.

이런 시각은 금융계도 마찬가지다. 골드만삭스는 비트코인이 화폐 성격을 갖지는 않지만, 그렇다고 사기도 아니라며 미래에 더 큰 가치를 가져올 수 있는 상품이라는 견해를 밝혔다.

또한, 미국 뉴욕증권거래서 모기업인 인터콘티넨털익스체인지는 비트코인 거래 플랫폼을 개발중이다.(2018년 11월 예정) 해당 플랫폼이 개발되면 뉴욕증권거래소에서 비트코인 거래가 가능해질 전망이다.


암호화폐 시장의 도입기에 대한 내용 요약


모든 신기술과 마찬가지로, 암호화폐 시장도 도입기는 암호화폐와 시장에 대한 잠재역으로 많은 개인, 기업들이 들어오는 상황이다. 개인은 호기심으로, 기업은 새로운 사업기회로 도전을 하고 있다. 이런 이유로, 현재 암호화폐 시장은 춘추전국의 시대로 다양한 형태와 목적의 암호화폐가 나오고 있다. 이에 따라, 시장을 규제할 국가와 정부가 개입하고, 세계적으로 모든 국가 및 단체들도 이런 암호화폐에 대해서 어떻게 대비를 해야할지 다양한 의견과 법을 만들어 가고 있는 상황인 것 같다.

이런 상황일 때는, 무조건 시장에 뛰어들기 보다는 암호화폐의 본질에 대해 이해하고, 암호화폐가 앞으로 사람들에게 어떤 영향을 미칠지 고민해보고, 큰 비전과 목적을 충분히 이해하고 공부한 뒤에, 암호화폐 시장에 참가하는 것이 바람직하다고 생각한다.


참고: 화폐혁명

블록체인(Blockchain)이란 무엇인가?

블록체인(Blockchain)


블록체인이란, 각각의 블록으로 연결된 체인으로써, 블록들의 집합을 말한다. 여기서 블록이란, 거래 정보(일정기간 거래정보를 기록한 데이터 덩어리)를 말하고, 이 거래 정보들을 기록한 원장이 블록체인이다. 이 원장(블록체인)은 어떤 특정 기관의 중앙 서버가 아닌 P2P 네트워크에 분산하여 저장되고, 다수의 참가자가 공동으로 기록하고 관리하는 기술로, 분산원장(Distributed Ledger) 기술이라고 한다.


블록체인을 이용한 거래
출처: 블록체인을 이용한 거래


블록체인을 이용한 거래
출처: 블록체인을 이용한 거래


블록체인(Blockchain)의 철학(본질)


블록체인은 상호간에 ‘신뢰’에 대한 불필요한 비용을 제거하기 위한 기술이다.

즉, 블록체인은 상호 신뢰하지 않는 참여자들(사람 또는 사물)이 어떤 목적(정치/경제/금융/물류/의료 등)을 가지고 커뮤니티(생태계)를 구성하였을 때, 신뢰기관(정부/은행/카드회사 등)이나 신뢰 중재자 없이 참여자들끼리 합리적으로 신뢰성을 확보하면서 추구하는 목적을 달성할 수 있도록 해주는 기술이다.


블록체인(Blockchain)의 특징


  • 탈중앙화(신뢰된 제3자 없이 분산형 네트워크(P2P) 환경에서 거래)
  • 기록된 데이터의 위변조가 불가능(무결성을 유지)
  • 10분마다 새로운 블록이 생성되어 체인에 연결
  • 데이터의 일부분이 손상되어도 다른 노드를 통해 복구 가능(모든 노드가 거래 기록을 공유)


블록체인(Blockchain) 기술의 발달과정


  • 블록체인 1세대는 코인거래만 가능(Digital Currency)
  • 블록체인 2세대는 코인거래 뿐만 아니라, 플랫폼 코인(이더리움, EOS, ICON 등)의 개발로, 플랫폼 코인에서 다양한 블록체인 앱을 개발 가능(Digital Currency + Smart Contract + DApp)

블록체인 기술의 발달과정은 4단계로 나누면 다음과 같다.

블록체인 기술의 발달과정
출처: 블록체인 기술의 발달과정

우선순위 큐(Queue)와 힙(Heap)

우선순위 큐(Queue)


우선순위 큐(Queue)란, 우선순위 개념을 큐에 도입한 자료구조이다.

  • 우선순위 큐(Queue): 가장 우선순위가 높은 데이터부터 삭제된다.
  • 큐(Queue): 가장 먼저 들어온 데이터부터 삭제된다.
  • 스택(Stack): 가장 최근에 들어온 데이터부터 삭제된다.


힙(Heap)


힙(Heap)이란, 완전 이진 트리(Complete Binary Tree)의 일종으로, 우선순위 큐를 위해 만들어진 자료구조이다.

여러 개의 값들 중에서, 최대값이나 최소값을 빠르게 찾아내도록 만들어진 자료구조이다.

*완전 이진 트리란, 마지막 레벨을 제외한 나머지 모든 레벨에서 노드가 완전히 채워진 트리를 말한다. 또한, 마지막 레벨은 꽉 차 있지 않아도 되지만, 노드가 왼쪽에서 오른쪽으로 채워져야 한다.


힙(Heap)의 종류


  • 최대 힙(max heap)
    • 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리
  • 최소 힙(min heap)
    • 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리

Types of Heap
출처: ypes of Heap

그래프(Graph)란 무엇인가?

그래프(Graph)


그래프(Graph)란, 노드(node)와 그 노드를 연결하는 간선(edge)을 하나로 모아 놓은 자료 구조이다.


그래프(Graph)의 용어


Graph
출처: Graph

  • 정점(vertex): 위치라는 개념인데, 노드라고도 함.
  • 간선(edge): 위치 간의 관계. 즉, 노드를 연결하는 선 (link, branch 라고도 부름)
  • 인접 정점(adjacent vertex): 간선에 의해 직접 연결된 정점
  • 정점의 차수(degree): 무방향 그래프에서 하나의 정점에 인접한 정점의 수
  • 무방향 그래프에 존재하는 정점의 모든 차수의 합 = 그래프의 간선 수의 2배
  • 진입 차수(in-degree): 방향 그래프에서 외부에서 오는 간선의 수 (내차수 라고도 부름)
  • 진출 차수(out-degree): 방향 그래픙에서 외부로 향하는 간선의 수 (외차수 라고도 부름)
  • 방향 그래프에 있는 정점의 진입 차수 또는 진출 차수의 합 = 방향 그래프의 간선의 수(내차수 + 외차수)
  • 경로 길이(path length): 경로를 구성하는 데 사용된 간선의 수
  • 단순 경로(simple path): 경로 중에서 반복되는 정점이 없는 경우
  • 사이클(cycle): 단순 경로의 시작 정점과 종료 정점이 동일한 경우


그래프(Graph)의 특징


  • 그래프는 네트워크 모델이다.
  • 그래프는 크게 방향 그래프와 무방향 그래프 2가지 종류가 있다.(노드들 사이에서 무방향 경로를 가질 수 있고, 단방향/양방향 경로를 가질 수 있다.)
  • 루트노드라는 개념과, 부모/자식관계라는 개념이 없다.
  • 그래프는 순환(Cyclic)/비순환(Acyclic)이 있다.(loop/circuit, self-loop 모두 가능하다.)
  • 순회는 DFS/BFS로 이루어진다.


그래프(Graph)의 종류


  • 무방향 그래프(Undirected Graph): 연결 관계에 있어서 방향성이 없는 그래프이다.
  • 방향 그래프(Directed Graph): 간선에 방향성이 존재하는 그래프이다.

Graph Types
출처: Graph Types