웹 3.0 사용설명서

IT 2023. 3. 17. 12:16

- 웹 3.0은 플랫폼 기업들이 과도하게 독점하고 있는 데이터와 이익을 다시 사용자에게 돌려주려는 시도이다. 플랫폼에 종속 된 정보의 주권을 탈중앙화를 통해 사용자에게 돌려주고, 단순히 읽고 쓰는 기능이 전부였던 웹 2.0에 소유 기능까지 부여한 것이다.
- 비트코인은 처음에는 오로지 개인과 개인 간에 사용할 수 있 는 전자 현금 시스템을 만들기 위해 시작된 간단한 아이디어 였다. 물론 지금도 실생활에서 현금으로 결제하면 중개자 없이 거래할 수 있지만, 비트코인이 발명되기 전까지는 온라인에서 중개자 없이 돈을 지불할 방법이 없었다.
비트코인은 코드로 이루어진 소프트웨어이며, 비트코인 네트 워크는 해당 소프트웨어를 운영하는 컴퓨터 수백만 대로 구성 되어 있다. 이 코드, 즉 소프트웨어는 마치 프로토콜처럼 비트 코인 네트워크를 운영하는 데 필요한 기준과 규칙을 제공한다.
그리고 네트워크는 현재 비트코인이라고 불리는 디지털 토큰을 주고받을 수 있는 결제 시스템을 운영하고 있다.
몇 가지 규칙만 지킨다면 누구나 비트코인 네트워크에 참여 하거나 떠날 수 있다. 다만 다른 참여자와 충분히 합의하지 않 은 상태에서 멋대로 규칙을 바꾸려고 하면 네트워크에서 퇴출 당할 수 있다. 비트코인의 코드는 오픈소스이므로 누구든지 복 사하거나 수정할 수 있다. 그러나 이렇게 만든 '모조품'은 비트 코인과는 완전히 다른 네트워크이며, 원조 비트코인과의 호환 성도 '제로'이다.
토큰으로서 비트코인은 오로지 비트코인 네트워크에서만 쓸 수 있다. 다른 블록체인으로 옮기거나 비트코인 네트워크에서 없앨 수도 없다.
- 요즘 신문지상에 하루가 멀다 하고 등장하는 메타버스, NFT", DAO 기반 암호화폐 프로젝트들을 웹3.0이라고 보면 될까? 결론부터 말하자면 그렇지 않다.
사실 웹 3.0은 그 개념부터 어딘가 모호하다. 웹 3.0이 그리는 이상이 무엇인지, 무엇을 해결하려고 하는 것인지, 사용자에게 이득이 되는 게 도대체 무엇인지 정의하기조차 아직은 어렵다. 웹 1.0의 이상은 탈중앙화였다. 하지만 웹 2.0에선 모든 것의 플랫폼 중앙화가 이루어졌고, 웹 3.0은 다시 모든 것을 탈중앙화하려 한다. 정리해 보면 웹 3.0은 웹 2.0이 가진 풍요로움을 우 리에게 주는 동시에 탈중앙화하려는 것이다.
- '편리한 인터넷 세상
이쯤에서 애초에 왜 인터넷이 웹 1.0 에서 웹 2.0으로 넘어가 며 소수 플랫폼에 의해 중앙화되었는지 짚어볼 필요가 있다. 가 장 큰 이유는 사람들이 대부분 직접 자신의 서버를 운영하고 싶 어 하지 않는 데 있다. 웹 1.0의 전제는 인터넷상의 모든 사람 이 콘텐츠의 발행자이자 소비자이며, 인프라 제공자라는 것이 었다. 즉 모두가 나만의 웹 서버에 내가 만든 웹사이트를 호스트하고, 나만의 이메일을 위한 나만의 메일 서버를 운영할 것이라는 예상이었다.
그러나 사람들은 절대로 그런 걸 원하지 않는다. 다시 말하지만, 사람들은 자신이 직접 서버를 운영하는 것을 꺼린다. 요즘에는 심지어 노드들도 직접 하지 않으려 하고, 소프트웨어를 전 문적으로 만드는 조직들도 원하지 않는다.
그 결과 서버를 대신 운영해주겠다고 나선 회사들은 큰 성공 을 거뒀고, 그 회사들이 제공하는 네트워크를 기반으로 제품 판매에 집중해온 회사들은 더 큰 성공을 거뒀다. 서버를 대신 제공해줌으로써 큰 성공을 거둔 대표적인 회사로 AWS 아마존 웹 서
- 누구나 자신만의 NFT 거래소를 만들 수 있다. 하지만 사실상 오픈시가 대다수 웹 3.0 참여자가 사용하는 개인지갑 또는 기타 서비스에 NFT 정보를 제공해주지 않으면 사업을 확장시킬 수 없다. 물론 오픈시가 악의적으로 이런 구조를 만들었다고 생각 하지는 않는다. 그들은 단지 주어진 환경에서 좋은 사용자 경험 을 제공해주는 NFT 거래소를 만들고 싶었을 뿐일 것이다. 그렇다면 이제라도 웹 3.0 참여자들은 정말 그들이 원하는 탈 중앙, 탈독점 방식으로 생태계가 구성되도록 시스템을 다시 설 계해야 한다. 그러나 과연 지금 우리가 '웹 3.0'이라고 부르는 세 계에서 디파이를 쓰고 토큰과 NFT에 투자하는 사람들이 진정 으로 탈중앙화된 인터넷을 원하고 있는지는 생각해봐야 할 것 이다.
- 웹 3.0을 투기판으로 만드는 사람들
오픈시가 성공할 수 있었던 이유는 전 세계적으로 확산한 암 호화폐에 대한 거대한 투기 수요 때문이다. 많은 사람이 암호화 폐에 투자하여 큰돈을 벌었고, 이제는 모두가 그 돈을 재투자하 여 또다시 추가 수익을 얻는 데 혈안이 되어 있다. 즉 NFT로 대 변되는 현재 웹 3.0 세상은 이미 암호화폐로 돈번 사람들이 또 한몫 크게 챙겨보려는 투기판에 지나지 않는다.
플리핑 Flipping을 하는, 즉 NFT를 사고팔아 수익을 남기는 사 람들은 분산화된 신뢰모델이나 탈중앙화의 가치에는 관심이 없다. 그들은 오로지 돈이 어디로 흘러들고 있는지에만 관심을 둔다. 오픈시의 높은 거래량과 입이 떡 벌어지는 가격에 낙찰되는 NFT들은 이러한 투기꾼들을 오픈시로 끌어들이고, 이들은 점점 자신들에게 익숙하고 편한 기존의 웹 2.0 플랫폼 형식의 서비스를 요구하게 된다.
결국 자기 손으로 직접 스마트 계약을 만들어 NFT를 생성 민팅하기보다는 오픈시에서 제공해주는 편리한 기능을 이용해 NFT를 생성하는 것이 기준이 되어버린다. 그리고 여기에서 한 발짝 더 나아가 코인베이스 같은 중앙화 암호화폐 거래소가 만 든 NFT 마켓플레이스로 가서 코인베이스가 직접 선별한 NFT 작품을 신용카드로 구매하는 지경까지 가게 된다.
사용자가 코인베이스 계정에 보유한 코인이나 신용카드로 코인베이스에서 NFT를 사게 되면 코인베이스 입장에서는 사실 상 블록체인에 거래 데이터를 태울 필요도 없고, 따라서 가스비도 전혀 낼 필요가 없다. 결국 NFT 세상에서 웹 3.0의 모든 속성은 없어지고, 사용자에겐 그저 JPEG 파일을 신용카드로 사고팔 수 있는 웹사이트만 덩그러니 남게 되는 것이다. 이런 웹 사이트의 정체는 뭐라고 정의해야 할까? 투기꾼의 수요 때문에 어쩔 수 없이 웹 3.0 콘셉트로 시작했지만 같은 투기꾼의 요구에 따라 다시 웹 2.0의 플랫폼 사업모델로 돌아가버린 기업들 말이다.
- NFT 아티스트들은 투기 수요가 웹 3.0 세계의 발전을 이끄는 것에 큰 거부감이 없다. 왜냐하면 바뀐 것이라곤 그들이 창작한 예술작품에 대해 더 많은 투자가 일어나고 있다는 것뿐이기 때 문이다. 그러나 우리에게 웹3.0이 필요한 이유가 웹 2.0이 몰고 온 부작용을 극복하는 것이라면, 단순히 돈을 벌어서 좋다는 생 각에 안주해서는 안 된다.
지금은 디지털 사회로 전환이 가속화되는 시기이다. 원래 토 지와 노동이 지배했던 사회의 많은 영역이 구조적으로 사라지 고 디지털 경제가 점점 그 자리를 대체해가고 있다. 그러니 암 호화폐에 투입되는 자본의 양은 앞으로도 더욱 늘어날 것이다. NFT 시장에서 발생한 부가가치가 다시 암호화폐 시장에 재투 자되는 식으로 선순환 고리가 형성되면, 설령 지금의 웹 3.0이 무늬만 탈중앙 콘셉트이고 사실상 웹 2.5에 가깝더라도 호황은 오래 지속될 수 있다.
물론 경기침체 등 거시경제적 요인으로 인해 유동성이 빠져 나간다면 암호화폐나 NFT도 힘든 시기를 각오해야 할 것이다. 그러나 지금은 전 세계가 디지털 전환이라는 구조적인 사회 변 화의 한가운데 놓여 있기 때문에 빠져나간 유동성은 언젠가는 다시 돌아올 것이다. 만약 그렇다면 바로 지금, 웹 3.0이 탈중앙 화의 가치가 훨씬 덜 적용된 웹 2.5로 후퇴하는 것을 막을 방법을 긴급히 마련해야만 한다.
- 사람들은 보통 어떤 거대한 주체가 있어야 사회에 질서가 잡 히고, 내버려두면 혼란해질 뿐이라고 생각했다. 같은 맥락에서 국가가 경제를 간섭해야만 경제 혼란을 피할 수 있다고 여겼다. 그러나 하이에크는 그것을 '인위적 질서'라고 부르며 강력히 반 대했다. 인위적 질서는 인간 이성에 따라 사회질서를 임의로 만 들 수 있다는 생각인데, 이 사상의 문제점은 늘 인간의 이성을 과대평가하는 데 있다는 것이다.
우리에게 필요한 웹 3.0은 특정 집단의 인위적인 조종과 간섭이 끼어들 수 있는 영역을 최대한 배제하고 참여자 간에 형성된 자생적 질서를 제일의 가치로 여기는 프로토콜이다. 예를 들어 비트코인처럼 '총 발행량은 2,100만 개이고 4년마다 새로 채굴되는 양이 반으로 줄어든다' 같은 사전에 정한 규칙이 존재 할 뿐, 누구도 전체적인 시스템을 계획하거나 통제하지 않아야 한다.
노드가 자발적으로 활발하게 참여할 수 있는 인센티브 메커 니즘, 탈중앙화된 의사결정 구조를 통해 권력 생성을 방지할 수 있는 합의 메커니즘도 중요하다. 그리고 누구나 해당 프로토콜 의 코드를 가져가 자신만의 서비스를 만들 수 있는 쉬운 개발 언어의 존재도 중요하다.
- 클라이언트-서버 구성 요소
.
* 클라이언트: 서비스를 요청하는 시스템이다. 데스크톱, 노트북, 스마트폰, 태블릿 등이 있다.
.
* 서버: 서비스를 제공하는 시스템을 지칭한다. 데이터베이스 서버, 웹 애플리케이션 서버, 파일 서버, DNS 등이 있다.
* 네트워킹 장치: 클라이언트와 서버를 연결한다. 스위치, 라우터, 게이트웨이, 모뎀 등이 있다.
- P2P Peer to Peer는 정해진 클라이언트나 서버 없이 네트워크에 접속한 모든 컴퓨터가 서로 데이터를 주고받을 수 있는 구조를 의미한다. 이때 각 컴퓨터를 노드 또는 피어 Peer라고 부른다. 클 라이언트-서버 모델과 비교해 말하자면 모든 컴퓨터가 클라이 언트와 서버 역할을 할 수 있는 셈이다.
온디스크Ondisk, 토렌트 Torrent, 비트코인이 P2P 네트워크의 대 표적인 예시이다. 온디스크에서는 판매자가 자신의 컴퓨터에 저장되어 있는 영상 파일을 판매한다. 자신의 컴퓨터를 웹 서버 로 활용하는 셈이다. 온디스크 사이트는 판매자와 구매자 간 직 접 데이터 교환이 가능하도록 하는 프로그램을 제공할 뿐이다. '탈중앙화'를 강조하는 비트코인 역시 P2P 방식으로 코인을 주고받는다. 별도의 서버나 클라우드의 개입 없이 비트코인 네 트워크에 접속해 있는 두 컴퓨터가 직접 데이터를 거래하는 방
- P2P 네트워크 장단점
P2P 네트워크는 말 그대로 사용자 간 직접 데이터를 교환하 는 개념이기 때문에 단일 시스템에 의존하지 않아도 되고, 네트 워크를 구축하기 위한 많은 하드웨어가 필요하지도 않다. 반면 검증되지 않은 사용자와의 통신 과정에서 안전을 담보하기 어렵고, 조직적으로 파일을 유지·관리하는 것도 쉽지 않다는 단점이 있다.
- 웹 3.0 세상을 지지하는 사람들 중 일부는 익명성이야말로 2.0 기반 인터넷 세상의 문제를 바로잡을 수 있는 중요한 가치 라고 생각한다. 모든 사람이 인터넷에서 아예 신원을 공개하지 않고 블록체인상의 명성으로만 활동하는 세상이 웹 3.0이라고 주장한다. 그러나 이 주장에는 커다란 결함이 있다.
예를 들어 BAYC의 경우 초기부터 투자를 집행한 벤처캐피탈 등 내부자들은 창업자의 신원을 알고 있었을 것이다. 이는 정보 비대칭 문제이며, 전통 금융시장에서 이런 정보의 비대칭과 불 투명한 정보 문제는 종종 큰 문제를 일으킨다. 일반 투자자들이 기업을 제대로 실사할 방법이 없기 때문이다.
- 익명성의 위험성
원래 블록체인이 내세우는 가치는 익명성이 아닌 '가명성 Pseudonymity'이다. 최초의 암호화폐인 비트코인은 정부나 은행 의 중재 없이도 송금과 결제를 할 수 있는 P2P 네트워크를 목 표로 만들어졌다. 누구든지 차별받지 않고 사용할 수 있는 중립 적인 환경을 조성하는 것이 중요했다. 그래서 어느 나라에 살든 어떤 신분이든 인터넷만 연결되면 바로 사용할 수 있다. 따로 휴대전화 인증이나 계좌 인증 같은 고객 확인 절차를 거치지 않는다. 비트코인 창시자의 이름인 '나카모토 사토시'도 누군가 또 는 어떤 그룹이 사용한 가명일 뿐이다.
그렇다고 해서 보낸 사람과 받는 사람의 '익명성'까지 비트코 인이 보장해주지는 않는다. 비트코인은 처음부터 그런 기능을 제공하지 않았는데, 그 이유는 간단하다. 비트코인은 전 세계에 서 가장 많은 사람이 이용하는 안전한 자산 또는 화폐가 되는 것이 궁극적인 목표이다. 초기부터 비트코인 네트워크는 오직 이 한 가지 목표를 달성하고자 발전해왔다. 거래 당사자의 신분 을 감춰주는 '익명화' 또는 '비식별화 기술은 범죄 같은 특정 목 적을 가진 사용자에게만 유익할 뿐이다. 그래서 그동안 우선순 위에서 빠질 수밖에 없었다.
- 비트코인이 택한 방식은 '원죄 없는 잉태Immaculate Conception' 라고 불린다. 성모 마리아가 아무런 대가 없이 세상에 내려놓은 아기 예수처럼, 비트코인 창시자도 어떠한 금전적 이득을 취하 지 않은 채 사라졌기 때문이다. 누군가 이를 똑같이 따라 하는 일은 매우 어려운데, 크게 두 가지 이유가 있다.
첫째, 이제는 비트코인의 성공을 모두가 알고 있기 때문에 금 전적 보상이 더욱 강력한 동기가 된다.
둘째, 설령 설립자가 돈에 관심이 전혀 없는 사람이라고 해도 권력의 '위선'에서 자유롭지 못하다. 예를 들면 주변 사람들은 아무도 그렇게 생각하지 않는데 혼자서만 '앞으로 몇 년만 더하고 물러나자. 아직은 내가 있어야 해. 지금 떠나기엔 너무 일러'라고 생각하는 것이다.
DAO의 취약한 구조를 이해하려면 주식회사 제도와 비교해 보면 좋다. 주식회사는 기본적으로 무신뢰 기반 계약 시스템 이다. 조직의 모든 구성원은 사적 계약 관계로 묶여 있고, 모든 계약에는 성과에 대한 보상과 잘못했을 때의 책임이 명시된다. 주식회사에서는 주주와 이사회가 경영진을 주기적으로 견제 한다. 그래서 애플의 스티브 잡스도 자신이 세운 회사에서 쫓겨나기도 했다.
반면 DAO는 어떨까? 현존하는 조직 형태 중 협회, 재단, 협 동조합 등 신뢰 기반 조직들이 DAO와 비슷하다. 처음에는 신 뢰하는 동료들과 하나의 뜻을 이루고자 모였기에 문제가 없지 만, 시간이 지날수록 생각과 견해에 차이가 생기게 된다. 결국 힘 있는 몇 명 위주로 권력이 다시 집중된다. 만약 이들이 조직 을 엉망으로 운영한다면 견제할 방법도 없다.
구성원 간에 정기적으로 투표해서 경영진을 교체하는 등의 규칙을 미리 정할 수는 있다. DAO는 블록체인 위에서 조직되 기 때문에 아예 스마트 컨트랙트를 이용해 리더의 임기를 정해 놓기도 한다. 이를 약속집행 메커니즘Credible Commitment이라고 하는데, 이로써 조직의 규칙을 투명하게 공개하여 구성원의 조직 신뢰도를 높일 수 있다. 잘만 활용하면 블록체인 기반 DAO 의 큰 장점이 되는 셈이다.
문제는 그렇게 정해놓은 규칙조차 마음대로 바꾸는 권력의 출현이다. 어떤 조직이든 둘 이상이 모이면 반드시 위계가 생기 고, 위계는 곧 권력으로 이어진다. 주식회사는 이런 문제를 최 소화하려고 만든 계약 기반 유한책임 시스템이다. 협동조합이 나 길드 같은 신뢰 기반무한책임 또는 무책임 조직에서는 해결할 수 없었기 때문이다.
최근 급부상하는 DAO도 이러한 권력의 문제에서 자유로울 수 없다. 이 문제를 어떻게 해결하느냐가 DAO에 남겨진 숙제이다.
- 인터넷은 다음과 같은 특징을 지닌 글로벌 정보 시스템을 일
컫는다.
1. 인터넷 프로토콜IP 또는 IP의 확장이나 후속 프로토콜에 기 반을 둔, 세계적으로 유일한 주소 공간에 의해 논리적으로 연결되어 있다.
2. TCP/IP 프로토콜 또는 이의 확장이나 후속 프로토콜, 그리 고 다른 IP와 호환되는 프로토콜을 이용한 통신을 지원할 수 있어야 한다.
3. 위에 언급한 인프라 구조나 통신 계층 위의 공공 또는 사적 으로 고수준 서비스를 제공하거나 사용·접근할 수 있다.
- 이렇게 등장한 웹 1.0의 특징적 기능은 하이퍼링크와 북마크 라고 할 수 있다. 콘텐츠는 텍스트와 약간의 이미지가 주된 형 태였고, 음악이나 동영상 등 멀티미디어 사용은 극도로 제한되 어 있었다. 최종 사용자와 웹페이지 제작자 사이의 의사소통도 빠져 있었다. 주요 기능인 HTML을 사용한 이메일 전송이 전 부다시피 한 정적인 형태로 웹사이트가 운영되었다.
웹사이트에서는 운영자가 보여주는 것 외에 접할 수 있는 정 보가 거의 없었고, 동적인 데이터를 제공하는 서비스도 없었다. 컴퓨터가 아직 느렸고 하드디스크의 저장 공간도 충분치 않았으며 네트워크의 대역폭도 작았으므로 동영상이나 플래시같이
-  웹 1.0의 특징을 정 리하면 다음과 같다.
1. 웹은 인쇄물의 대체재나 보완재 정도로 생각되었고, 웹사 이트는 브로슈어 형태를 넘지 못했다.
2. 사용자가 할 수 있는 활동은 화면에 나타나는 정보를 읽는 것으로 제한되었다.
3. 콘텐츠는 대부분 텍스트와 하이퍼링크로 이루어져 있었다.
4. 웹사이트에 나타나는 정보는 운영자가 소유한 것을 보여주는 데 그쳤다.
- 대부분의 크고 강력한 인터넷 회사는 데이터베이스 제공자 이다. 페이스북은 사람들의 프로필, 그들의 친구 그래프, 상태 업데이트에 대한 데이터베이스이다. 페이팔은 사람들의 계좌잔액에 대한 데이터베이스, 아마존은 SKUStock Keeping Unit라고 불리는 물건 재고·결제 자격·구매 내역에 대한 데이터베이스이다.
구글은 웹페이지와 쿼리Query 히스토리에 대한 데이터베이스 이다.
물론 이 모든 회사의 성공 방정식에는 복합적인 요소가 들 어 있지만, 그들이 가진 권력의 핵심이 데이터베이스 운영에 있다는 사실에는 변함이 없다. 누가 데이터베이스를 읽고 쓸 수 있는지, 어느 정보까지 접근 가능한지는 오로지 해당 회사만 결 정할 수 있다.
만약 웹상에 존재하는 모든 데이터에 접근하는 데 대기업의 허가가 필요하다면, 우리는 대기업이 인터넷 세상에서 일어나 는 모든 일을 통제하도록 놔둘 수밖에 없다.
- 개인정보 문제는 지금 우리가 몸담고 있는 웹 2.0 시대의 종말 을 가져올 방아쇠가 될 수 있다. 웹 1.0이 단순히 보여주는 수단에 그쳤다면, 웹 2.0은 양방향 소통이 가능한 소셜미디어·전자 상거래 등 혁신 서비스를 만들어 세계를 연결했다. 데이터는 권 력이 됐다. 플랫폼 기업들은 사용자 기록을 기반으로 맞춤형 광 고를 내보내고 이들의 정보를 중앙화된 서버에 모았다. 사람들 의 행동까지 조종할 수 있는 '지식'을 알고리즘을 통해 대규모로 축적한 셈이다.
『21세기 권력』의 저자 제임스 볼은 “인류를 위한 최우선 과제는 인터넷을 누가 소유하고 어떻게 작동하는지 실체를 파악해 이를 바로잡는 일”이라고 강조했다. 빅테크가 데이터 통제권을 지니게 되면서 개인정보 침해·시장 독점·정보 손실 가능성 등 문제가 늘어나자 대안으로 웹 3.0을 모색했다. 웹 3.0은 소수가 데이터를 독점하는 형태가 아니라 개개인이 직접 데이터를 소 유하고 블록체인 기술을 통해 연결하는 것이 특징이다.
이렇듯 웹 3.0은 소수 기업에게 집중되는 데이터 독점 문제를 탈중앙화를 통해 해결하려는 시도라고 보면 된다. 예를 들어 사용하는 플랫폼마다 아이디와 비밀번호를 만들어 기업에 넘기는 대신, 인터넷 ID라는 공용 인터넷 신분증 같은 것을 만들어 모든 웹사이트에 로그인하는 것이다. 이게 실현되면 마치 집 안 모든 가전제품을 리모컨 하나로 켜고 끌 수 있는 것처럼 우리의 인터넷 생활도 더 편리해질 것이다.
- 비트코인이 앞으로 더 많은 사람에게 가치 있는 화폐 또는 통화로 받아들여질 수 있는 이유에 대한 단계별 논리는 다음과 같다.
1. 화폐는 설령 실생활에 쓸모가 없거나 소비 가치가 없는 물 건이어도 그것이 자연적으로 지닌 독자적인 특성 때문에 가치가 생성된다. 비트코인 네트워크는 중간자 없는 돈의 송금과 결제라는 기능만으로도 상당히 쓸모 있지만, 꼭 그 기능이 없다고 해도 사람들은 비트코인 자체에 높은 가치를 부여한다.
2. 투자자들이 비트코인에 높은 가치를 부여하는 주된 이유 중 하나는 바로 희소성이다. 비트코인은 미리 계획된 공급 스케줄과 제한된 공급량 덕분에 가치 저장 수단으로 기능할 수 있다.
3. 비트코인의 희소성은 탈중앙성과 검열 저항성이라는 특성 에 따라 뒷받침된다.
4. 이 특성들은 비트코인에 하드코딩되어 있으며 비트코인 네트워크 참여자와 비트코인 보유자가 자신들의 자산 가치를 깎아먹으면서까지 손을 댈 이유가 없기 때문에 결코 변하지 않을 것이다. 오히려 비트코인 네트워크 참여자라면 희소성과 불변성이라는 특성을 최대한 지키려고 할 확률이 높다.
- '바퀴의 발명'은 한 번 발명되고 나면 결코 다시 발명될 수 없 는 완전히 새로운 기술의 등장을 의미했다. 마찬가지로 비트코 인이 발명되기 전까지는 인류 역사상 디지털 재화에 희소성을 부여하는 문제, 그리고 제3자의 존재가 완전히 배제된 개인 간 금융거래를 가능케 하는 문제는 한 번도 해결된 적이 없었다. 비트코인이 해결한 위 두 가지 문제들은 단순한 인터넷 기술의 발전 수준이 아니다. 인터넷 세상에서 희소성이 어떻게 존재할 수 있는가에 대한 퍼즐을 최초로 풀어낸 역사적인 발견이라 할 수 있다.
비트코인은 현재 타 암호화폐에 비해 가장 탈중앙화되고 안 전한 암호화폐이다. 때문에 비트코인의 아성을 뛰어넘으려는 새로운 블록체인 네트워크와 암호화폐는 적어도 하나 이상의 특성을 희생하여 자신을 차별화해야 하는데, 이를 블록체인 트 릴레마Blockchain Trilemma라고 한다. 이에 대한 내용은 뒤에서 좀 더 자세히 다루도록 하겠다.
단순히 비트코인의 코드 전체를 복사해서 똑같은 특성을 지닌 네트워크를 만들려는 시도 역시 결국 실패할 수밖에 없다.
- 비트코인은 지금까지 100번이 넘도록 하드포크되었지만 결과적으로 모두 실패한 프로젝트로 남고 말았다. 이미 존재하는 가장 커다란 돈의 네트워크를 놔두고 그와 완전히 동일한 특성을 가졌지만 규모만 더 작을 뿐인 다른 네트워크로 전환할 이유가 없기 때문이다.
- 예를 들어 사람들은 특정 웹 3.0 서비스를 간편하게 이용하기 위해 해당 서비스가 발행한 별도 토큰을 구매하고 사용할 수 있다. 그 서비스 안에서 만큼은 해당 토큰이 재화나 서비스 를 이용하는 대가이며 가격도 모두 그 토큰으로 매겨져 있을 것 이기 때문이다. 그러나 해당 서비스를 벗어나면 그 토큰은 아무 짝에도 쓸모없어진다. 만약 다른 서비스 플랫폼으로 나의 부를 옮기고 싶다면 비트코인을 이용해야 한다. 비트코인은 지금도 암호화폐 세계에서 가장 궁극적인 통화로 인식되고 있기 때문이다.
- 반면 페이팔을 이용하여 돈을 보내면 마치 돈이 페이팔 안에서 즉각 보내진 것처럼 보이지만 사실상 옮겨진 것은 스크린에 보이는 숫자일 뿐이다. 실제 돈은 페이팔 VAN 사업자→ 신용카드사 → 은행을 거쳐 다시 수신자 국가의 페이팔 → VAN 사업자 신용카드사 → 수신자 은행으로 옮겨지는 복잡한 과 정을 거친다. 단계가 많으면 당연히 그만큼 수수료가 붙고 속도 도 느릴 수밖에 없다.
페이팔을 비롯한 해외송금 서비스의 최대 단점은 한계를 극복할 수 없다는 것이다. 사용자에게 건당 3~4%씩 수수료를 떼어갈 수밖에 없다. 사용자의 이름, 주소, 생년월일, 납세자 식별 번호 등을 모두 받아놓았다가 신원인증을 마친 사람에게만 인 출을 허락해야 하는 점도 불편하다. 이런 만성적인 불편함의 고 리를 끊을 수가 없다.
반면 알레나 보로비오바의 실험에서 보았듯이 비트코인과 라이트닝 네트워크를 통한 송금은 금액에 상관없이 거의 무료 이다. 3분도 기다릴 필요 없이 눈 깜짝할 새 송금이 완료된다. 복잡한 신원인증 과정과 신용카드 등록도 필요 없다. 송금 과정에 가득 들어찬 중간자가 없기 때문에 훨씬 깔끔하게 거래할 수 있다.
더욱 기대되는 점은 라이트닝 네트워크가 계속 진화하고 있다는 사실이다. 2022년 4월 5일 라이트닝 네트워크 개발사 라이트닝 랩스Lightning Labs는 라이트닝 네트워크 위에서 달러 기반 스테 이블 코인으로 거래할 수 있는 타로Taro: Taproot asset representation overlay 프로토콜을 개발 중이라고 발표했다. 간단히 말하면 비트 코인 네트워크를 통해 달러를 송금하는 기능이다. 달러가 은행 과 신용카드사를 거치지 않고 움직이는 세상이 성큼 다가왔다. 달러뿐만 아니라 모든 통화와 자산을 비트코인 네트워크에서 거래하는 세상이 온다면 어떨까? 우리는 생각보다 가까운 미래 에 브레턴우즈 체제 이후 70년 만에 달러 기축통화 체제가 막을 내리고 '비트코인 스탠더드Bitcoin Standard, 비트코인이 전 세계 기축통 화인 세상'가 도래한 세상을 목격하게 될 수도 있다.
- 요즘 소비자는 순종적이지 않다. 주위를 둘러보면 집 거실에 텔레비전이 없다는 사람이 많이 늘었다. 어차피 텔레비전 영상 은 유튜브에서 '짤'로 찾아서 보고, 영화는 넷플릭스에서 골라 보며, 라디오는 팟캐스트에서 골라 들으니 굳이 거실에 텔레비 전을 둘 필요가 없는 것이다. 게다가 컴퓨터에는 브레이브 브라우저를 설치해서 광고를 차단하고, 인터넷 활동 기록을 남기지 않는 토르 브라우저를 사용하여 개인 프라이버시까지 챙 긴다. 바야흐로 개인과 개성이 주목받는 시대인 셈이다.
웹 3.0은 바로 이런 사람들을 위한 세계이다. 참여자 개인 의 주권, 즉 시민권Citizenship을 무엇보다 중요한 가치로 받아들 인다. 정부기관이나 서비스 개발사가 사용자를 위해 귀찮은 과 정을 모두 대신해주는 곳은 웹 2.0 세상이다. 어느 세상에 더 발 을 깊이 들이고 살지는 개인의 가치판단에 따라 정하면 된다. 다만 웹 3.0을 이용하려면 불편할 수밖에 없다는 점을 받아들여 야 한다. 특히 암호화폐와 블록체인으로 이루어진 네트워크에 서는 '코드가 곧 법'이라는 독특한 룰이 존재한다.
- 만약 지금 웹 3.0을 테마로 영업 중인 서비스가 편한 사용성, 빠른 속도, 문제가 생겼을 때 해결해줄 운영진과 같은 플랫폼적 인 특성을 먼저 내세우고 있다면, 실제로는 웹3.0이 아니라 그 저 마케팅 수단으로 활용하고 있을 가능성이 크다. 플랫폼과 웹 3.0, 둘 중 하나를 선택하지 않고 중간에 애매하게 걸친 서비스 는 아마 오래 살아남지 못할 것이다.
웹 3.0의 기반이 되는 블록체인 네트워크는 보수적으로 발전 해야만 한다. 코드가 곧 법이기 때문에 밥 먹듯이 코드를 갈아 엎어서는 곤란하다. 누구나 쉽게 이해할 수 있는 간결한 코드여 야 하고, 그것을 바꾸기가 매우 어려워야 한다. 법학에 적용되 는 '법은 최소한이다'라는 기본 사상이 여기에도 적용되어야 하 는 것이다.
탈중앙성과 분산된 권력을 제일 가치로 삼고 보수적인 속도로 발전하는 프로토콜 가운데 으뜸은 단연 비트코인이다. 물론 비슷한 속성을 지닌 다른 것이 등장할 수 있다. 하지만 이미 비트코인이 지닌 네트워크 효과와 승자독식 메커니즘 때문에 제2, 제3 프로토콜의 존재가치는 점점 희미해질 것이다. 이것이 내 가 앞으로 비트코인 네트워크가 웹 3.0의 주역이 되리라 예상하 는 이유이다.
사실 하루가 멀다 하고 터지는 디파이, NFT, DAO 관련 해킹 뉴스를 보면 안타깝다. 거기에서 낭비되는 리소스를 비트코인 기반 웹 3.0을 구축하는 데 썼다면 훨씬 좋았을 것이다. 1990년 대닷컴 기업들이 너도나도 자체 인트라넷을 만들어 출시하며 자원을 낭비한 것과 비슷한 패턴으로 보인다.
약간 돌아가고 있지만 웹 3.0 세계는 곧 우리 곁에 다가올 것 이다. 비트코인, 라이트닝 네트워크, 탭루트Taproot, 타로를 미리 공부해놓기를 추천한다. '나'라는 개인의 주권을 유지하면서도 다른 이와 정보를 교류하고 조화롭게 살 수 있는 인터넷 세상을 남보다 먼저 맞이하게 될 것이다.
- 제베디
제베디Zebedee는 비트코인을 도입한 게임을 직접 개발하여 내놓기도 하고, 비트코인의 라이트닝 네트워크를 이용한 게임 플 랫폼 민트 곡스Mint Gox 등을 출시하는 등 게임과 비트코인을 결 합하는 새로운 플랫폼으로 주목받고 있는 서비스이다. 제베디 앱의 기본적인 기능은 평범한 비트코인 지갑과 유사하다. 다른 지갑과의 가장 큰 차이점은 게임 개발사들과 협업하여 게임 내 재화로 비트코인을 사용할 수 있게 환경을 만들어주고, 제베디 지갑을 연동하여 비트코인 입출금까지 지원한다는 것이다.
- NFT, 그중에서도 미술품 NFT는 그림의 품질이나 작가의 스 토리는 뒷전이고 사실상 고도의 마케팅 전략으로 허구의 가치 를 만들어낸 뒤 순진한 투자자를 유혹하는 수단으로 전락했다. BAYC와 크립토펑크의 성공을 보고 수많은 PFPProfile Picture, SNS 프로필에 쓰는 이미지 프로젝트가 지금도 만들어지고 있는데, 운영 진이 NFT 가격을 띄우는 활동을 해주지 않으면 거래조차 되지 않는 프로젝트가 부지기수이다.
트위터나 디스코드처럼 익명으로 활동하는 SNS에서 모집과 판매가 진행되다 보니 사기 행각도 빈번하다. 비단 판매대금을 가지고 잠적하는 것만 사기인 것은 아니다. 프로젝트 로드맵에 유명 연예인이나 대기업과 협업할 것처럼 적어놓고 정작 NFT 판매가 완료되면 아무것도 하지 않는 '배째라' 행각도 많다. 모 두 2017년 신규 코인 ICO가 성행할 때 흔히 보였던 패턴이다. 메타버스는 어떨까? 암호화폐 산업에서 지칭하는 메타버스는 P2E로 대변되는 'ᄋᄋ하며 돈 버는 세계'이다. 앞서 소개한 위메이드의 미르4와 스카이마비스의 엑시인피니티가 암호화 폐와 연동된 대표적인 P2E 게임이다. 한때 미르4에서 채굴한 흑철을 드레이코Draco라는 코인으로 바꾸고 이를 국내 거래소 에 상장되어 있는 위믹스 코인을 통해 현금화하는 방식이 게이머들 사이에서 큰 인기를 끌었다. 그런데 이는 흑철 채굴이라는 행위가 자체적으로 큰 수익을 발생시켰기 때문이 아니라 위믹스 코인 가격이 거래소 펌핑으로 크게 상승했기 때문이다.
2021년 초 메타버스가 '매달려서라도 잡아야 하는 버스'로크 게 주목받을 때 위믹스 코인이 가장 큰 수혜를 입어 가격이 올 랐을 뿐, 미르4 게임이 지속 가능한 경제를 만들어낸 것은 아니 었다. 하락장이 찾아오고 위믹스 코인 가격이 반 토막이 되자 미르4와 P2E에 대한 관심도 차갑게 식고 말았다.
게임에서 쓸 캐릭터를 NFT 형태로 분양받고 이를 키우다가 다른 캐릭터와 교배하는 방법 등으로 가치를 키워 되팔면 큰 수 익을 남길 수 있다는 콘셉트로 인기몰이를 한 엑시인피니티 역시 비슷한 길을 걸었다. 처음에는 실제로 큰 수익이 발생하기도 했다. 한때 열심히만 하면 월 100만 원은 기본으로 벌 수 있다는 인식이 퍼지며 필리핀에서는 20대 젊은이들이 대거 엑시인피 니티에 뛰어들었다는 언론 기사가 나올 정도였다.
그러나 점점 더 많은 사람이 캐릭터의 가치를 띄울 목적으로 만 게임에 들어왔고, 심지어 수수료를 받고 캐릭터를 대신 키워 주는 사업까지 성행하면서 자연스럽게 수익성이 감소했다. 전 부 캐릭터를 키워 되팔 목적으로만 게임을 하니 캐릭터를 사줄 사람이 없게 된 것이다.





'IT' 카테고리의 다른 글

프로덕트 매니저는 무슨 일을 하고 있을까  (1) 2023.04.08
AI 2041  (0) 2023.03.23
최소한의 IT언어  (2) 2023.02.24
비전공자도 이해할 수 있는 AI지식  (3) 2022.12.29
IT 잡학사전  (2) 2022.11.10
Posted by dalai
,

최소한의 IT언어

IT 2023. 2. 24. 17:32

- NIST가 정의한 클라우드 컴퓨팅의 5가지 기본적 특성은 다음과 같다.
* 즉시적이고 자율적인 이용: 고객이 언제든 클라우드의 자원과 소프트 웨어를 이용할 수 있다. 예를 들어 Salesforce.com은 인터넷에 연결된 컴퓨터와 아이디, 비밀번호만 있으면 바로 사용 가능하다.
* 폭넓은 네트워크 접근: 고객이 다양한 플랫폼(태블릿, 스마트폰, 노트북등)으로 자원과 소프트웨어를 이용할 수 있다.
* 자원 병합: 클라우드에 속한 컴퓨터들이 서로 연계해서 다수의 사용 자를 지원하고, 단일한 컴퓨터로는 해결할 수 없는 복잡한 문제를 해 결한다.
* 신속하고 탄력적인 성능 조정: 클라우드에 속한 컴퓨터들이 네트워크 에서 서로 통신하므로, 그중 일부 컴퓨터에 과도한 트래픽이 몰리면 다른 컴퓨터들이 트래픽을 분담할 수 있다. 다시 말해 상황에 맞춰 신 속하게 성능을 상향하거나 하향한다.
* 종량제: 종래의 소프트웨어 모델은 고객이 일정한 금액을 지불하고 프로그램을 설치해서 사용하는 방식이다. 그래서 어떤 프로그램을 시 험 삼아 써보려는 사람도 그 프로그램을 지속적으로 사용하는 사람과 동일한 요금을 지불해야 했다. 하지만 이제는 저장 공간, 연산 능력, 트래픽, 대역폭 등을 기준으로 고객의 사용량을 측정할 수 있다. 사용 량에 따라 요금을 차등적으로 부과할 수 있어서 더 효율적인 시장이 형성된다.
-  다음은 NIST에서 정의한 클라우드 컴퓨팅의 3가지 서비스 모델이다.
* 서비스형 소프트웨어SaaS, Software as a Service: 드롭박스처럼 사용자가 브라우저로 이용할 수 있는 애플리케이션은 모두 SaaS (사스)에 해당 한다. SaaS는 6장에서 살펴볼 API와도 관련이 있다. SaaS는 클라우드로 제공되기 때문에 사용자의 컴퓨터에 애플리케이션을 설치할 필요가 없다. 그래서 멀티테넌트 아키텍처 multi-tenant architecture (테넌트, 즉 사용자들이 애플리케이션을 각자 실행하지 않고 한 번 실행한 것을 다 수가 함께 사용하는 구조-옮긴이)라고 할 수 있다.
* 서비스형 플랫폼PaaS, Platform as a Service: 헤로쿠 같은 프래그래밍 용 클라우드 플랫폼을 이용해본 사람이라면 익숙한 개념일 것이다. PaaS(패스)는 사용자가 소프트웨어를 빌드(소스코드를 실행 가능한 형 태로 변환하는 것-옮긴이)할 수 있는 환경을 제공한다. 예를 들면 웹 애플리케이션을 빌드할 수 있는 웹 서버를 제공한다.
* 서비스형 인프라 IaaS, Infrastructure as a Service: 클라우드가 급속도로 성장하면서 클라우드에서 웹사이트를 호스팅하는 클라우드 인프라 사업이 부상했다. IaaS(이아스)를 이용하면 웹사이트를 훨씬 효율적으로 운영할 수 있다.
예를 들어 웹사이트에서 이벤트를 실시하면 갑작스럽게 트래픽이 많이 발생한다. 그러면 예전에는 접속자가 최고로 몰릴 때를 대비 해서 서버를 증설해야 했다. 하지만 접속자가 다시 평소 수준으로 줄어들면 증설한 서버가 노는데 운용 비용은 계속 나간다. 이 문제의 해법이 클라우드다. 클라우드를 이용하면 필요에 따라 쉽게 서버 사용량을 늘리거나 줄일 수 있기 때문에 사용한 만큼만 비용을 지불하면 된다.
- 자바스크립트
HTML과 CSS만 써서 만든 웹사이트는 보기에는 좋아도 상호작용성이 부족하다. 그래서 드롭다운 메뉴(화면에 표시된 주 메뉴를 선택하 면 아래에 하위 메뉴가 펼쳐지는 형태의 메뉴-옮긴이), 마우스 커서를 대면 나오는 설명문을 비롯해 많은 요소를 조작할 수 있게 해주는 자 바스크립트 JavaScript가 필요하다. 객체 지향 스크립트 언어 (3장)인 자 바스크립트는 HTML 문서 안에 존재하고 브라우저(사이트에 접속하 는 '클라이언트)에 의해 렌더링된다. 즉, 클라이언트 사이드client-side에 서 처리된다. 그래서 다른 스크립트 언어들과 달리 백엔드가 아닌 프 런트엔드로 취급된다. 서버에서 실행되지 않는 것이다.
- 어떤 작업을 구성하는 일련의 요청을 트랜잭션 transaction이라고 한다. 예를 들면 사용자와 반려동물을 등록하기 위해 필요한 요청들이 트랜잭 션이 될 수 있다. 트랜잭션에는 중요한 성질이 몇 가지 있는데 관계 형 시스템에만 국한된 내용은 아니지만 여기서 간단히 설명하고 넘 어가겠다. 첫째, 트랜잭션은 '원자성'이 있다. 처음부터 끝까지 완전 히 수행되지 않으면 무효화된다는 뜻이다. 예를 들어 사용자가 완전 히 등록되지 않으면 데이터베이스에는 아무 변화가 생기지 않는다. 그래서 어떤 프로세스가 어떤 이유로든 도중에 중단돼도 불완전한 행이 생기거나 레코드가 일부만 갱신되는 식으로 테이블이 변질되지 않는다. 둘째, 트랜잭션은 '지속성'이 있다. 트랜잭션이 완료되는 즉시 데이터베이스에 변화가 생기고 그 변화의 결과가 지속된다는 의미다. 만일 트랜잭션이 데이터베이스에 반영될 때 시간이 지연된 다면 UX에 악영향을 미칠 것이다. 간단한 예로 페이스북에서 친구 를 추가할 때마다 친구 목록이 갱신되기까지 일주일이 걸린다면 어 떻겠는가? 셋째, 트랜잭션은 '독립성'이 있다. DBMS에서 각각의 트 랜잭션이 별개로 취급된다는 뜻이다. 이런 성질을 모두 갖춘 데이터 베이스를 설계하기가 쉽진 않지만, 지금 설명한 내용을 잘 알아두면 DBMS가 요청을 취급하는 방식을 더 쉽게 이해할 수 있다.
마지막으로 설명할 용어는 정규화normalization다. 정규화는 데이 터베이스에서 중복을 없애는 것이다. 다시 사용자 테이블과 반려동 물 테이블을 생각해보자. 만약 개발자가 반려동물 테이블에 주인 주 소라는 열을 만든다면 어떻게 될까? 그것은 이미 사용자 테이블에 저장돼 있는 정보가 아닌가? 그렇다면 주인 주소 열은 중복되는 정 보로 공간을 낭비하는 셈이다. 정규화는 데이터베이스가 사용하는 메모리를 절약하는 효과가 있지만, 질의의 결과가 도출되는 시간을 늘리는 부작용을 낳을 수도 있다. 앞에서 비단뱀을 키우는 사람들의 주소를 묻는 질문을 예로 들었는데(JOIN 사용) 만일 그 질문을 자주 해야 한다면 또 상황이 달라질 것이다. JOIN 명령어로는 DBMS가 두 테이블을 합친 후 정보를 찾아야 하기 때문에 테이블의 크기에 따 라서 시간이 많이 소요되기도 한다. 그래서 차라리 중복되는 열을 만 드는 것이 더 간편하고 경제적일 수 있다. 이런 사안을 두고 결정을 내리는 주체는 데이터베이스에서 요청이 어떻게 처리되는지를 정확 히 이해하는 데이터베이스 관리자 DBA, DataBase Administrator다.
- 분산 시스템의 대표적인 특징은 로컬 자율성(각 서버가 독립돼 있다), 중앙 서버의 부재, 로컬 독립성(사용자는 데이터가 어디에 저장되는지 알 필요가 없다)이다. 그 외에도 많은 특성이 사용자에게 중앙집 중식 시스템과 똑같이 작동한다는 느낌을 준다.
IT업계에서 '분산'이라는 말이 인기인 데서 짐작할 수 있듯이 분산 데이터베이스도 인기가 많다. 다음과 같은 장점 때문이다.
* 우월한 합리성 : 대부분의 조직에서는 이미 데이터가 각 지역 사무소나 각 부서에 논리적으로 분산돼 있다. 그러니까 그 밖의 장점들도 매력적이라면 분산 데이터베이스를 굳이 거부할 이유가 있을까? 분산 데이터베이스를 구축하면 번거롭게 모든 데이터를 중앙 서버에 집중 할 필요가 없으며 각 집단이 자신들의 데이터만 잘 관리하면 된다. 예 를 들어 펩시 아시아에서는 일부 데이터를 아시아에 보관하는 것이 합리적이다.
* 효율과 성능 향상: 그냥 생각해봐도, 어떤 요청이 들어왔을 때 되도록 가까운 곳에서 데이터를 처리하는 게 효율이 좋다. 그래서 데이터는 그것을 가장 많이 사용하는 사람들과 가까운 장소에 보관돼야 한다. 분산 데이터베이스를 구축하면 전 조직의 데이터를 가장 효율적으로 분배할 수 있다. 그리고 질의가 여러 기기에 분산돼서 처리되기 때문에 속도가 빨라진다.
* 안정성 향상: 정보가 여러 컴퓨터에 저장되기 때문에(사본이 여러 개 만들어질 수도 있다) 중앙집중식에 비해 시스템이 일제히 다운될 확률이 훨씬 낮다.
* 탄력적 확장: 분산 데이터베이스는 수평 확장성이 있다. 즉, 데이터베 이스에 컴퓨터를 추가하기 쉽다. 예를 들어 현재 마이애폴리가 컴퓨 터 다섯 대에 정보를 저장한다고 해보자. 그중 한 대에 메모리를 추가 하는 등의 수직 확장보다는 컴퓨터를 한 대 늘리는 수평 확장이 훨씬 수월하다. AWS (2장) 같은 서비스는 고객이 그때그때 필요에 따라 서 버를 늘리고 줄이므로 엄청난 인기를 끈다. 그렇게 탄력적으로 서버 의 수를 조절하면 더 효율적으로 자원을 활용할 수 있다. 반대로 어쩌 다 한 번씩 서버 사용량이 급증하는 예외적 상황(예: 웹사이트 이벤트기간)에 대비해서 서버를 대량 구입하는 것은 비효율적이다.
- 분산 데이터베이스라고 단점이 전혀 없진 않다. 첫째, 데이터가 여러 곳에 저장되기 때문에 질의를 처리하기 위해 곳곳의 데이터를 종합해야 할 때는 시간이 더 걸릴 수 있다. 둘째, DBMS가 제공하는 다양한 기능(보안, 동시성 관리 등)을 사용하려면 중앙집중식에 비해 복잡한 기술이 필요하다.
- 당신이 방대하고 다양성이 큰 데이터를 보유했다고 해보자. 이 데이터를 그냥 보는 것만으로 뭔가 의미 있는 시사점을 얻을 확률 은 희박하다. 데이터에서 어떤 명백한 패턴이 보이지 않는다면 더 욱 그렇다. 당신이 빅데이터를 취급하다 보면 자연스럽게 접하게 되 는 용어가 하둡 Hadoop이다. 하둡은 어떤 질문의 답을 얻기 위해 데이 터를 테스트하게 해주는 소프트웨어 프레임워크(특정한 작업을 용이 하게 하는 요소들을 모아놓은 것옮긴이)다. 앞에서도 말했지만 방대 한 정보를 저장하고 처리할 때는 분산 시스템이 유용하다. 하둡은 다 수의 고성능 프로세서가 데이터를 분담해서 처리하도록 만든다. 하 둠에서 주로 사용되는 방식인 맵리듀스 MapReduce는 맵과 리듀스라는 두 단계로 구성된다. 당신이 데이터를 분석하여 어떤 질문의 답을 얻 기원하고, 그래서 엔지니어들이 이론상으로 봤을 때 정답을 구할 수 있을 것으로 보이는 함수를 작성한다고 가정해보자. '맵' 단계에서는 분석 작업이 여러 부분으로 분할돼 다수의 기계에 배정된다. 이어서 '리듀스' 단계에서는 각 기계에서 도출된 결과가 하나로 결합돼 분석 이 완료된다. 방대한 데이터를 기계 한 대로 분석하자면 오랜 시간이 걸리겠지만, 하둡은 분할정복 전략으로 시간을 단축한다. 하둡 외에 아파치 스파크Apache Spark도 인기를 끌고 있다.- 코드를 조직할 때 가장 흔하게 사용되는 구조는 다층 아키텍처다. 그중에서도 3계층 아키텍처3-tiered architecture가 제일 많이 쓰인다. 3계층 아키텍처는 3~5장의 내용에 부합한다. 3계층 중 한 층은 데이 터베이스와 관련된 부분을 처리하며 '모델'이라 불린다(5장), '컨트 롤러'라는 중간층은 백엔드, 즉 프로그램의 논리적 흐름을 처리한다 (3장). 그리고 사용자에게 표시되는 것을 담당하는 층을 '뷰' 또는 '프 레젠테이션'이라고 부른다(4장). 이 외에도 여러 가지 아키텍처가 존 재하지만 여기서는 각각의 차이점을 논하지 않고 애초에 그런 아키 텍처들이 왜 존재하는지를 설명하려고 한다.
아키텍처가 존재하는 이유는 첫째, 병렬 작업에 유리하기 때문 이다(이런 코드 설계 원리를 흔히 관심사 분리 separation of concerns라고 말 한다). 마이애폴리 팀에서 뷰, 컨트롤러, 모델을 전담하는 엔지니어가 따로 있다고 해보자. 그러면 컨트롤러 엔지니어는 모델 엔지니어에 게 "방법은 아무래도 좋으니까 내가 사용자 이름만 받을 수 있게 해 줘”라고 말할 수 있다. 다시 말해 뷰 엔지니어와 컨트롤러 엔지니어 는 데이터베이스에 들어가서 이름을 가져오는 코드를 고민할 필요 없이, 당연히 이름을 가져올 방법이 존재하리라 가정하고 자신의 코 드를 작성할 수 있다. 그리고 모델 엔지니어는 두 엔지니어에게 간단 한 방법만 알려주면 된다. "사용자 이름이 필요하면 getUserName 함 수를 호출해 사용자의 위치가 필요하면 getUserLocation을 호출하 고.” 구체적으로 데이터베이스를 조작하는 코드는 모델 엔지니어가 자유롭게 작성하면 된다. 이렇게 애플리케이션을 구성하는 세 영역의 엔지니어들이 다른 영역의 코드에 신경을 안 써도 되면 각 영역을 비교적 독립적으로 개발할 수 있다.
아키텍처가 필요한 이유는 둘째, 유지보수에 유리하기 때문이 다. 예를 들어, 컨트롤러 엔지니어가 모델 엔지니어에게 사용자의 이 름, 주소, 우편번호가 필요하다고 말했다고 하자. 모델 엔지니어는 데이터베이스에서 각각의 정보를 가져오는 함수를 하나씩 만들어 컨트롤러 엔지니어에게 알려준다. 그러면 컨트롤러 엔지니어는 그 함수로 얻은 정보를 활용한 결과물을 뷰 엔지니어에게 보내서 화면 에 표시되게 한다. 석 달 후 엔지니어들은 데이터베이스에서 정보를 가져오는 모델 코드가 비효율적이라고 판단한다. 하지만 뷰 엔지니 어와 컨트롤러 엔지니어는 아무것도 건드릴 필요가 없다. 모델 엔지 니어가 자신의 함수만 개선하면 된다. 이때 만일 명확한 아키텍처가 없다면 데이터베이스 코드가 아무 파일에나 들어갔을 수 있다. 그렇 다면 해당 코드를 찾아서 수정하기가 훨씬 어려울 것이다.
아키텍처의 존재 이유 중 세 번째는 코드 재사용에 유리하기 때문이다. 뷰 엔지니어가 모든 페이지에 사용자 이름을 표시하려 한다고 해보자. 만일 페이지마다 데이터베이스에서 이름을 가져오는 코 드가 따로 작성돼 있다면 일일이 다 수정하느라 애를 먹을 것이다. 하지만 이미 getUserName 함수가 존재하므로 그것을 쓰면 된다. 이 런 추상화를 통해 엔지니어들은 코드를 더 효율적이고 경제적으로 작성할 수 있다.
이 세 가지 장점이 합쳐져서 만들어내는 효과는 명확하다. 바로 개발 시간 단축이다. 제품의 개발과 보수에 들어가는 시간이 짧아지 면 그만큼 많은 시간을 더 수익성 좋은 활동에 투입할 수 있다.
- 자바스크립트 태깅
자바스크립트 태깅이 등장하면서 웹 애널리틱스의 성격이 바뀌었다. 앞에서 자바스크립트를 이용해 특정한 이벤트가 발생했을 때 정해진 코드를 실행할 수 있다고 했다. 예를 들면 사용자가 어떤 버튼을 클릭했을 때 팝업창을 띄우는 것이다. 마찬가지로 '페이지 로딩 완료' 이벤트가 발생했을 때 특정한 코드를 실행할 수 있다. 이 코드 로 사용자 정보, 시간, 웹페이지 설명을 수집한다면 자바스크립트를 애널리틱스 도구로 이용할 수 있을 것이다. 실제로 그렇다. 방법도 간단해서 페이지를 다 불러왔을 때 실행할 자바스크립트 코드만 넣 으면 끝이다. 혹시 캐시 페이지가 열린다고 해도 사용자에게 표시되 는 시점에 자바스크립트가 실행되므로 웹로그보다 좋다. 그리고 특 별한 태그를 넣은 자바스크립트 코드는 차후에 데이터를 필터링할 때 요긴하게 쓰인다.
이상이 간단한 설명이고 여기에 쿠키가 더해지면 이야기가 좀 더 복잡해진다. 웹사이트는 당신이 접속해서 무엇을 클릭했는지부터 시작해 당신과 관련된 정보를 브라우저에 저장하는데 이를 쿠키 cookie라고 부른다. 그래서 다음번에 다시 당신이 접속하면 웹사이트 는 브라우저에 쿠키가 있는지 확인한 후 쿠키가 있으면 당신이 이미 왔다갔던 사람임을 인지하고, 쿠키 내의 정보를 이용해 페이지를 당 신에게 맞춰 커스터마이징한다. 만일 쿠키에 당신이 알아보는 신발 에 대한 정보가 저장돼 있다면 다음번에 접속했을 때는 페이지 상단 에 그 신발이 표시될 수 있다. 다시 애널리틱스 이야기로 돌아가자면 자바스크립트 코드는 쿠키를 이용해서 사용자의 활동을 로그에 기 록한다. 브라우저에 쿠키를 저장한 후 코드의 나머지 부분이 다 실행 되면 그 정보를 서버에 보내서 저장한다. 이 서버는 웹사이트를 운영 하는 회사 혹은 별도의 애널리틱스 서비스 업체가 보유한 것이다.- 예전에는 사내의 IT 부서에서 애널리틱스를 전담했지만 요즘은 전문적인 애널리틱스 서비스가 존재한다. 이런 서비스에서 제공하 는 자바스크립트 코드만 웹사이트에 넣으면 나머지는 그쪽에서 다 알아서 한다. 애널리틱스 서비스에는 시각화 도구를 이용해 데이터 를 더 쉽게 이해하게 해준다는 장점도 있다. 대표적인 서비스가 구글 에서 무료로 제공하는 구글 애널리틱스Google Analytics다. 구글 애널 리틱스는 로그 파일에 데이터를 저장한다. 그리고 몇 시간마다 로그 파일을 분석해서 사용자가 볼 수 있는 데이터로 가공한다. 이 데이터 는 구글 애널리틱스 웹사이트에 접속해야 볼 수 있다.
이런 방식은 여러 가지 장점이 있는데 무엇보다 편의성이 좋다. 서비스 업체에서 제공하는 코드를 복사해 붙이기만 하면 바로 추적 및 시각화 시스템이 작동한다.
하지만 요즘은 자바스크립트를 차단하는 사용자들이 있기 때문 에 어느 정도는 데이터 손실을 감수해야 한다. 그리고 애널리틱스 서 비스를 이용하면, 다시 말해 직접 애널리틱스 정보를 수집해서 분석 하지 않으면 마이애폴리의 귀중한 데이터가 타인의 손에 들어간다 는 사실도 명심해야 한다.
- 패킷 스니핑
패킷 스니핑packet sniffing은 쉽게 말해 마이애폴리의 접속자와 마이애폴리를 호스팅하는 서버 사이에 중개인을 두는 것이다. 사용자가 마 이애폴리의 첫 화면을 요청하면 특수한 소프트웨어와 하드웨어의 결합체인 '패킷 스니퍼'를 거쳐서 요청이 전송된다. 패킷 스니퍼는 중간에서 사용자에 대한 정보를 저장한 후 다시 서버로 보낸다. 그리고 서버가 응답으로 보내는 웹페이지 파일도 패킷 스니퍼를 경유해 서 사용자에게 전달된다. 쉽게 말해 패킷 스니퍼는 사용자 데이터가 지나갈 때 그것을 저장하고 웹페이지 정보가 지나갈 때 또 그것을 저 장한다.
패킷 스니퍼의 장점은 웹사이트 소스코드에 별도의 코드를 추 가할 필요가 없고 서버에 전달되는 모든 요청을 가로채 웹사이트에 서 일어나는 활동 전반을 분석할 수 있다는 점이다. 하지만 초기에 설치하는 과정이 까다로울 수 있고 웹사이트의 캐시 버전으로 전달 되는 요청은 기록되지 않는다. 또 패킷 스니퍼는 사용자의 비밀번호 와 신용카드 번호 같은 민감한 데이터도 가로채므로 주의해야 한다. 이런 데이터를 취급할 때는 개인정보 보호에 각별히 신경써야 한다.
- 웹앱
모바일 웹 애플리케이션은 사용자가 사파리나 크롬 같은 웹브라우 저로 URL을 열어서 사용하는 웹 애플리케이션이기 때문에 세 유형 중에서 데스크톱 웹 애플리케이션과 가장 유사하다. 보통은 모바일 웹사이트라는 더 친숙한 이름으로 불린다. 그리고 많은 제품이 데스 크톱 웹 애플리케이션과 동일한 백엔드에 프런트엔드만 바꿔서 쓴 다. 아니면 아예 데스크톱과 모바일에서 모두 사용 가능한 반응형 웹 사이트를 만드는 경우도 있다. 반응형 웹사이트는 화면 크기에 따라 표시 방식이 달라지기 때문에 태블릿이나 가로로 돌린 화면에서도 잘 표시된다. 화면 크기에 맞춰 요소들이 자동으로 커지거나 줄어들고, 사라지고 이동함으로써 쾌적한 UX를 만든다.
- 모바일 웹사이트는 데스크톱 웹사이트를 토대로 비교적 쉽게 개발할 수 있지만 기기에서 바로 작동하지 않고 브라우저 안에서 작동하기 때문에 속도가 느리다. 더군다나 기기에 내장된 기능을 사용 하는데 제약이 있기 때문에 모바일 앱 특유의 강력한 기능을 구현하기 어렵다. 그래서 많은 기업이 독립된 모바일 애플리케이션을 개발 하는 쪽으로 방향을 전환했다.
- 네이티브 앱
네이티브 앱은 폰의 운영체제에서 바로 작동한다. 가장 많이 쓰이는 운영체제는 각각 구글과 애플이 개발하는 안드로이드와 iOS 다. 간혹 윈도우나 리눅스 기반 운영체제가 설치된 폰도 있지만 대다수는 안 드로이드 아니면 iOS다. 네이티브 애플리케이션은 대개 앱스토어에 서 다운받고 화면에 아이콘으로 표시된다. 굳이 브라우저를 거치지 않고 폰에서 바로 구동되기 때문에 모바일 웹 앱보다 속도가 빠르다. 개발자들이 네이티브 애플리케이션을 만드는 이유는 무엇보다 도 카메라와 GPS처럼 기기에 내장된 기능을 쉽게 활용할 수 있기 때 문이다. 이런 기능은 외부의 백엔드나 API와 달리 오프라인 상태에 서도 이용 가능하기 때문에 애플리케이션 역시 오프라인에서 구동된다. 네이티브 앱은 기기의 저장 공간에 전용 데이터베이스를 저장 해놓을 수 있다. 그러면 사용자의 상호작용을 추적하고 저장하며, 인 터넷에 접속하지 않아도 기기에 담긴 사진이나 메모 같은 콘텐츠를 제공할 수 있다. 갤러리 앱이나 음악 플레이어가 좋은 예다.
그리고 이런 로컬 데이터베이스는 개인 맞춤 콘텐츠를 제공할 때도 요긴하게 사용된다. 데스크톱 웹 애플리케이션도 개인화를 위 한 정보를 저장할 수 있지만 보통은 아이디를 기준으로 한다. 예를 들면 아이디에 구매 이력을 연결하는 식이다. 사람들이 브라우저나 컴퓨터를 하나만 쓰지 않기 때문에 어쩔 수 없는 조처다. 하지만 폰 은 보통 하나씩만 쓴다. 그러니까 모바일 애플리케이션은 번거로운 가입과 로그인 절차가 대부분 없다. 이는 신규 사용자를 유치하는 데 도움이 된다.
끝으로 네이티브 앱은 웹 앱보다 보안성이 강하다. 모바일 운영체제에서 모바일 웹사이트에는 제공하지 못하고 독립 앱에만 제공 할 수 있는 보안 기능을 갖추기 때문이다. 그리고 애초에 앱스토어에 등록되려면 심사를 거쳐야 하는 반면 모바일 웹사이트에는 그런 절 차가 없다." 하지만 또 한편으로는 네이티브 앱이 모바일 웹사이트 보다폰의 내장 기능을 더 많이 이용하기 때문에 공격자들에게 더욱 좋은 먹잇감이 될 수 있다. 물론 모바일 앱과 모바일 웹 앱 모두 해킹 의 위험성이 존재하므로 어느 쪽을 선택하든 보안에 각별히 신경써야 한다.
- 하이브리드 앱
모바일 애플리케이션의 마지막 유형은 네이티브 앱과 웹 앱을 혼합한 하이브리드 앱이다. 하이브리드 앱도 모바일 웹사이트처럼 웹브 라우저로 구동되지만 웹뷰web view를 통해 브라우저가 앱에 내장된 다는 차이점이 있다. 브라우저를 쓰기 때문에 네이티브 애플리케이 션만큼 빠르진 않아도 그와 비슷하게 카메라와 GPS 같은 내장 기능 을 사용할 수 있다. 그리고 앱스토어에 등록되고 폰 화면에 독립된 아이콘으로 표시된다. 하이브리드 앱은 데스크톱 웹 기술을 사용해 서 개발할 수도 있기 때문에 이미 데스크톱 웹 앱이 존재한다면 개발 이 용이하다.
이렇게 기기에 내장된 기능을 이용할 수 있고 개발이 수월하다 는 장점과 별개로 하이브리드 앱은 태생적 한계가 존재한다. 일단 웹 뷰를 이용하기 때문에 느리고 내장 기능을 전부 이용하진 못한다. 그리고 웹뷰가 웹 기술이기 때문에 기기 자체의 설계 원칙을 다 준수할 수도 없다. 설령 그 원칙을 모두 지키는 것이 가능하다고 해도 실천 하기는 어렵다. 그래서 많은 기업이 초기에 우선 가벼운 앱이라도 만 들기 위해 하이브리드 애플리케이션을 개발한 후 장기적으로 네이 티브 애플리케이션으로 전환하는 방식을 택한다. 그리고 웹 개발 경 험은 있지만 모바일 플랫폼 쪽으로는 전문성이 부족할 때나 속도를 좀 손해 봐도 되는 단순한 앱을 개발할 때도 하이브리드 앱이 좋은 선택이 될 수 있다.
- 크로스플랫폼 개발
완전한 네이티브 앱을 만들면 최고의 성능을 낼 수 있겠지만 안드로이드와 iOS 양 진영에 네이티브 앱을 내놓고 유지하려면 개발비가 꽤 많이 든다. 서로 개발 언어가 다르고 앱을 수정할 때마다 업데이 트와 테스트도 플랫폼별로 실시해야 하기 때문이다. 그래서 크로스 플랫폼 cross-platform 솔루션의 인기가 높아지고 있다. 크로스플랫폼 모바일 개발은 단일한 앱이 여러 모바일 운영체제에서 돌아가게 만 드는 것이다. 시중에 크로스플랫폼 모바일 개발을 지원하는 프레임 워크들이 나왔고 그중에는 자바스크립트 같은 웹 기술만으로 코드 를 작성할 수 있는 프레임워크도 많다. 이런 프레임워크를 이용해 네 이티브 앱이나 하이브리드 앱을 크로스플랫폼으로 만들 수 있다.
크로스플랫폼 네이티브 앱 개발을 위한 프레임워크를 사용하면 개발자는 프레임워크에서 제공하는 요소를 이용해 앱을 개발하고, 그 요소들은 다시 각 플랫폼의 네이티브 요소로 변환된다. 이방 면으로는 리액트 네이티브React Native, 플러터 Flutter, 자마린Xamarin 이 인기 있는 도구다. 각 프레임워크가 플랫폼 중립적인 코드를 네이티 브 코드로 변환하는 방식은 다르지만 그 결과물은 완전한 네이티브 앱에 필적할 만큼 빠르게 작동하는 모바일 앱이다. 단, 특정한 기능 을 구현하기 위해서는 각 플랫폼에 맞는 코드를 추가해야 할 수도 있 다. 그래도 코드베이스에서 플랫폼 중립적인 코드가 대부분을 차지 한다.
크로스플랫폼 하이브리드 앱 개발용 프레임워크로는 아이오닉Ionic, 아파치 코르도바 Apache Cordova, 온센UIonsen UI가 있다. 하이브리드 애플리케이션은 데스크톱 웹 애플리케이션의 개발 용이성과 네이티브 모바일 애플리케이션의 기능성을 겸비한다. 이 프레임워크들도 크로스플랫폼 네이티브 앱 개발용 프레임워크와 마 찬가지로 플랫폼 중립적인 코드를 하이브리드 코드로 전환한다. 그 리고 위에서 설명한 것처럼 기기의 내장 기능도 이용할 수 있다.
네이티브 개발과 비교해 크로스플랫폼 개발의 가장 큰 장점은 개발 효율이 극적으로 향상되는 것이다. 개발자가 단일한 코드베이 스만 작성하고 유지하면 되기 때문에 새 업데이트를 훨씬 빨리 내 놓을 수 있다. 웹 기술을 사용하는 것도 개발 시간을 단축하는 요인 이다. 네이티브 코드는 변경 사항이 있으면 다시 컴파일해야 하지만 웹 코드는 재시작 없이 바로 변경 사항이 적용된다(이를 '핫리로드hot reload'라고 한다). 네이티브 코드 컴파일에 수십 분이 아니라 단 몇 초 만 걸린다고 해도 장기적으로 보면 상당한 시간 손실이 발생한다. 
크로스플랫폼 개발은 웹 기술을 사용하기 때문에 개발자도 더 구하기 쉽다. 자바스크립트 같은 기본적인 웹 기술은 많은 개발자가 숙지하기 때문에 신규 개발자가 프로젝트에 빨리 적응할 수 있다. 그 리고 iOS와 안드로이드 전문가를 따로 영입할 필요도 없다.
끝으로 크로스플랫폼 개발은 사용자 유치에도 유리하다. 주력 플랫폼을 정할 필요 없이 처음부터 양 플랫폼 사용자를 동시에 공략할 수 있기 때문이다.
하지만 크로스플랫폼 개발도 단점이 있으므로 페이스북과 에어 비앤비처럼 유명한 기업이 크로스플랫폼에서 손을 뗀 사례도 많다. 크로스플랫폼 앱은 개발 속도가 빠른 대신 실행 속도가 떨어진다. 기 기에서 크로스플랫폼 코드를 네이티브 코드로 변환하는 시간이 필 요하기 때문이다. 그래서 분초가 중요할 만큼 실행 속도가 빨라야 하 는 앱이라면 UX가 나빠질 수 있다. 그리고 크로스플랫폼으로 개발 된 앱은 네이티브 코드 구조를 완전히 반영하지 못한다. 프레임워크 에서 대부분 알아서 처리한다고 해도 플랫폼의 특성을 모두 활용하 지는 못한다. 그래서 복잡한 제품을 개발할 때는 플랫폼 전용 코드가 적지 않게 필요해진다. 그러다 보면 결과적으로 두 개의 플랫폼이 아 니라 세 개의 플랫폼을 지원하는 격이 돼서 크로스플랫폼 개발의 장 점인 신속한 이터레이션이 어려워진다. 끝으로 크로스플랫폼 프레 임워크들의 역사가 아직 길지 않기 때문에 버그가 발생할 확률이 더 높다. 요컨대 크로스플랫폼 개발이 신생 앱을 개발할 때 요긴하긴 하지만 모바일 개발의 문제를 모두 해결해주는 만병통치약은 아니다.

 



'IT' 카테고리의 다른 글

AI 2041  (0) 2023.03.23
웹 3.0 사용설명서  (2) 2023.03.17
비전공자도 이해할 수 있는 AI지식  (3) 2022.12.29
IT 잡학사전  (2) 2022.11.10
인터넷 때문에  (0) 2022.08.20
Posted by dalai
,

- 딥러닝 언어 모델 중 하나인 GPT-3는 다이얼 역할을 하는 매개변수가 1,750억 개나 있습니다. 인간의 뇌는 약 1,000 억 개의 뉴런을 갖고 있다고 하니 단순히 개수로만 따지면 이미 인공 신경망이 인간의 두뇌보다 더 복잡한 셈입니다. 물론 인공 신경망의 매개변수와 인간 두뇌의 뉴런이 같은 역할을 한다고 보기는 어렵습 니다. 게다가 뉴런을 연결하는 접합부인 시냅스는 100조 개나 있습 니다. 이 때문에 일각에선 매개변수도 100조 개는 되어야 인간과 비슷한 성능을 갖출 것이라고 주장하는 학자들도 있습니다. 물론 언젠가는 이 수치에 도달하는 거대한 인공 신경망이 등장하겠지만 중요한 점은 수많은 매개변수 중에서 한두 개쯤 작동 원리를 알아낼 수 는 있어도 모든 매개변수의 작동 원리를 이해하는 것은 불가능에 가 깝다는 겁니다.
인공지능 연구 초기에는 시스템이 왜 그런 결정을 내리게 됐는지 이유를 설명할 수 있어야 한다는 해석 가능성 Interpretability을 매우 중 요하게 생각했습니다. 이 때문에 논리적인 절차를 분석해 결정한 이유를 알아낼 수 있는 if-then 규칙 기반 시스템이 대세를 이뤘죠. 그러나 마이크로소프트의 연구소장 크리스 비숍Chris Bishop, 1959~ 은능 숙한 엔지니어가 인공지능의 추론 과정을 분석한다 해도 이제 의미 없는 일일 가능성이 높다고 얘기합니다. 왜냐하면 지금의 인공지능은 더 이상 인간이 해석할 수 있는 규칙을 거쳐 결론에 도달하는 것 이 아니기 때문이죠. 과거에 규칙 기반은 이해가 쉬웠지만 성능은 실망스러웠습니다. 지금처럼 뛰어난 성능을 내기 위해서라면 해석이 어려운 약점 정도는 받아들일 수 있다는 거죠.
- 2009년 구글의 인공지능 연구 디렉터인 피터 노빅 Peter Norvig. 1956~도 <믿을 수 없는 데이터의 효과 The Unreasonable Effectiveness of Data> 라는 유명한 논문에서 “많은 데이터를 가진 간단한 모델이 적은 데 이터를 가진 정교한 모델보다 더 뛰어나다"라고 주장했습니다. 머신 러닝의 대가인 스탠퍼드대학교의 앤드루 응Andrew Ng, 1976~ 교수 또 한 이 점을 동일하게 강조합니다. 이제는 데이터 중심으로 접근해 야 훨씬 더 좋은 성능을 낼 수 있다는 거죠.
2012년에 빅데이터는 거품 논란이 일었고, 꿰지 못한 서 말의 구 슬에 가까웠지만 오늘날 인공지능이 주목받고 있는 데는 빅데이터의 역할이 매우 큽니다. 인공지능의 성공은 데이터 증가의 성공이라 해 도 과언이 아닐 정도죠. 데이터의 양이 증가하자 '믿을 수 없는 데이 터의 효과'가 나타나 놀랄 정도로 정확도를 높일 수 있었습니다. 빅 데이터가 아니었다면 이룰 수 없는 성과였죠.
- 2015년 가을에는 구글이 텐서플로TensorFlow라는 프로그램을 공개 했습니다. 구글 내부에서 사용하던 딥러닝 라이브러리를 오픈소스 로 공개한 것으로, 복잡한 신경망을 쉽게 구현할 수 있고 확장성도 뛰어나 공개 이후 폭발적인 인기를 끌게 됩니다. 뒤이어 페이스북에서 파이토치PyTorch라는 딥러닝 프로그램을 오픈소스로 공개했으며, 매우 직관적인 방식으로 복잡한 모델도 이해하기가 쉬워서 연구 자들이 논문을 쓸 때 가장 많이 활용하는 프로그램이 되었죠. 지금은 두 프로그램을 이용한 수많은 딥러닝 응용 서비스가 나와 있습니다. 이 책에서 살펴볼 알파고, 스마트 스피커, 기계번역, 챗봇 같은 서비 스 또한 모두 텐서플로 또는 파이토치로 구현합니다. 이 모든 것이 오픈소스의 힘이죠. 지금은 고등학생도 쉽게 딥러닝 애플리케이션을 만들 수 있을 정도로 쉽고 편리한 무료 오픈소스 프로그램들이 많이 나와 있습니다.
- 먼저 정책망을 살펴봅시다. 정책망은 사람이 만든 기보를 이용 해 학습합니다. 학습에 사용한 데이터는 KGS라는 바둑 사이트에서 가져왔으며, 6단 이상인 고수의 기보만 사용했습니다. 얼핏 생각하 기에 9단 기사의 데이터를 사용하면 가장 바람직하겠지만 그러기에 는 데이터의 수가 너무 부족했습니다. 알파고 개발팀은 데이터의 수 가 충분하면서 좋은 기보의 수준을 6단으로 정한 거죠. 각 데이터는 바둑판의 상태와 해당 상태에서 실제로 다음번 바둑알을 둔 곳의 위 치를 함께 쌍으로 구성되었고, 정책망은 약 16만 회의 게임에서 총 3,000만 수를 가져와 학습했습니다. 학습을 마친 정책망은 바둑판의 현재 상태 정보를 입력값으로 했을 때 361개의 바둑 칸 중 어디에 돌 을 내려놓을지 확률을 계산해 리턴합니다. 즉 361명의 후보 중 당첨 가능성이 가장 높은 후보를 골라내는 것과 비슷하죠.
- 이렇게 했을때 정확도는 57% 정도라고 합니다. 정답을 가려놓고 “상대는 어디에 둘 것 같니?"라고 물어봤을 때 정답을 맞힐 확률이 57% 정도 된다는 얘기죠? 아주 높은 수치는 아닌데, 이게 꼭 나쁜 것만은 아닙니다. 제아무리 고수라 할지라도 그가 두는 모든 수가 항 상 최고라고는 할 수 없기 때문입니다. 즉 알파고는 인간 고수의 방 법을 절반 정도 배운 셈이라 볼 수 있습니다. 이때 알파고의 수준은 5단 정도에 불과했습니다. 6단 이상의 데이터로 학습했는데 최종 결 과물은 오히려 5단인 이유는 바둑 기사들의 기풍 때문입니다.
예를 들면, 이창호 기사는 치밀한 계산에 기반한 수비 바둑을 구 사하는 반면, 이세돌 기사는 공격적이고 창의적으로 바둑을 둡니다. 이처럼 워낙 다양한 플레이어의 전략이 뒤섞이면 오히려 전체적인 실력은 더 떨어집니다. 게다가 바둑의 모든 국면을 학습할 수는 없기 때문에 학습하지 않은 국면을 마주했을 때는 실력이 현저히 떨어집 니다. 그래서 알파고는 이를 보완할 수 있는 다양한 방법을 찾아나섰 니다.
우선, 각각의 상황에 따라 정책망 3가지를 만들었습니다. 첫째 망 은 바로 앞서 살펴본 사람의 기보를 이용해 학습한 정책망(이하 '기보 학습 정책망)입니다. 둘째 망은 '롤아웃 정책망입니다. 롤아웃 정책 망은 기보학습 정책망과 비슷하지만 훨씬 작고 가벼운 망입니다. 훨 씬 작게 만들었기 때문에 첫 번째 망보다 약 1,500배 정도 빨리 수를 둘 수 있습니다. 즉 첫째 망이 한 번 착점할 시간에 롤아웃 정책망은 1,500번을 착점할 수 있는 거죠. 당연히 성능은 떨어집니다. 첫째 망 도 정확도가 57%로 높은 편이 아닌데, 롤아웃 정책망은 고작 24%에 불과합니다. 하지만 계산 속도가 빠르기 때문에 탐색을 빠르게 진행할 때 많은 도움이 됩니다. 뒤에서 몬테카를로 트리 탐색 알고 리즘을 적용할 때 롤아웃 정책망이 얼마나 유용한지 다시 한번 살펴 보도록 하겠습니다. 이제 마지막으로 남은 망은 바로 알파고의 핵심 인 스스로 대국하며 강화학습을 수행한 정책망(이하 '강화학습 정책망' 입니다.
이 망은 알파고끼리 대국을 치르면서 스스로 실력을 향상하는 망 입니다. 무작위로 바둑을 두게 되면 제대로 된 대국 경험을 쌓기 가 힘드므로 시작은 기보학습 정책망을 활용합니다. 즉 미리 사람 의 기보를 이용해 학습한 정책망을 이용해 어느 정도 기본 실력을 쌓게 한 다음 스스로 바둑을 두면서 계속해서 실력을 향상하는 거 죠. 실력을 향상하는 기준은 간단합니다. 경기에서 이기면 승리한 측의 모든 수의 점수가 더욱 강화되는 형태입니다. 그래서 강화학습 Reinforcement Learning- 으로 부르는 것이죠. 
- 또 다른 종류의 망은 바로 가치망입니다. 가치망은 앞서 살펴본 정책망과 구조가 조금 다릅니다. 훨씬 더 단순하죠. 가치망은 현재 국면에서 승패 여부를 예측하는 망입니다. 앞서 소개한 정책망들이 361개의 바둑 칸 중 수를 둬야 할 한 지점을 골라내는 신경망이라면 가치망은 오로지 승리할 가능성만을 계산합니다. 확률로 표현해서 50%가 넘는다면 승리할 가능성이 높은 국면이고, 50%가 넘지 않는다면 패배할 가능성이 높은 국면인 거죠. 알파고는 여러 정책망 중에서 가장 실력이 좋았던 강화학습 정책망끼리의 대국을 활용했 습니다. 서로 3,000만 번의 대국을 두게 하고, 각 경기에서 한 장면 씩 3,000만 장면을 추출해 해당 국면 이후에 누가 이겼는지를 학습 했습니다. 만약 74%라는 확률이 나왔다면 현재 국면에서 강화학습 정책망끼리 대국을 벌이면 승리할 확률이 74%라는 얘기입니다.
이처럼 승리할 가능성이 높은지, 패배할 가능성이 높은지를 확률 로 표현한 것이 바로 가치망이며, 이는 알파고의 가장 혁신적인 성 과 중 하나입니다. 알파고는 강화학습을 활용해 지금까지의 바둑 인 공지능이 감히 만들어내지 못한 게임의 판도를 판단할 수 있는 정교 한 방법을 마침내 찾아낸 거죠.
- 이제 레이더와 라이다의 장단점을 비교해서 정리해봅시다. 전 자파를 이용하는 레이더는 장거리 측정이 가능하고, 물체 내부까지 도 감지할 수 있습니다. 날씨의 영향도 거의 받지 않죠. 하지만 물체 의 거리나 방향, 모양이나 구조는 제대로 파악하기가 어렵습니다. 반면 빛을 이용하는 라이다는 정확하게 물체를 인식하고 밀도 있게 표 현해낼 수 있지만 거친 날씨에 영향을 받고, 장거리 측정은 정확도가 현저히 떨어집니다.
- GPS가 터널에 들어가면 작동하지 않는 것처럼 당시 라이다에도 치명적인 문제가 있었습니다. 불과 30m 앞까지만 감지할 수 있었던 거죠. 이 말은 스탠리가 고속으로 주행하기는 어렵다는 얘기였습니다. 당시 대회에는 지그재그 형태의 도로가 많았기 때문에 무턱대고 속도를 높일 수 없는 환경이었지만 그렇다고 항상 안전한 속도로만 주행하면 승리를 장담하기 어려웠죠. 스탠퍼드 레이싱팀 은 스탠리가 라이다의 범위를 넘어서는 구간을 파악할 방법을 찾기 시작합니다. 그리고 정답은 의외로 쉽게 찾을 수 있었습니다. 인간처럼 바라보면 되는 거였죠. 바로 카메라였습니다. 카메라는 라이다보다 훨씬 더 멀리 볼 수 있었습니다. 그래서 라이다가 주행 가능한 도로를 식별하고 카메라가 멀리까지 보면서 장애물이 없다고 판단하면 그 길은 안전한 거였죠. 이런 식으로 스탠리는 시야를 80m까지 확장 할 수 있었고, 주행 속도를 최대 72km까지 높일 수 있었습니다."
- 크롤러의 본래 목표는 색인을 만드는 것입니다. 색인은 문서를 검색에 적합하도록 만들어 검색을 빠르게 수행하는 역할을 한다고 했 죠. 그런데 크롤러의 뛰어난 성능 덕분에 여러 분야에서 크롤러를 활 용하고 있습니다. 다음과 같은 분야가 대표적이죠'
* 가격 비교 사이트에서 여러 제품에 대한 가격 정보를 제공할 수 있 도록 데이터를 수집합니다.
* 데이터 마이닝에 활용할 수 있도록 공개된 회사 메일 또는 주소를 수집합니다.
* 웹 분석 도구가 분석할 수 있도록 조회 수나 링크 정보 같은 웹 페이지의 다양한 메타 정보를 수집합니다.
* 정보 허브에 뉴스 사이트 등의 데이터를 수집하여 제공합니다.

- 2010년대 들어 드디어 딥러닝이 주목받기 시작합니다. 먼저 구문 기반으로 분석하는 방식에 딥러닝을 적용해봅니다. 그리고 우리나 라의 조경현 교수가 몬트리올대학교에서 박사 후 과정 중에 성공적 인 결과를 내죠. 이때부터 바야흐로 딥러닝을 본격적으로 기계번역 에 도입합니다. 이후에는 구문 단위를 넘어 아예 문장 전체에 딥러닝 을 적용하죠. 이를 신경망 기반 기계번역 Neural Machine Translation이라고 합니다.
그렇다면, 신경망 기반 기계번역은 어떻게 작동할까요? 앞서 단어 기반에서 구문 기반으로 확장하면 보다 자연스러운 문장이 나온다고 얘기한 바 있습니다. 신경망 기반은 한발 더 나아가 문장 전체를 마 치 하나의 단어처럼 통째로 번역해서 훨씬 더 자연스러운 번역이 가 능하게 했습니다. 인공 신경망이라는 풍부한 모델과 이를 견인할 수 있는 방대한 데이터를 확보하면서 이것이 가능해졌습니다. 사실 문 장을 통째로 번역해냈기 때문에 번역 과정 자체는 훨씬 더 단순해졌 습니다. 필요한 건 방대한 데이터뿐이었죠.
- 2004년 무렵 구글은 처음으로 번역 서비스를 제공했습니다. 이때 만 해도 직접 번역 엔진을 만들지 않고 시스트란의 제품을 사용했죠. 그러나 2006년에 통계 기반의 기계번역 서비스를 출시한 후부터는 직접 개발하면서 꾸준히 번역기의 성능을 높였습니다. 무엇보다 검색 서비스를 운영하며 엄청나게 많은 데이터를 수집한 구글은 이를 이용해 고품질의 번역 서비스를 단기간 내에 개발할 수 있었죠. 통계 기반을 도입하고부터는 문장이 많을수록 정교하게 확률을 계산할 수 있기 때문에 빅데이터 플랫폼을 갖추고 있는 구글에게 매우 유리했 습니다.
구글은 유엔과 유럽의회의 회의록을 활용했습니다. 유럽의회에만 10년 동안 23개 언어로 번역된 13억 7,000만 단어의 데이터가 있었 기 때문에 좋은 번역 엔진을 만들기에 충분했죠. 게다가 대용량 자 료를 저장하고 처리하는 일은 구글의 장기였습니다. 4장에서 살펴봤 듯이, 구글은 검색엔진을 구축하면서 수백 조개의 문서를 색인하는 등 대용량 데이터를 처리하는 데 풍부한 노하우가 있었죠. 이즈음부터 앞서 나가기 시작한 구글은 2016년 인공 신경망 기반 번역 서비스를 출시하고, 현재는 무려 109개 언어의 번역을 지원하는 세계 최대 규모의 번역 서비스로 성장했습니다. 
- GPT-2와 GPT-3의 연이은 성공에 힘입어 국내에서도 언어 생성 모델을 구축하려는 시도가 잇따르고 있습니다. 대표적으로 네이버에 서 구축한 하이퍼클로바 HyperCLOVA가 있죠. 하이퍼클로바는 GPT-3 보다도 더 많은 2,040억 개의 매개변수를 채택하고 GPT-3보다 6,500배 더 많은 한국어 데이터를 학습했습니다. 영어가 학습 데이터의 대부분을 차지하는 GPT-3와 달리, 하이퍼클로바의 학습 데이 터는 한국어 비중이 97%에 달하죠. 네이버는 한국 기업답게 한국어에 최적화한 언어 모델을 구축했고, GPT-3의 쓰임새가 다양한 것처럼 하이퍼클로바도 국내 서비스의 다양한 분야에 쓰일 채비를 하고 있습니다.
- 실제로 유튜브가 2016년에 공개한 추천 시스템 논문에 따르면, 유 튜브의 추천 시스템은 다양한 특징을 결합한 딥러닝 모델이었습니 다. 그전까지는 유튜브도 행렬 인수분해를 사용했는데 2016년을 전 후해 딥러닝 모델을 점차 도입한 거죠. 여기에는 평가 정보 외에도 고객의 성별, 거주국, 시청 기록, 이전 노출 목록, 마지막 시청 후 경 과 시간 같은 고객 정보를 비롯해 영상 길이, 조회수, 영상 제작 시 점 등 영상에 대한 다양한 정보까지 입력값으로 활용하여 최종 결과 를 예측해냈습니다. 뿐만 아니라 편향을 줄이기 위해 유튜브 이외의 영상을 시청한 이력도 확인했습니다. 앞서 사용자가 유튜브에서 시 청하는 영상 중 70%는 알고리즘이 추천한 영상이라고 했죠. 따라서 유튜브 영상만으로 시청 기록을 학습하면 70% 확률로 추천한 영상 을 다시 학습하는 문제가 생깁니다. 이 같은 편향을 줄이기 위해 유 튜브는 유튜브 밖에서 시청한 이력도 모두 활용한 거죠. 이처럼 유튜 브는 편향까지 없애기 위해 수많은 정보를 종합적으로 고려했고 그 결과가 우리에게 막 시청을 마친 영상 뒤에 올라옵니다.
유튜브는 초창기에 영상을 추천하는 데 어떤 가치를 극대화할지 고민을 거듭했다고 합니다. 초기에는 조회 수를 올리는 데만 방향 이 맞춰져 있었죠. 그러다 보니 크리에이터들이 유익한 영상보다는 온통 자극적인 섬네일을 만들어내는 데 치중했습니다. 영상을 클릭 한 사람들이 낚인 걸 알고 즉시 빠져나와도 이미 조회 수는 올라간 뒤였죠.
이후 유튜브는 사람들이 오래 시청하는 영상을 추천하도록 보상함수를 개선했다고 밝힙니다. 뿐만 아니라 이어 보기'에도 매우 높은 가중치를 부여했죠. 보상은 기존처럼 '많이 클릭' 하는 게 아니라 '덜 클릭하고, 더 오래 보는' 영상에 집중되었고, 실제로 영상의 품질 을 높이는 데 많은 도움이 되었습니다!
또한 유튜브는 신선도를 무척 강조합니다. 4장에서 '최신 문서'의 중요성을 강조한 것처럼 새로 올라온 영상일수록 고객의 관심이 높 기 때문이죠. 뉴스, 영화, 유튜브 모두 소위 '신상'이 매우 중요한 콘 텐츠입니다. 하지만 새로운 영상은 영상에 관한 아무런 정보가 없는 콜드 스타트Cold Start 문제에 봉착합니다. 콜드 스타트는 말 그대로 차갑게 시작한다는 건데요. 새로 올라온 영상일수록 조회 수도 없고 인기가 있을지 알아낼 만한 정보가 거의 없기 때문에 추천 영상에 올 라가기가 매우 어렵습니다. 올림픽에 육상 선수를 내보내야 하는데, 고객들은 무엇보다 새로운 영상을 좋아합니다. 하지만 새로울수록 정보가 부족하기 때문에 추천이 더 어려워지는 역설적인 상황에 놓입니다. 추천 시스템은 이 문제를 해결해야 하죠. 마치 점쟁이처럼 영상의 몇 가지 특징만 가지고 불특정 다수에게 추천할 수 있어야 합 니다. 정말 어려운 일이죠.
영상뿐만 아니라 고객도 마찬가지입니다. 신규 고객의 관심사를 예측하기도 정말 어려운 일이죠. 넷플릭스도 초창기에 그리고 왓챠 도 가입을 하면 굳이 선호하는 영화를 몇 가지 택하도록 합니다. 신 규 고객의 선호도를 미리 파악하여 정교한 추천을 시작하기 위해서 죠. 아무런 고객 정보가 없다면 무엇을 추천해야 좋을지 도무지 감을 잡기가 어렵습니다. 로맨스를 좋아하는 고객에게 갑자기 공포 영화 를 추천하면 그 서비스에 첫인상이 좋지 않을 겁니다.
- 이외에도 추천 시스템은 고객이 기존 취향의 울타리 안에만 갇히 지 않도록 노력합니다. 협업 필터링이 어느 정도 관심사를 확장하는 효과를 내긴 하지만 이 또한 성향이 비슷한 고객만 구독하게 된다면 다른 성향의 고객이 좋아하는 콘텐츠는 알 길이 사라지죠. 보수적인 성향의 사용자가, 보수적인 취향을 지닌 사람만 구독하면 항상 비슷한 우파 영상을 추천받게 되겠죠. 이는 진보적인 성향도 마찬가지입니다. 결국 서로가 단절되고, 우물 안 개구리처럼 편견을 강화할 뿐 입니다. 이는 사회적으로 매우 위험한 문제로 번질 수도 있습니다. 그래서 뜻밖의 발견serendipity 이 중요합니다. 멋진 영어 단어이자 설레는 표현이기도 하죠. 여기에는 2가지 조건이 충족되어야 합니 다. 지금까지 본 적 없는 것이지만 희한하게도 마음에 들어야 하죠. 다시 말해 나에게 편하고 익숙한 구역 바깥에 있어야 하지만 또 아예 엉뚱하지는 않아야 합니다. 참, 어렵죠. 하지만 사람들이 "알 수 없는 알고리즘이 여기로 이끌었다"라고 자주 감탄하는 것은 그래도 이 2가지 조건을 종종 만족하고 있다는 거겠죠?



'IT' 카테고리의 다른 글

웹 3.0 사용설명서  (2) 2023.03.17
최소한의 IT언어  (2) 2023.02.24
IT 잡학사전  (2) 2022.11.10
인터넷 때문에  (0) 2022.08.20
처음 읽는 양자컴퓨터 이야기  (0) 2022.07.07
Posted by dalai
,

IT 잡학사전

IT 2022. 11. 10. 16:06

- 시스템 유지·보수, 안드로이드 앱 개발을 하고 싶다면? 자바 
자바는 우리나라에서도 유명하고 실제로 많이 쓰는 언어야. 주로 정부나 은 행, 기업에서 많이 사용하지. 그래서 자바를 다룰 줄 알면 취업 시장에서 굉장 히 유리해. 아무래도 관련된 채용 공고가 다른 언어에 비해서 많은 편이거든. 그렇다면 자바는 취업 시장에서 완전 짱일까? 아니야. 스타트업에서는 자바 개발자를 많이 구하지 않아. 왜냐하면 자바는 역사가 아주 긴 언어여서 오래 된 프로그램을 보수하는 데 더 많이 쓰이거든. 스타트업에서는 최신 기술을 주로 사용하니까 자바 개발자를 많이 채용하지 않는 거야. 정리하자면 자바는 우리나라 대다수 회사에 취업할 때 유리한 언어야. 자바에 기반한 전자 정부 프레임워크를 사용하는 회사가 많거든.
물론 안드로이드 애플리케이션 개발에도 쓰이므로 안드로이드 개발자가 되고 싶다면 자바를 공부해야겠지. 안드로이드 개발 얘기가 나왔으니까 말인데, 요즘 이쪽 진영에서는 자바와 코틀린을 모두 사용해. 코틀린이 뭐냐고? 코틀린은 젯브레인즈(JetBrains)에서 개발했고, 그 이후에는 구글에서 안드로이 드 공식 언어로 채택했어. 그런데 코틀린은 프로그램을 실행하기 전에 자바로 완전히 변환되는 특징이 있어서 자바를 알면 코틀린도 빠르게 배울 수 있어. 코틀린은 자바에 비해 나중에 나온 언어라 개발자에게 비교적 편리한 문법이 많은 것도 특징이야.
- 웹 개발, 인공지능 개발 등 범용성이 매우 넓고 초보자에게 강추! 파이썬
이번에 설명할 언어는 그 유명한 파이썬이야. 파이썬은 프로그래밍 초보자가 입문하기에 가장 좋은 언어야. 왜냐고? 파이썬은 아주 다양한 용도로 사용할 수 있거든. 그리고 현재 가장 많이 사용하는 언어라서 일단 배워 두면 쓸모가 많을 거야. 물론 언어는 시대에 따라 인기가 달라지기는 해. 하지만 당분간은 파이썬이 가장 인기 있는 언어일거야. 파이썬은 머신러닝도 할 수 있고 데이 터 과학 분야에서 사용할 수도 있어. 그뿐일까? 웹 스크래핑, 웹 사이트 만들 기, 서버 만들기, 유용한 애플리케이션 만들기 등등 엄청나게 많아. 언어 하나 만 배워도 여러 가지를 만들어 볼 수 있으니 호기심에 언어를 배우려고 하는 사람에게는 파이썬이 딱이야. 간단한 프로그램을 만들기에도 적합해.
- 웹 개발을 하고 싶다면? 자바스크립트 
자바스크립트는 HTML과 CSS까지 합쳐서 생각하는 것이 좋아. 요 세 녀석은 세트 느낌이 있거든. 아무튼 이 녀석들을 줄여서 HCJ라고 할게. 웹 사이트나 웹 앱을 만들려면, 다시 말해 웹 프로그래밍을 하고 싶다면 HCJ를 배우도록 해. 물론 다른 언어로도 웹 프로그래밍 일부는 할 수 있지만 만약 웹 프로그래 머를 목표로 한다면 무조건 HCJ를 배워야 해. 특히 자바스크립트는 잘 다룰 수 있어야 해. 왜냐고? 자바스크립트는 버튼을 누르면 데이터를 전송하거나 메뉴를 접었다 폈다 할 수 있는 등 동적인 웹 사 이트를 만들 수 있게 해주거든. 심지어 서버 쪽의 코드, 백엔드 영역도 개발할 수 있어, 자바스크립트도 파이썬처럼 다양한 목적으로 코딩할 수 있는 언어이 기 때문이야. 만약 웹 프로그래밍 분야의 개발자가 될 생각이라면 HCJ를 공 부하되 자바스크립트는 특히 더 열심히 공부하기를 추천할게
- 가전 제품에 이식되는 프로그램을 만들고 싶다면? C 언어
우선 C 언어! C 언어는 제한된 상황에서 최대 성능을 내기 위해 만들어졌어. 그래서 개발자들은 C 언어를 '기계가 소통하는 방식에 매우 가까운 언어' 라고 이야기하기도 해. 주변에서 흔히 볼 수 있는 가전제품 있지? 에어컨이나 TV, 스마트 냉장고 같은 기기에 들어 있는 프로그램이 바로 C 언어로 프로그래밍 한 거야. 
- 컴퓨터의 자원을 효율적으로 쓰는 C 언어
C 언어는 1972년에 탄생했어. 무려 50년 이나 되었지! C는 자바, 자바스크립트, 파 이썬, PHP, 고와 같은 수많은 언어에 영향 을 준 중요한 언어야. 50년 전에 개발하다. 보니 C 언어만의 특징이 있어. C 언어가 처음 등장했을 때 컴퓨터는 어땠을까? 지금처럼 빠르지 않았지.
그래서 C 언어를 개발할 때에는 자원을 효율적으로 쓰면서도 최대 성능을 내 는 프로그램을 만들 수 있어야 한다는 것을 최우선으로 했어. 그리고 이 목적 을 달성하기 위해 C 언어는 메모리 자원을 정밀하게 조절할 수 있어야 했지. 쉽게 말해 C 언어는 자원이 열악한 상황에서 사용하기 좋은 언어야.
- 마이크로소프트에서 만든 C# 언어 
C#은 C, C++과 이름은 비슷하지만 완전히 다른 언어야. 심지어 C#은 C도 C++도 아닌 자바와 비슷한 언어야. 또, C# 언어는 개발자가 개발한 게 아니 라 기업에서 필요해 만들었다는 거야. 그래서 만약 누군가 나에게 “C#은 어 떤 언어인가요?”라고 묻는다면 한 줄로 이렇게 답할 거야.
"C# 언어는 마이크로소프트가 만든 자바 언어라고 생각해도 좋아!"
- C, C++, C# 언어 정리하기
* C 언어는 세 언어 가운데 가장 오래되었고, 메모리 자원을 효율적으로 사용하면서도 실행 속도가 빠르다. 
* C++은 C를 포함하는 언어로, 절차 지향이면서도 객체 지향이다. 실행 속도는 C 언 어와 비슷하다.
* C#은 마이크로소프트에서 만든 언어로, 다양한 분야에서 사용할 수 있다. 실행 속 도는 세 언어 가운데 가장 느리다.
- 파이썬으로 할 수 있는 개발 분야
* 인공지능 & 데이터 분야: 케라스, 텐서플로, 판다스 등
* 웹 개발 분야: 장고, 플라스크 등
* 업무 자동화 분야: 엑셀, 메일 보내기 등
* 이미지 처리 분야 · 게임 분야
* GUI 분야 등
- 그래서 대체 자바와 어떻게 완벽하게 호환될 수 있냐고? 100% 호환이란 게 뭔지 이야기를 안 했네. 호환이란 자바 코드에서 코틀린 코드를 부를 수도 있고, 반대로 코틀린 코드에서 자바 코드를 부를 수도 있어 야 한다는 뜻이야. 그리고 이 모든 것이 가능한 이유는 자바 가상 머신 때문이야. 여기서 조금 어려운 이야기를 할 텐데 그래도 최대한 쉽게 설명해 줄 테니까 들어 봐.
- 컴필레이션과 인터프리테이션의 차이 간단히 짚고 넘어가자
먼저 컴필레이션(compilation)과 인터프리테이션(interpretation)이라는 개 념을 알아야 해. 이건 [에피소드 08]에서도 설명했는데 한 번 더 설명해 줄게.
컴필레이션은 코드 전체를 받아서 한번에 기계어로 해석하는 것이고, 인터프리테이션은 코드를 실시간으로 기계어로 해석하는 것을 말해. 그래서 컴필레 이션 방식으로 동작하는 코드가 인터프리테이션 방식으로 동작하는 코드보다 빨라. 그런데! 컴필레이션은 플랫폼에 의존해. 무슨 말이냐면 코드가 실행될 환경(플랫폼)이 달라지면 컴필레이션은 그때마다 개발자가 컴파일 과정을 한 번씩 실행해 줘야 해. 왜냐고? 운영체제마다 각각 서로 다른 기계어를 쓰니까 말이지. 반대로 인터프리테이션은 인터프리터라는 녀석이 알아서 실시간 번역을 해주니 우리는 새로 컴파일을 실행해 줄 필요가 없어. 
- 컴필레이션과 인터프리테이션을 다 활용하는 자바
 그리고 자바는 앞에서 소개한 두 녀석을 다 사용해. 무슨 말이냐면 여러분이 자바로 코드를 작성하잖아? 그러면 컴파일을 해. 근데 컴파일해서 얻는 결과 물은 기계어가 아니야. 자바 바이트 코드라는 것이지. 그리고 이 자바 바이트 코드는 다시 윈도우, 리눅스, 맥OS에서 실행될 때 자바 가상 머신이라는 녀석 이 해석해서 각각의 기계어로 번역해 줘.
이런 자바의 특징 덕분에 코틀린이 자바와 100% 호환될 수 있어. 어떻게? 코 틀린을 자바 바이트 코드로 컴파일하기만 하면 되거든. 그러면 결국 실행에 쓰이는 것은 자바 바이트 코드니까 둘 사이에는 아무 문제가 없겠지!
- 브라우저는 이렇게 엔진이라는 것을 장착해서 HTML, CSS, 자바스크립트를 이해할 수 있는 거야. 좀 멀리 돌아왔지만 중요한 것은, 이 엔진의 성능이 바로 웹 브라우저의 성능을 결정한다는 거지. 그러니까 이 엔진이 최 신 표준안, 최신 기술을 지원한다면 최신 웹 브라우저가 되는 거야. 우리가 가 전제품을 살 때와 완전히 같아. 이제 '웹 브라우저가 ○○○을(를) 지원한다. 라는 말이 무슨 뜻인지 알겠지??
- 풀스택 간단 정리 
이렇게 프런트엔드, 백엔드 개발을 다 마치면 개발이 끝날까? 아니야! 그걸 서버에 올려야 해. 서버를 고르고, 설정하고, 서버에 소프트웨어도 설치하고, 데이터베이스 설정도 하고, 보안도 신경 써야 하고... 할 것이 엄청나게 많아. 이 모든 것을 데브옵스라 하고, 이런 일을 하는 사람을 데브옵스 개발자라고 하지. 프런트엔드, 백엔드, 데브옵스를 모두 다 할 수 있는 사람이라면? 풀스 택 개발자라고 하는 거야. 그래서 풀스택 개발자가 되기는 정말 어려워. 웹 페 이지의 화면도 만들어야 하고, 데이터베이스에 데이터를 저장하기도 해야 하 고, 완성된 프로그램을 서버에 올려야 하는 등 모든 과정을 전부 다! 그것도 자세히 알아야 해. 사실 조금 과장해서 풀스택 개발자는 1인 스타트업을 만들 수도 있어. 물론 기획도 할 줄 알아야겠지만,
- SQL과 데이터베이스 개념 제대로 짚기
SOL은 structured query language의 줄임말이야. 의미를 해석해 볼까?
structured는 구조화된이라는 뜻이고, query는 질문 또는 문의, language는 언어를 말하지. 즉, SQL은 데이터베이스에 어떤 질문 또는 문의를 하기 위해 어떤 구조를 가진 언어라는 것을 알 수 있어. 즉, SQL은 한마디로 말해 데이터베이스를 다루는 언어야.





'IT' 카테고리의 다른 글

최소한의 IT언어  (2) 2023.02.24
비전공자도 이해할 수 있는 AI지식  (3) 2022.12.29
인터넷 때문에  (0) 2022.08.20
처음 읽는 양자컴퓨터 이야기  (0) 2022.07.07
웹 3.0 레볼루션  (0) 2022.07.03
Posted by dalai
,

인터넷 때문에

IT 2022. 8. 20. 22:28

- 인터넷 약어는 문어와 비격식성의 교차를 보여주는 완벽한 사 례다. 인터넷 약어는 문어에서 유래했다. 약어는 타자로 쳐야 할 글자 수를 줄여주지만, 반드시 발음하는 음절의 개수를 줄여주는 것은 아니다. 예컨대, 말할 때는 I dunno가 효율적인 반면 글을 쓸 때는 idk가 효율적이다 (우리말에서는 '안녕' 대신 ‘ᄋᄂ'을 쓰는 등이 이런 효율적 인터넷 약어의 예가 될 것이다). 이런 약어의 기능은 비격식적이다. idk (I don't know, 모름), wtf (what the fuck, ᄉᄇ 뭐냐), jsyk (just so you know, 그냥 알려주려고), afaik (as far as I know, 내가 알기로는), imo (in my opinion, 내 생각엔), til (today I learned, 오늘 알게 된 건데), tfw(that feeling when, ~할 때의 그 느낌) 처럼 개인의 감정과 생각을 표현하는 것이다. 전문용어의 약어는 그 용어와 동시에 만들어지고, 가끔은 어떤 약어가 될지를 고려하면서 용어가 만들어지기도 한다. 반면 사회적 약어는 이미 흔하게 사용되는 표현 으로부터 만들어진다. 하지만 우리가 효율성 극대화만을 위해 움직 이는 건 아니다. 가끔 우리는 글로 구어를 연상시키고 싶을 때 단어 의 철자를 바꾸어 쓰거나, 구어로 글을 연상시키고 싶을 때 약어를 말하기도 한다. 효율성은 그저 특정한 생략이 어디에서, 왜 발생했는지에 관한 한 가지 힌트일 뿐이다.
- 영어가 같은 기간에 아이슬란드어보다 빠르게 변화한 것은 분명하다. 레슬리 밀로이와 제임스 밀로이는 그 이유가 약한 유대라고 주장했다. 아이슬란드에 관해 알아야 할 한 가지는 정말로 밀접한 공동체라는 점이다. 아이슬란드인들의 성씨는 여전히 아버지의 이름, 혹은 간혹 어머니의 이름에서 따온다 (성이 와야 할 자리에 ~의 딸' 혹 은 ~의 아들'이라는 의미의 단어가 오는 형태다. 예컨대 Egil의 아들 Gunnar의 전체 이름은 Gunnar Egilson이 되는 식이다). 이런 방식은 만나는 사람 대부분이 이미 나의 가족을 아는 사회에서 훨씬 더 합리적이다. 광범위한 친인척 네트워크를 언급하면서 자신을 소개하는 경향은 사가가 쓰인 시대까지 거슬러 올라간다. 누군가가 아는 모든 사람이 이미 서로를 안 다면, 새로운 언어 형태는 무작위 변형을 통해서만 발생할 수 있다. 새 언어 형태를 빌려올 약한 유대가 없다.
반면 영어는, 역사가 흐르면서 약한 유대가 일어날 만한 유의미한 일들을 몇 차례 거쳤다. 덴마크와 노르만의 침략, 출세를 위해 고향을 떠나 런던으로, 이후에는 다른 도시로 이동하던 전통, 제국 주의적 팽창 등이 그 예다. 물론, 영어 사용자의 세계에도 나름대로 끈끈한 관계를 맺고 있는, 모두가 서로의 친척을 아는 작은 공동체들이 있다(나는 지금도 가족 모임에서는 부모님이나 조부모님이 누구인지 말하는 방식으로 자기소개를 한다). 하지만 영어 사용자 의 세계에는 군중 사이에서 익명을 유지하거나, 결코 서로를 만나는 일이 없는 친구 집단들을 둘 수 있는 대도시도 많다. 더욱이, 이 장의 첫머리에서 살펴본 지도 연구를 보면 영어 사용자의 세계에서 더 많은 언어학적 변화를 일으키는 곳은 비교적 크고 느슨하게 조직된 도시였다.
- '점점점’을 찍는 사람들과 행갈이를 하는 사람들은 문장부호의 시초를 생각하게 한다. 최초의 문장부호들은 발화 사이의 단절을 표시하는 것이었고, 이를 처음으로 사용한 사람은 중세의 필경사들 이었다. 중세 시대의 중요한 문장부호 중 하나는 푼크투스(punctus) 라는 점이다. 푼크투스는 현대의 쉼표가 들어갈 만한 자리에는 짧 은 호흡을 표시하기 위해서, 문장 중간에는 중간 정도의 호흡을 표 시하기 위해서, 글자 위쪽의 아포스트로피가 들어갈 만한 자리에는 긴 호흡을 표시하기 위해서 들어갔다. 그보다 전인 고대 그리스와 로마에서는 글이 숨은 단어 찾기 퍼즐과 같았다. 문장부호도 없고, 문장도 나누어지지 않았으며, 단어 사이에 띄어쓰기도 되지 않은 데다 전부 대문자이거나(조각된 경우) 전부 소문자였다(잉크로 쓴 경우), 독자는 퍼즐을 풀 때처럼 한 단어가 끝나고 다른 단어가 시작되는 곳이 어디인지 알아내야 했다. 역시 퍼즐을 풀 때처럼, 독 자들은 낮은 소리로 중얼거리는 방법을 써서 그런 일을 해냈다. 다행히도 단어 찾기 퍼즐에서와는 달리 단어가 대각선으로 적혀 있지는 않았으며, 헷갈리라고 일부러 집어넣은 글자도 없었다.
16~17세기에는 인쇄 기술과 사전이 발전하면서 철자법과 문장부호가 더욱 복잡해지고 표준화됐다. 필경사들은 저마다 특이 한 방식으로 철자와 문장부호를 썼지만, 인쇄공들은 조판 과정에서 자신들이 인쇄하는 다른 모든 것과 어우러지도록 상황을 바꿀 수 있었으며 실제로 그렇게 했다. 사람들이 개인적인 편지를 주고받을 때도 이처럼 정교한 지침을 완전히 따른 것은 아닐지 모른다. 제인 오스틴, 에밀리 디킨슨, 비틀스는 확실히 그렇게 하지 않았다. 하지 만 인쇄 기술이 더 많은 독자를 만나기 위한 가장 쉬운 방법이 되자, 사람들은 편집되고 표준화된 문장부호를 주로 보게 되었다. 반면,
인터넷은 우리가 개인적으로 선호하는 문장부호를 공개적인 공간에 내놓았다. 이에 따라 다른 우선순위가 생겨났다. 인터넷의 문어는 직관적이고 쉽게 생산할 수 있어야 하며 생각이나 말하기만큼이나 빨라야 했다. 우리는 이런 조건들을 모아, 활자로 표현된 어조라는 시스템을 만들어냈다.
- 메시지 전체를 진한 대문자로 써도 괜찮다는 생각은 어디에서 유래한 걸까? 어쨌거나 사람들 은 천 년 넘게 소문자 손글씨를 써왔고, 신파적인 빅토리아 시대 조기의 사람들조차 모든 것을 대문자로 쓰지는 않았다. 왜 컴퓨터를 사용하면서부터 갑자기 모든 글자를 대문자로 쓴단 말인가?
아마 어느 정도는 전보를 보내기 위해 쓰인, 대시와 점으로 가 득한 모스부호 때문에 그랬을 것이다. 모스부호는 모든 글자를 점 과 대시의 조합으로 나타낸다. 길거나 짧게 두드리는 신호로 전송하기에 적합하기 때문이다. A는 점 대시, B는 대시 점 점 점이다. 나머지 26개의 글자도 모두 최대 네 개의 점이나 대시, 혹은 그 둘의 조합으로 나타낼 수 있다. 하지만 소문자를 포함하고 싶었다면, 대여섯 개의 점이나 대시가 필요했을 것이다. 52개의 글자를 나타내 야 했을 테니 말이다. 그리고 전신 기사들은 두 배나 많은 부호를 암 기해야 했을 것이다. 당연하게도 사람들은 굳이 그럴 필요는 없다고 생각했다. 모든 문자를 대문자로 썼던 로마인들에게 별문제가 없었다면, 전보를 전부 대문자로 쓰는 것도 괜찮을 터였다.
초기 컴퓨터도 비슷했다. 초기 컴퓨터 일부는 정보를 전송하거 나 출력하기 위해 텔레타이프 기계(전신 기사의 기계 후손'이라고 할 수 있다)를 사용했다. 코딩을 시작할 때 배우는 고전적인 첫 명 령어는 PRINT("HELLO WORLD) 같은 것인데, 이 명령어는 컴 퓨터가 HELLO WORLD를 화면에 표시하도록 한다. 지금은 이 명령어를 사용하지 않지만 옛날에는 그랬다. 화면이 존재하기 전에, 텔레 타이프 기계에 단어를 입력함으로써 컴퓨터에 명령을 내리고 컴퓨터의 답이 두루마리 종이에 인쇄되어 나오던 시절에 말이다. 컴퓨터에 화면이 생긴 다음에도 저장공간은 여전히 비쌌고, 전신 기사 의 뇌세포만큼이나 소중했다. 그래서 애플II 등 아주 많은 컴퓨터가 모든 것을 오직 한 가지 형태의 문자, 즉 대문자로만 표현했다. 이런 설정의 흔적이 몇몇 상업용 컴퓨터 시스템에는 아직도 남아 있다. 텔레타이프는 흔하지 않지만, 식료품점의 영수증이나 은행 거래내 역서, 비행기표는 돌돌 말린 광택지에 전부 대문자로 인쇄되어 나온다.
컴퓨터가 소문자를 지원하기 시작하던 시점에 우리는 대립되는 두 가지 표준을 마주하게 되었다. 한쪽 사람들은 전부 대문자를 사용하는 것이 컴퓨터에 글을 쓰는 방식이라고 으레 생각했고, 다 른 쪽 사람들은 대문자만 사용하는 것이 고함을 의미한다며 물러 나지 않았다. 궁극적으로는 감정적 의미가 승리를 거두었다. 기능의 변화는 이름의 변화와 함께 일어났다. 구글 북스(Google Books)에 스캔된 수백만 권의 책에 따르면, 전부 대문자로 썼다는 뜻의 all caps와 all uppercase라는 단어 사용이 1990년대 초반부터 가파르게 증가했다. 반면, 이 세기 초반에 선호되던 용어는 block letters 혹은 block capitals였다. 사람들은 소리치는 글자에 관해 말할 때 all caps 라는 표현을 쓰는 경향이 있었다. 반면, block capitals는 표지판이나 서류 양식 등 공식적인 데 쓰이는 대문자를 가리키는 경우가 더 흔했다.
- 하지만 어조를 표현하는 대문자로만 쓰기가 추가되었다고 해 서 공식적임을 나타내는 대문자 사용이 사라진 건 아니었다. 이런 용도는 EXIT (출구) 표지판이나 CAUTION (주의) 테이프, CHAPTER ONE(1장) 등의 제목에 남아 있다. 이런 표현은 강조를 의미하는 것일 수는 있으나 시끄러운 것으로 해석되지는 않는다. 오히려 우 리의 해석은 해당 글자를 공식적인 것으로 읽느냐, 비공식적인 것 으로 읽느냐에 따라 달라지는 것으로 보인다. 웹사이트 메뉴의 HOME은 그냥 그래픽 디자인상의 선택일 뿐이지만, ugh I want to go HOME (집에 가고 싶어)” 같은 메시지의 HOME은 활자로 표현한 어조다.
- 문어에서의 예의가 전자식 의사소통에만 나타난다고 하기는 어렵겠지만, 인터넷 이전에는 유쾌하고 비공식적이며 일상적인 요 청이 보통 구어로 이루어지거나 종잇조각에 휘갈겨 쓴 쪽지로 전달 됐다(“전에 부탁했던 책이야!” “강아지 밥 줬어.”). 사람들이 포스 트잇 쪽지를 남길 대상과 어느 정도 친밀한 관계를 이미 형성했을 가능성이 큰 건 사실이지만(물리적 공간을 함께 쓰고 있으리라는 건 말할 필요도 없다), 그 점을 감안하더라도 그들이 가족이나 룸메 이트에게 남긴 수십 장의 스캔된 쪽지를 살펴보면 하트나 웃는 얼 굴, xo가 서명처럼 남겨져 있다. 보이지 않는 타인과 거의 실시간으 로 관계를 맺고 싶어 하는 바로 그 순간에 명랑하고 사교적인 글자 레퍼토리가 확장되는 것을 우연이라고 보기는 어렵다.
- 내부자 농담을 만드는 한 가지 방법은 컴퓨터 언어 자체를 사 용해 우스꽝스러운 유사 코드를 작성하는 것이다. 예컨대, HTML 에서 일련의 문자를 이탤릭체로 표시하고 싶다면 이탤릭체를 시작 하고 싶은 부분에 〈i)를 넣고 끝내고 싶은 부분에 </i>를 넣으면 된 다. 이런 형식은 자연스럽게 창의적인 활용으로 이어졌다. 예컨대, sarcasm (비아냥)이란 단어로 코드 모양을 만들어 <sarcasm〉난 뭐가 문 제인지 모르겠는데 </sarcasm)로 쓸 수 있다. 컴퓨터는 유머 감각이 라고는 없는 짐승인지라 명령어를 알아듣지 못한다. 하지만 컴퓨터와 대화하는 데 익숙한 동료 인간들은 당신이 꽤 영리하다고 생각할 수도 있다. 특히 당신이 이런 표현을 사용할 창의적인 방법을 찾아낸다면 말이다. 대단히 컴퓨터광다운 사례는 LISP라는 프로그래밍 언어에서 찾을 수 있다. LISP에서 예/아니오로 답할 수 있는 질문을 던지는 방법은 끝에 -P를 적는 것이다. 예를 들어, TRUE-P라고 적으면, “사실인가?” 라는 뜻이 된다. 전해오는 이야기에 따르면, 언젠가 LISP 프로그래머 몇 명이 외식을 하러 나갔는데 그중 한 명이 2인용 메뉴를 나눠 먹고 싶은 사람이 있는지 알고 싶어져서 "Split -p soup? (수프 나눔-P?)  라고 물었다고 한다.

'IT' 카테고리의 다른 글

비전공자도 이해할 수 있는 AI지식  (3) 2022.12.29
IT 잡학사전  (2) 2022.11.10
처음 읽는 양자컴퓨터 이야기  (0) 2022.07.07
웹 3.0 레볼루션  (0) 2022.07.03
1일 1로그 IT지식  (0) 2022.06.01
Posted by dalai
,

- 오해 1 양자컴퓨터는 온갖 계산을 빠르게 처리한다?
이것이 양자컴퓨터에 관한 가장 흔한 오해다. 양자컴퓨터로 빨리 풀 수 있는 문제는 몇 종류밖에 없다. 그 밖의 문제는 지금의 컴퓨터와 양자컴퓨터의 계산 속도가 비슷하다.  컴퓨터군과 양자컴퓨터군이 어떤 수학 문제를 풀어야 한다고 하자. 컴퓨터군은 문제를 풀려면 어떤 순서로 계산해야 하는지 알 고 있다. 먼저 숫자 X와 숫자 Y를 더해서 그 결과에 숫자 Z를 곱한다. 는 식으로, 순서에 따라 사칙연산을 몇 번이고 반복해서 답을 계산한 다. 반면 양자컴퓨터군은 이러한 사칙연산을 해내는 속도가 빠른 것이 아니라 더 스마트한 해법을 알고 있다. 스마트한 해법을 사용하면 사칙 연산의 횟수를 확 줄일 수 있으므로 훨씬 짧은 시간에 답을 계산할 수 있다. 안타깝게도 컴퓨터군과 양자컴퓨터군은 뇌 구조가 서로 달라서 컴퓨터군이 이런 스마트한 해법을 흉내 내고 싶어도 불가능하다.
양자컴퓨터로 계산이 빨라지는 것은 계산 횟수를 줄일 수 있어서지 계산하는 속도가 빨라져서가 아니다. '양자'라는 플러스알파 역할을 하는 기능을 사용해서 현대의 컴퓨터보다 적은 계산 횟수만으로 답을 찾는 스마트한 방법을 사용하는 것이다. 어느 정도 계산 횟수를 줄일 수 있는지는 문제에 따라 달라지므로 '양자컴퓨터는 현대의 컴퓨터보다 배 빠르다'라고 말할 수는 없다. 게다가 양자컴퓨터 특유의 해 법이 발견되지 않은 문제에 관해서는 보통의 컴퓨터와 같은 해법을 사 용하므로 계산 횟수가 같다. 참고로 실제 계산에 필요한 시간은 계산 1회에 걸리는 시간과 필요한 계산 횟수의 곱인데, 계산 1회에 걸리는 시간이 얼마나 될지는 양자컴퓨터를 실제로 만들어보지 않으면 알 수 없으므로 지금은 고려하지 않는다.
- 오해 2 양자컴퓨터는 병렬 계산을 하기 때문에 빠르다?
양자컴퓨터에서 계산이 빨라지는 원리를 설명할 때 ‘병렬계산'으 로 여러 계산을 동시에 병행해서 할 수 있기 때문이라고 설명하는 경 우가 많은데, 이 설명은 정확하지 않다.  병렬계산은 현대의 컴퓨터도 고속 계산을 위해 사용하는 기술이다. 예를 들어 계산 문제 100개를 풀고 싶다고 하자, 한 명의 컴퓨터군이 모든 문제를 푼다면 시간이 제법 걸릴 것이다. 그래서 10명 의 컴퓨터군이 10문제씩 담당하기로 한다. 10명이 힘을 모으면 계산이 10배 빨라지므로 100문제를 푸는 데 혼자서 푸는 시간의 10분의 1이 길릴 것이다. 이렇게 계산을 여러 개로 나눠서 여러 대의 컴퓨터에서 동시에 계산하는 것이 병렬계산이다.
양자컴퓨터가 일종의 병렬계산을 하는 것은 사실이지만, 현대의 컴퓨터가 하는 병렬계산과는 의미가 다르다. 자세한 이야기는 2장에서 하겠지만, 양자컴퓨터의 병렬계산은 '양자'가 미시 세계에서 일으키는 '중첩'이라는 특유의 현상을 사용한다. 이 현상을 사용한 병렬계산은 병렬계산을 하는 것 만으로는 절대 빨라지지 않는다. 병렬계산한 많 은 후보 결과 중에서 취사선택하여 원하는 계산 결과만 골라내려 궁리해야 한다. 비유하자면, 갈림길이 많은 복잡한 미로를 떠올리면 이해하기 쉽다. 출발점부터 목적지까지의 경로를 알고 싶다고 하자. 컴퓨터군은 경로 후보를 하나씩 차례로 조사해서 답을 찾아낸다. 한 편 양자컴퓨터군은 머릿속에서 여러 경로 후보를 동시에 검토한다. 그 증에서 막다른 길에 도달하는 경로를 버리고 목적지에 도달하는 경로만 답으로 찾아낸다. 이렇듯 양자컴퓨터는 계산 결과에서 취사선택' 할 수 있는 경우에만 계산을 빨리할 수 있다. 그러므로 양자컴퓨터는 '병렬계산하므로 빠르다'라는 설명은 그다지 정확하지 않다. 병렬계산하는 것 만으로는 절대 계산이 빨라지지 않는다. 계산이 빠른 이유는 '병렬로 계산한 결과 중에 취사선택해서 원하는 결과만을 찾아낼 수 있는 경우가 있어서다.
- 양자컴퓨터가 미래에 가장 도움이 될 것으로 보이는 분야는 화학계산이다. 고등학교 화학에서 주변의 물체는 모두 원자로 이루어져 있다고 배운다. 플라스틱, 유리, 금속, 컴퓨터 부품으로 사용하는 반도체 등 쉽게 구할 수 있는 다양한 재료의 성질은 소재를 구성하는 원자의 조합에 의해 결정된다. 우리가 사용하고 있는 많은 신소재들이 여러 원자들의 다양한 조합으로 만들어졌다. 하지만 쓸 만한 기능을 가진 신소재를 만들고 싶다고 무턱대고 원자를 조합한들 원하는 기능을 얻지는 못할 것이다. 그래서 슈퍼컴퓨터를 사용해서 어떤 조합이 좋은지 미리 조사한다. 양자컴퓨터를 사용하면 이런 화학 계산을 더 효율적이고 정확하게 처리할 수 있다.
그러므로 양자컴퓨터가 실현되면 생활에 도움을 주는 기능을 가진 소재를 효율적으로 설계할 수 있다. 
- 양자컴퓨터가 빛을 발하는 특별한 용도의 또 다른 예로는 최적화 문제가 있다. 최적화 문제란 여러 가지 패턴 중에서 가장 좋은 패턴을 골라내는 문제다. 주변에서 쉽게 접할 수 있는 사례로는 택배 트럭의 배달 경로를 최적화하는 것이다(그림 1-10의 아래 그림), 창고에서 배달할 화물을 트럭에 실은 다음, A씨 집, B씨 집, C씨 집... 등 열 군데에 화물을 배달하고 창고로 돌아와야 한다면, 어떤 순서로 돌아야 최단 경로가 될까? 이것이 다양한 경로 중에서 최적 경로를 찾아내는 최적화 문제다. 이런 문제를 빨리 풀 수 있게 되면, 더 효율적으로, 더 빨리 화물을 배달할 수 있을 것이다.
이외에도 최적화 문제는 주변에서 많이 볼 수 있다. 제조업이라면 공장의 인력 배치와 제조 프로세스를 최적화해서 상품 제조 비용을 낮출 수 있고, 금융업에서는 주식과 부동산 등의 상품 중 어디에, 얼마만큼 투자할지 최적화하면 더 큰 이익을 거둘 수 있다. 이처럼 조합을 최적화해야 하는 분야는 많이 있으므로, 각 분야에서 효율을 높이는데 도움이 될 것이다.
- 양자컴퓨터가 계산을 빨리하는 원리는 다중 슬릿 실험과 같다. 하나씩 계산하는 대신에 몇 가지 계산을 중첩해서 동시에 한 다음, 간섭 을 통해 답에 해당하는 계산 패턴만 찾아내는 것이다. 간섭에는 꽤 많은 고안이 필요하지만, 잘만 하면 답을 찾아내는 수고를 확 줄일 수 있다. 현대의 컴퓨터는 양자역학을 사용하지 않으므로, 당연히 이런 계산을 할 수 없다. 이처럼 양자컴퓨터는 양자역학 특유의 현상을 이용 해서 완전히 새롭게 문제를 풀어낼 수 있다.
- - 현대의 컴퓨터는 비트로 정보를 나타내고, NOT과 AND 등의 논리연산을 조합해서 계산을 처리한다. 한편, 양자컴퓨터는 양자비트로 정보를 나타내고 양자 논리연산을 조 합해서 계산을 처리한다.
- 양자비트가 n개 있으면 2가지의 패턴 정보를 중첩해서 동시에 가질 수 있다. 이때, 단 순히 중첩할 뿐만 아니라 2가지 패턴의 중첩 방식에 따라 정보를 표현한다.
- 양자컴퓨터는 양자 논리연산을 사용해서 중첩 방식을 나타내는 많은 파동을 교체하게 나, 타이밍을 어긋하게 하거나, 간섭시켜서 답을 끌어내는, 파동을 사용한 계산 장치다.
- 양자컴퓨터는 중첩한 많은 패턴을 병렬로 계산할 수 있지만 마지막으로 얻을 수 있는 계산 결과는 하나이므로 병렬계산만으로는 계산이 빨라지지 않는다. 중첩만이 아니라 파동의 간섭을 잘 활용하는 것이 중요하다.
- - 문제의 규모가 커지면 계산이 들이는 수고가 폭발적으로 증가해서 현대의 컴퓨터로는 풀기 어려운 문제가 너무도 많다. 하지만 양자컴퓨터를 사용하면 계산 횟수를 줄여서 더 빨리 풀 수 있는 사례가 있다.
_ 그로버 해법은 데이터베이스 검색이나 최적화 문제 등에 사용하는 해법으로, 답이 될 수 있는 다양한 후보를 중첩해서 동시에 조사하면서 간섭을 통해 올바른 답을 추려내므 로 계산 횟수를 줄일 수 있다.
- 화학 계산에서는 전자가 궤도에 들어가는 방식을 계산할 수 있으면 그 물질의 성질을 알 수 있다. 전자는 양자역학 규칙을 따라서 궤도에 들어가므로, 마찬가지로 양자역학규칙을 따르는 양자컴퓨터를 사용하여 간단하게 계산할 수 있다.
- 양자컴퓨터로 고속화할 수 있는 계산은 여러 가지 발견되었지만, 전부 파동을 조종해서 문제를 푼다는 양자컴퓨터만의 풀이법을 사용하는 것이 고속화의 본질이다.
- 양자컴퓨터에서도 신뢰할 수 있는 계산 결과를 내기 위해서는 오류를 정정하는 구조가 필요하다. 하지만 양자비트의 정보를 정정하는 것은 간단한 작업이 아니다. 애초에 비트의 오류는 0과 1이 바뀌는 것 뿐이지만, 양자비트는 중첩 방식이 조금만 달라져도 오류가 발생한다. 그것을 전부 정정하는 것은 결코 쉬운 일이 아니다. 게다가 계산 도중 에 오류가 발생했는지 여부를 조사하려면, 양자비트가 어떤 값인지 측 정해서 확인해야 한다. 하지만 양자비트는 직접 측정하면 중첩이 깨지 는 성질을 가지므로 그것도 어렵다. 원래 1980년대에 파인만과 도이치가 양자컴퓨터라는 아이디어를 제안했을 무렵에는 양자컴퓨터에서 오류를 정정하는 방법이 발견되지 않았다. 그래서 일부 연구자는 “오류를 정정할 수 없다면 양자컴퓨터를 실현할 수 없다”며 냉담한 반응을 보였다. 그렇지만 다행히 1990년 대에 양자컴퓨터에서도 오류를 정정하는 방법이 발견되었다. 먼저 여러 양자비트를 연계해서 한 개 분량의 양자비트 정보를 표 시하도록 정보를 넣는다. 계산 도중에 오류가 발생하면 그 연계에 흐트러짐이 발생한다. 그래서 연계의 흐트러짐이 있는지에 관한 정보만 다른 양자비트에 잘 옮긴 후 측정하여 오류가 일어났는지 판정하는 것이다. 그래서 어떤 오류가 발생해도 이 방법으로 양자비트의 정보를 잃어 버리지 않고 오류를 검출해서 정정할 수 있음을 알게 되었다.
- - 양자컴퓨터를 만들기 어려운 이유는 예민한 양자 하나하나를 각종 방해물로부터 보호하고, 한없이 정확하게 조종해야 하기 때문이다.
- 현재의 양자컴퓨터는 아직 규모가 작고 오류 정정 기능도 없다. 앞으로는 규모와 오류  비율 모두 몇 배나 개량해서 오류 정정 기능을 갖춘 양자컴퓨터를 목표로 해야 한다.
- 대표적인 방식으로는 가장 주류이며 연구가 진행된 초전도 회로 방식, 이와 어깨를 나 란히 할 정도인 이온 방식, 집적화에 적합한 반도체 방식, 독특한 장점이 있는 광 방식 등이 있으며, 어느 방식이나 장단점이 있다.
- 양자컴퓨터 개발은 아직 출발 지점에 있어서 미해결 과제도 많이 있다. 아직 어느 방식이 최후의 승자가 될지 판단하기는 어렵고, 앞으로 어떻게 발전할지도 예상할 수 없다.

'IT' 카테고리의 다른 글

IT 잡학사전  (2) 2022.11.10
인터넷 때문에  (0) 2022.08.20
웹 3.0 레볼루션  (0) 2022.07.03
1일 1로그 IT지식  (0) 2022.06.01
블록체인 경제  (0) 2022.05.11
Posted by dalai
,

웹 3.0 레볼루션

IT 2022. 7. 3. 11:03

- 초창기 웹은 지금과는 사뭇 다른 양상을 보였다. 당시의 웹은 단순한 정보 열람과 저장의 역할을 수행했다. 초기에 개발된 웹 브라우저 와 웹 서버, HTTP, HTML과 같은 기술은 누구나 사용할 수 있는 개 방성을 기반으로 성장했다. 웹 1.0은 단순하고 정적인 웹 사이트를 특 징으로 하는데, 1999년 다르시 디누치 Darc DiNuci 가 웹 2.0' 이라는 용어 를 만들기 전까지는 존재하지 않던 용어였다. 당시 웹 1.0은 사용자 데이터를 따로 저장하지 않아 데이터를 수집 하거나 분석하는 것이 불가능했고, 요즘 인터넷 같은 강력한 프로토콜이나 플랫폼도 없었다. 표준화된 프로토콜이 없다 보니 그야말로 '읽는 것 외에는 할 수 있는 게 없었다. 지금처럼 온라인으로 쇼핑하 거나 결제하는 것은 상상도 못 할 일이었다.
정적 페이지는 웹 사이트의 방문자가 취하는 행동에 따라 변경되 는 대화형 기능을 제공하지 않았다. 그래서 웹 1.0 시대의 웹 사이트 는 대부분 정보 제공용에 그쳤다. 또한, 웹 사이트와 서버들의 호환성 이 낮아 웹 사이트에 지원되지 않는 브라우저를 사용하는 경우 특정 웹 사이트는 열람할 수 없었다. 웹 서버도 지원 가능한 경우와 그렇지 않은 경우가 있었다. 게다가 콘텐츠 생산자나 서비스 제공자도 웹 사 이트를 만들기 위해 서버에 대한 액세스, 프로그래밍 등과 관련해 IT 개발에 대한 전문적인 지식이 필요했다. 그래도 누구나 웹 페이지를 올릴 수 있었고, 누구나 브라우저만 있으면 접속할 수 있었다. 이것은 엄청난 혁신이었다.
- 웹 1.0은 모뎀Modem이라는 유선 음성 전화망을 이용하는 전화 접속 이 주를 이루었다. 그러나 전화 접속의 속도는 긴 연락처 목록을 불러 오기에 너무 느렸고, 그 때문에 당시 인기 있던 서비스 중 하나는 방 명록이었다. 웹 사이트의 전반적인 성능을 저해하지 않으면서 사용자가 의견을 남기고 이를 다른 사람이 볼 수 있는 서비스는 소셜 활동과 커뮤니케이션 욕구에 대한 효율적인 솔루션이 되었다. 웹 페이지를 읽고 방명록을 남기는 정도의 수준에서도 사람들은 웹 서비스라는 존재에 대해 감탄했다. 오프라인 세상이 전부였던 현실에 온라인 세상이 열렸기 때문이다. 이때 웹의 가능성을 알아본 선구자들은 이를 위한 기업을 세우고 각종 서비스를 만들기 시작했다.
- 그중 대표적인 것이 검색 서비스다. 지금 우리는 구글 Google, 네이버와 같은 검색 및 포털 사이트에서 쉽게 자료를 검색하고 다양한 자료 를 꺼내 볼 수 있다. 만약 이런 검색 엔진과 같은 서비스가 없었다면 정보를 원하는 사람들은 파일 하나하나를 뒤져가며 아주 오랫동안 자 료를 찾아야 했을 것이다. 이런 불편함을 해소하기 위해 탄생한 검색 서비스는, 개인들의 PC에 쌓인 자료들을 '인터넷을 통해 연결해 열 람할 수 있게 했다.
- 페이스북과 유튜브는 콘텐츠 생산자와 소비자가 명확했던 시대에 소비자도 생산자가 되는 시대의 문을 열었다. 이는 웹 2.0의 시작이자 웹 1.0 시대의 끝을 알렸다. 웹 1.0 시대는 콘텐츠 생산자와 소비자가 명확히 구별되는 특성을 보인다. 생산자가 만든 콘텐츠를 소비자가 일방적으로 소비하는(읽는) 것이 웹 1.0이다. 하지만 사람들은 점차 소셜 활동과 커뮤니케이션, 그리고 창작에 대한 욕구를 드러냈다. 웹 2.0과 같은 소셜 기반 서비스와 플랫폼, 크리에이터의 시대가 열리는 것은 당연한 수순이었다.
- 검색을 통해 자료를 열람하는 웹 1.0 시대를 지나 적극적인 참여, 공유, 커뮤니케이션이 가능한 웹 2.0 시대가 열렸다. 이제 누구나 콘텐 츠를 생성하고 공유할 수 있게 됐고, 사용자 간 커뮤니케이션을 통해 지속적으로 콘텐츠와 데이터가 생겨나기 시작했다. 웹 2.0의 대표 콘 텐츠로는 소셜 네트워크, 플랫폼 비즈니스, 댓글 및 메신저 서비스 등 을 꼽을 수 있다. 각종 개발 도구가 등장하면서 누구나 편리하게 블로 그나 웹 사이트를 제작할 수 있게 됐다. 웹 2.0은 다양한 온라인 도구와 플랫폼을 통해 사용자가 자신의 관점, 의견, 생각 및 경험을 공유할 수 있는 장을 제공함으로써 근본적인 변화를 가져왔다.
- ‘웹 2.0'이라는 용어는 2000년대 초 팀 오라일리가 콘퍼런스에서 웹 2.0의 개념에 대해 논의한 후 알려지기 시작했다. 이 용어는 사람 들이 웹 2.0이 인류에게 제공할 가능성에 대한 환상을 가지며 유행어 가 되었다. 웹 3.0이 유행어처럼 번지기 시작한 현재 상황과 별반 다 르지 않았다. 팀 오라일리는 웹 2.0을 플랫폼으로서의 웹으로 정의 했으며, 이후 웹 2.0은 소셜 웹이나 민주주의 같은 용어로 표현되기도 했다.
- 웹 2.0의 풀지 못한 숙제
나은 콘텐츠를 제공할 수 있도록 사용자 데이터를 서버에 저장하기 시작했다. 덕분에 데이터를 분석해 개인화 추천이 가능해졌고, 사용 자 정보와 취향에 기반한 맞춤형 서비스를 개발할 수 있게 됐다. 사용 자가 생성한 데이터와 콘텐츠가 웹 생태계의 핵심으로 자리 잡은 것 이다. 결과적으로 사용자는 그들의 웹 사이트, 모바일 서비스에 더 오 래 머물게 됐고, 회사는 더 많은 광고 수익을 벌어들일 수 있었다.
문제는 이러한 데이터가 온전히 콘텐츠 생산자에게 돌아가지 못하 고 중앙화된 웹 2.0의 IT 기업 것이 됐다는 점이다. 거대 IT 기업들은 개인 정보와 개인이 생성하는 데이터가 귀중한 자산이라는 사실을 인식했다. 페이스북과 구글, 아마존 같은 거대 플랫폼 기업들은 중앙화 서버에 데이터를 모았고 그것을 높은 가격에 판매해 막대한 이익을 얻었다. 회사는 광고주에게 사용자 정보를 판매하기도 하고 직접 그 것을 활용해 비즈니스를 확장해나갔다. 이렇듯 중앙화된 서비스는 사 용자에게 큰 편의성을 제공했지만, 사용자의 콘텐츠와 데이터에 대한 정당한 가치와 소유권을 제대로 인정하지 않았다.
- 월드와이드웹의 창시자이자 인터넷의 아버지로 불리는 팀 버너스 리는 웹 3.0을 시맨틱 웹Semantic Web 으로 정의했다. 시맨틱 웹이란 기계가 인간처럼 학습해 인간의 사고방식에 따라 데이터를 처리하는 웹을 의미한다. 이는 마치 현재의 인공지능이 웹에서 동작하는 것과 유사 하다. 팀 버너스 리는 2019년 진행된 월드와이드웹 30주년 기념 인터 뷰에서 현재의 웹은 제 기능을 하지 못하고 있다고 말하며, 사용자의 데이터가 조작되고 유출되는 사태를 우려했다. 사실 지금 통용되는 웹 3.0의 개념이 시맨틱 웹과 일치하지는 않지만 그 방식은 유사하다. 웹 3.0에서는 맞춤형 정보를 제공하는 개 인화된 웹 기술이 구현 가능하기 때문이다. 하지만 과거 웹 3.0의 개 념과 다르게 지금의 웹 3.0은 더 포괄적인 의미를 담고 있다. 암호화 폐 기반의 경제체제와 디지털 자산, 가상세계 등이 모두 웹 3.0을 구 성한다. 실리콘밸리의 유명 벤처캐피털 앤드리슨 호로위츠 Andreessen Horowitz (a16z)의 총괄 파트너이자 웹 3.0 전파자인 크리스 딕슨(Chris Dixon 은 웹 3.0에 대해 '사용자와 생산자가 토큰을 기반으로 공동소유하는 인터넷'이라고 정의했다. 이런 웹 3.0은 NFT, 암호화폐, 스마트 콘트랙트, DAO(탈중앙화 자율조직), 디파이 등의 개념을 모두 포괄한다.
- 웹 2.0은 기존 웹 1.0의 읽기(Read)'라는 핵심에 쓰기(Write)'를 더했다. 웹 3.0은 읽기와 쓰기는 기본이며 여기에 '개방(Open)'과 '소유 (Own)'가 추가된다. 웹 2.0 시대 대부분의 기업은 중앙화된 서비스를 제공하는 플랫폼 기업이다. 따라서 웹 2.0 기업이 웹 3.0 시대로 넘어 가려면 개방, 탈중앙, 소유와 같은 핵심 요소를 받아들여야 한다.  2010년대 후반인 2017~2020년에 블록체인이 떠오르며 암호화폐 와 NFT 등 디지털 자산을 다루는 기업들이 등장했다. 여기에 더해 앞 으로 대략 2025년까지는 웹 3.0 시대를 준비하는 기술이 개발되고 이와 관련한 서비스와 기업이 무수히 생겨날 것이다.
하지만 DAO도 몇 가지 단점이 있다. 가장 큰 문제는 '의사결정 비용'이다. 너무 많은 참가자의 의견을 모아야 하기 때문이다. 다양한 의견들은 정치적인 싸움으로 번질 수도 있고, 그로 인해 그룹이 분화 될 수도 있다. 이 과정에서 의사결정이 느리고 비효율적으로 진행될 가능성이 있다.
두 번째 문제는 '토큰을 인센티브로 받는 구조'에서 기인한다. 토큰 인센티브는 동기부여라는 좋은 목적이 있지만, 자칫 참여자들로 하여 금 토큰의 가격이나 수량 배분 문제와 같은 금전적인 목적의 활동에 매몰되게 만들 수 있다.
세 번째는 DAO의 '법적인 지위에 대한 해석'이 아직 분분하다는 점이다. 아직 규제의 범위나 토큰을 발행하며 발생한 수익의 세금 문 제 등이 정해지지 않았고, DAO가 사업을 진행하는 경우 법인으로 인 정해야 하는지 여부도 불명확하다.
- 기존 브라우저에 블록체인 기반 서비스를 연결하는 것이 현재의 추세라면, 브라우저 자체를 웹 3.0 환경에 맞게 만드는 것이 앞으로 진행될 방향이다. 탈중앙화 자율조직(DAO)이나 탈중앙 금융(De-Fi) 서비스 등을 구현하기 위한 도구로 브라우저가 떠오르고 있다. 지금 까지 웹 브라우저가 초기 인터넷을 연결하는 포털과 같은 역할을 했 다면 웹 3.0 시대에는 여기에 프로토콜, 탈중앙 애플리케이션(dApp) 에 대한 포털 역할을 추가한다. 브라우저는 웹을 사용하는 첫 단추 역 할에 충실하면서 동시에 웹 3.0의 방향성에 따라 새로운 단계로 나아 갈 필요가 있는 것이다. 앞으로 브라우저는 신원 인증과 디지털 지갑 제공, 보안 강화 등의 기능을 중심으로 웹 30 시대의 주요 도구가 될 예정이다.
- 웹 3.0 시대에 새로 등장할 웹 브라우저는 데이터를 분산해 보관하 거나 데이터 소유권을 사용자에게 제공하는 기반을 마련할 것으로 보인다. 암호화된 자체 디지털 지갑이 내장된 웹 브라우저와 다양한 확장 프로그램이 더해질 것이다. 이러한 방식의 시작은 '분산형파일 시스템(IPFS)' 프로토콜이다. 인터넷이 탄생한 이후 우리는 HTML과 HTTP 같은 기술을 통해 인터넷을 본격적으로 사용하게 됐다. 자료 를 보내거나 받기 위해서는 HTTP라는 표준화된 하나의 프로토콜(약 속)을 따라야 한다. 이러한 기술을 이용해 웹 페이지를 사용할 수 있 도록 돕는 소프트웨어가 웹 브라우저다.  IPFS는 HTTP를 대체할 새로운 프로토콜로 손꼽힌다. IPFS의 가장 큰 특징은 서버와 관련이 없다는 점이다. 기존 웹에서는 데이터를 관 리하는 서버에 문제가 생기면 인터넷 이용이 어렵고 파일을 다운로드 할 수 없었다. 반면 IPFS는 네트워크 참여자들끼리 데이터를 나눠 보유하기 때문에 이론적으로는 영구적인 데이터 보관 시스템을 만들 수 있다. 이러한 구조를 활용하는 것이 웹 3.0과 탈중앙화이며 이를 적극 적으로 받아들여 웹을 사용할 수 있도록 브라우저가 발전하고 있다. 오페라는 이미 IPFS 프로토콜을 브라우저에 도입했다.
- NFT는 단순한 JPEG 이미지가 아니다. NFT는 커뮤니티와 팬덤 기반의 크리에이터 이코노미를 만들어내는 핵심 매개체라 할 수 있다. NFT는 그 자체로 예술품이 되기도 하고 멤버십이 될 수도 있으며, 신 분증이 될 수도 있다. 또한 NFT는 담보 대출이 가능하고, 분할해서 판매할 수도 있는 디지털 자산이다.
이처럼 다양한 용도와 가능성이 드러나면서 NFT에 대한 관심은 지속되고 있다. 특히 자체 IP를 보유하고 있는 기업은 블록체인과 NFT 시장에 접근하기 유리하다. 쌓아온 수많은 저작물이 있고, 브랜드 인지도 또한 높기 때문이다. 실제로 NFT에 대한 관심이 커지며 많은 블록체인 프로젝트와 기업이 앞다퉈 NFT를 제작하기 시작했다. 나이키와 아디다스 Adidas 같은 패션 브랜드는 물론 루이비통, 구찌Gucci 등 명품 브랜드도 NFT를 제작했거나 지속적으로 제작할 계획을 세웠다. 코카콜라 Coca-Cola와 디즈니 Disney도 캐릭터와 브랜드를 앞세워 NFT를 제작했다. SK텔레콤과 삼성전자, KT 등의 국내 기업과 네이버와 카카오 등 IT 기업도 NFT 생태계에 뛰어들었다.
- 특히 국내 NFT는 게임사가 주도하는 모습이다. 넷마블과 엔씨소 프트, 위메이드는 이미 NFT 기반의 게임을 개발 중이다. 배틀그라운드로 유명한 크래프톤 역시 미래의 먹거리로 NFT를 언급하는 등 게임사들이 적극적인 모습을 보여주고 있다. 게임 아이템을 NFT로 만들어 가치를 부여하고 기존 과금 모델을 NFT로 확장할 수도 있다. NFT를 만들고 이를 활용해 P2E 게임을 제작하면 새로운 비즈니스 기회를 창출할 수 있을 것으로 보인다.
- 블록체인의 최대 단점인 느린 속도와 비효율성은 현재 여러 블록 체인 프로젝트에서 관련 기술을 개발하고 있다. 사이드 체인과 같이 메인 블록체인 옆에 별도의 체인을 만들어 데이터를 처리하는 방식이 대표적이다.
메인 선로에 큰 기차가 달리고 있다. 이 기차는 모든 짐을 싣고 달리기에는 속도가 너무 느리다. 그리고 기차 안에는 짐을 분류해야 하는 작업이 있다. 이때 바로 옆에 속도가 빠른 작은 기차가 함께 달린다. 간이역에 정차했을 때 메인 선로의 기차에서 작은 기차로 일부 짐 을 옮겨 싣는다. 다시 출발한 후 작은 기차는 빠르게 짐을 분류하고 그 내역을 큰 기차에게 알려준다. 다음 역에서 작은 기차는 분류가 끝난 짐을 큰 기차에 옮겨 싣는다. 아니면 계속 짐을 싣고 달린다. 기차의 예시로 설명한 사이드 체인처럼 메인 블록체인의 느린 속도를 보완할 기술들이 개발되고 있고 점차 그 쓰임새를 넓혀가는 중 이다. 가장 많이 쓰이는 블록체인인 이더리움은 수수료가 비싸다. 이더리움을 사용하고 싶어 하는 사람이 많아 한 기차에 짐을 꾸역꾸역 넣고 달리고 있기 때문이다. 몇몇 사람은 자신의 짐을 먼저 처리해달 라고 요구하며 더 많은 수수료를 낸다. 이렇게 짐이 많을 때는 우선순 위로 배정받기 위한 수수료가 계속 높아진다.
이때 적은 수수료로 빠르게 짐을 처리하는 작은 기차가 있다. 이런 작은 기차로는 폴리곤 Polygon, 옵티미즘Optimism, 아비트럼 Arbitrum 등이 있 다. 느리고 큰 기자인 이더리움은 레이어 1이라 하고 작고 빠른 기차 는 레이어2라 한다. 이러한 레이어2 기술이 블록체인의 확장성과 속도 개선에 앞장서고 있다. 앞으로는 레이어2 기술이 레이어1인 이더 리움의 문제를 해결하거나, 아니면 아예 빠른 속도와 확장성을 장점으로 내세운 레이어1이 나올 수도 있다.
블록체인은 대중 가까이로 다가가기 위해 효율성’ 개선과 더불어 '사용자 접근성'이 높은 구조를 개발할 것이다. 블록체인 사용에 필요 한 디지털 지갑을 생성하는 방법이나 자산을 전송하는 절차, 보안 키 보관 및 분실 대처 방법 등 여러 부분에서 사용자 친화적 구조가 만들 어져야 한다. 또한, 지속적으로 발생하는 해킹이나 보안 이슈에 대해 서도 더 나은 해결책을 제시할 필요가 있다.
웹 3.0에서 블록체인이 차지하는 지분은 굉장히 크다. 따라서 단순 히 암호화폐 가격의 움직임이나 국가 규제 등의 이슈만 바라보는 것 으로는 부족하다. 진정한 웹 3.0을 이해하는 것은 블록체인 기술 자체의 발전 내용을 확인하는 것에서 출발한다.
- 헤드리스 커머스는 쇼핑몰이나 이커머스 분야에서 프론트엔드 (사용자가 주문하는 화면 영역)와 백엔드(사용자에겐 보이지 않는 실제 주문을 처 리하는 서버 영역)가 분리된 개발 환경을 의미한다. 프론트엔드를 머리, 백엔드를 몸통으로 비유한 개념인데 몸통은 고정한 채로 머리만 원하 는 형태로 바꾸면서 고객에게 유연한 쇼핑 환경을 제공할 수 있다. 헤드리스 커머스에서 프론트엔드와 백엔드를 연결하는 매개체가 API다. 예를 들어 고객이 상품을 검색하고 장바구니에 담아 즉시 결제 버튼을 눌렀다면 프론트엔드에서 백엔드에게 API를 통해 주문 상황을 전달한다. 백엔드는 결제와 배송을 위한 처리를 진행하고 다시 API를 통해 상태를 프론트엔드로 전달한다. 프론트엔드는 상황에 따 라 화면이 자주 바뀌며 디자인이 중요하다. 백엔드는 이러한 변화에 맞춰 대응해야 한다. 이때 필요할 때마다 상황에 맞는 API를 만들어 변경한다. 프론트엔드의 화면은 바뀌지만 백엔드는 새로 개발할 필요 가 없는 것이다.  이런 방식을 사용하면 고객에 따라 추천 화면이 다양하게 제공되고 새로운 서비스를 사용하는 것 같은 느낌을 줄 수 있다. 이때 프론 트엔드를 개발자가 직접 일일이 수정하는 것이 아니라 마케터나 기획자가 선택하고 그 내용을 API를 통해 백엔드에 전달한다. 이처럼 기업 내부 업무 처리 과정에서 API는 중요한 역할을 한다. 그리고 이는 결국 기업 전체의 수익성을 높인다.



'IT' 카테고리의 다른 글

인터넷 때문에  (0) 2022.08.20
처음 읽는 양자컴퓨터 이야기  (0) 2022.07.07
1일 1로그 IT지식  (0) 2022.06.01
블록체인 경제  (0) 2022.05.11
포스트 메타버스  (0) 2022.05.11
Posted by dalai
,

1일 1로그 IT지식

IT 2022. 6. 1. 16:04

- 주 기억 장치 primary memory 
프로세서와 컴퓨터의 다른 부분이 현재 사용 중인 정보를 저장하는데, 저 장된 정보의 내용은 프로세서에 의해 변경될 수 있다. 주 기억 장치는 프 로세서가 현재 작업 중인 데이터뿐만 아니라 프로세서가 그 데이터로 무 엇을 해야 하는지 알려 주는 명령어도 저장한다. 이 점은 매우 중요하다. 메모리에 다른 명령어를 로드(적재)하여 프로세서가 다른 계산을 수행하 게 할 수 있다. 이러한 원리로 프로그램 내장식 stored-program 컴퓨터는 범용 장치가 된다. 같은 컴퓨터로 워드프로세서와 스프레드시트를 실행하고, 처리를 하고, 음악을 재생할 수 있는데, 이 모든 일이 적합한 명령어를 메 모리에 배치함으로써 가능해진다. 프로그램 내장식이라는 아이디어는 매 우 중요하다. 주 기억 장치는 컴퓨터가 실행되는 동안 정보를 저장할 장소를 제공한다. 주 기억 장치는 워드Word, 포토샵Photoshop, 브라우저 등 현재 활성화된 프로그램의 명령어를 저장한다. 아울러 그러한 프로그램의 데이터, 즉 편집 중인 문서, 화면에 표시된 사진, 웹에서 재생 중인 음악 등을 저장한다. 또한 애플리케이션 여러 개를 동시에 실행할 수 있도록 배후에서 작동하 는 운영체제(윈도우, 맥OS, 다른 운영체제)의 명령어도 저장한다. 
주 기억 장치를 RAM, 즉 '임의 접근 메모리'라고도 부르는 이유는 프로 세서가 정보에 접근할 때 메모리에 저장된 위치와 무관하게 같은 속도로 접근할 수 있기 때문이다. 지나친 단순화로 느껴질 수도 있겠지만, 메모리 의 어떤 위치에 무작위로 접근하더라도 접근 속도는 거의 비슷하다. 이제 자취를 감추기는 했지만 비디오테이프를 생각해 보자. 비디오테이프로 영화의 마지막 부분을 보려면 시작부터 전체를 빨리 감기(실제로는 느리다!)’ 해야만 했다. 이러한 방식은 순차적 접근sequential access 이라고 한다.
- 프로세서 간에 속도를 비교하는 것은 어려울 뿐만 아니라 그다지 의미 도 없다. 산술 연산 같은 기본적인 작업조차 일대일로 비교하기 어려울 만 큼 서로 다른 방식으로 처리되기도 한다. 예를 들어, 어떤 프로세서는 두 수를 더하고 다른 위치에 결과를 저장하기 위해 모형 프로세서처럼 세 개의 명령어가 필요하다. 다른 프로세서는 두 개의 명령어만 필요하고, 또 다른 프로세서는 그 연산을 단일 명령어로 처리한다. 하나의 프로세서가 몇 개의 명령어를 병렬적으로 처리하거나 겹쳐서 실행함으로써 명령어 처 리가 단계적으로 진행되도록 할 수도 있을 것이다. 프로세서가 전력 소모 를 낮추고자 빠른 실행 속도를 포기하기도 하며, 심지어 전력이 배터리에 서 공급되는지 아닌지에 따라 속도를 동적으로 조정하기도 한다. 일부 프 로세서는 고속 코어와 저속 코어의 조합으로 구성되며, 코어 유형별로 서 로 다른 작업을 할당하기도 한다. 그러므로 어떤 프로세서가 다른 것보다 빠르다'는 주장은 조심스럽게 받아들여야 한다. 요구사항에 따라 차이가 있을 수 있다.
- 프로세서에서 캐시는 용량이 작고 속도가 빠른 메모리로, 용량이 더 크지만 훨씬 느린 주 기억 장치에 매번 접근하는 것을 피하고자 최근에 사용된 정보를 저장하는 데 사용된다. 프로세서는 일반적으로 여러 그룹의 데이터와 명령어에 짧은 간격으로 잇달아 여러 번 접근한다. 예를 들어, 그림 1.20(71쪽)에 있는 프로그램에서 루프에 있는 명령어 다섯 개는 입력된 수 각각에 대해 한 번씩 실행된다. 만일 그 명령어들이 캐시에 저장되면 루프가 실행되는 동안 매번 메모리에서 인출하지 않아도 되고, 프로그램은 메모리 작업을 기다릴 필요가 없어져서 더 빨리 실행될 수 있을 것이다. 이와 유사하게 Sum을 데이터 캐시에 유지하는 것도 접근 속도를 높여 주기는 하겠지만, 실제로 이 프로그램에서 진짜 병목 현상은 데이터를 가져오는 과정에서 발생한다.  일반적인 프로세서에는 캐시가 2~3개 있는데, 흔히 L1, L2, L3 레벨이 라고 부르고 뒤로 갈수록 용량은 크지만 속도는 더 느리다. 가장 큰 캐시 는 데이터를 몇 MB 정도 담을 수 있다(내 노트북은 256KB짜리 L2 캐시가 각각의 코어에 있고, 4MB짜리 L3 캐시가 하나 있다). 캐싱이 효과적인 이 유는 최근에 사용된 정보가 곧 다시 사용될 가능성이 크기 때문이다. 캐시에 정보를 포함하고 있다는 사실은 메모리 작업을 기다리는 데 시간을 덜 쓴다는 것을 뜻한다. 캐싱 과정에서는 대개 정보를 블록 단위로 동시에 불 러온다. 예를 들어 단일 바이트에 대한 요청이 들어오면, 연속된 메모리 위치를 포함한 블록을 불러온다. 그 이유는 인접한 정보라면 곧 사용될 가 능성이 높으므로, 미리 불러와 두면 필요할 때 캐시에서 바로 꺼내 쓰기 쉽기 때문이다. 그렇게 되면 근처에 있는 정보를 참조할 때 기다리지 않고 바로 볼 수 있을 것이다.
- 분산 컴퓨팅distributed computing은 네트워크로 연결되어 서로 독립적으로 작동하는 여러 대의 컴퓨터를 일컫는 말이다. 분산 컴퓨팅 시스템은 메모 리를 공유하지 않고 물리적으로 넓게 흩어져 있다. 심지어 전 세계의 다양 한 지역에 퍼져 있기도 하다. 컴퓨터가 흩어져 있을수록 통신이 잠재적 병목 현상을 일으킬 가능성이 커질 수도 있지만, 사람과 컴퓨터가 공간적으로 멀리 떨어져 있어도 상호 협력해서 일할 수 있다는 장점이 있다. 검색 엔진, 온라인 쇼핑, SNS, 일반적인 클라우드 컴퓨팅 같은 대규모 웹 서비 스가 분산 컴퓨팅 시스템으로 이루어져 있고, 수천 대의 컴퓨터가 많은 사용자에게 결과를 빨리 제공하고자 상호작용한다. |이 모든 컴퓨터는 동일한 핵심 원칙을 갖는다. 즉, 한없이 다양한 작업 알고리즘은 추상적이고 이상적인 절차를 기술한 것으로, 구현에 필요한 세부 사항과 현실적인 고려 사항을 무시한다. 알고리즘은 정확하고 명료한 레시피이다. 의미가 완전히 알려져 있고 구체적으로 명시된 기본 연산 으로 표현된다. 이러한 기본 연산을 사용하여 각 단계를 상세히 설명하고 모든 가능한 상황을 다룬다. 그리고 알고리즘은 결국 멈춰야 한다.
이와 대조적으로 프로그램program은 추상적인 것과는 거리가 멀다. 프로그램은 실제 컴퓨터가 과제를 완료하기 위해 수행해야 하는 모든 단계를 구체적으로 서술한다. 알고리즘과 프로그램 간의 차이는 청사진과 건물 간의 차이와 비슷하다. 한쪽은 이상적인 것이고, 다른 쪽은 실재하는 것이다. 프로그램을 하나 이상의 알고리즘이 컴퓨터가 직접 처리할 수 있는 형태로 표현된 것이라고도 생각해 볼 수 있다. 프로그램은 알고리즘과 달리 실질적인 문제도 신경 써야 한다. 불충분한 메모리, 제한된 프로세서 속 도, 유효하지 않거나 악의적으로 잘못된 입력 데이터, 하드웨어 결함, 네 트워크 연결 불량, 그리고 (배후에서 작용하고 종종 다른 문제를 악화시키 는) 인간적인 약점 등의 문제가 포함된다. 따라서 알고리즘이 이상적인 요리 레시피라고 하면, 프로그램은 적군의 공격을 받는 동안 군인들이 먹을 1개월치 식사를 로봇에게 준비하도록 하는 상세한 명령어 모음이라고 할 수 있다.
- 특정한 처리를 수행하는 프로그램을 어셈블러assembler라고 한 다. 원래는 다른 프로그래머가 사전에 작성했던 프로그램에서 필요한 부 분을 모으는 역할을 하기도 했기에 붙은 이름이다. 이 프로그램 작성에 사 용되는 언어는 어셈블리 언어assembly language라고 하고, 이 수준의 프로그 래밍은 어셈블리 언어 프로그래밍assembly language programming이라고 한다. 1부에서 '모형 컴퓨터를 기술하고 프로그래밍하기 위해 사용했던 언어가 바로 어셈블리 언어다. 어셈블러는 프로그램을 수정하는 일을 훨씬 쉽게 해준다. 프로그래머가 명령어를 추가하거나 삭제할 때 변경 기록을 직접 관리하는 대신 어셈블러가 각 명령어와 데이터 값이 메모리상 어느 위치에 있을지 파악해 주기 때문이다.
- 특정 프로세서 아키텍처에서 사용되는 어셈블리 언어는 그 아키텍처에 특화된 언어다. 어셈블리 언어는 대개 프로세서의 명령어와 일대일로 연 결되고, 명령어가 이진수로 인코딩되는 특정한 방식과 메모리에 정보가 배치되는 방식 등을 알고 있다. 즉, 어떤 작업을 수행하기 위해 특정 종류 의 프로세서(예를 들면, 맥이나 PC의 인텔 프로세서)의 어셈블리 언어로 작성된 프로그램은 다른 프로세서(휴대전화의 ARM 프로세서)에 맞춰 작 성된 어셈블리 언어 프로그램과는 다르다는 뜻이다. 특정 프로세서용 어 셈블리 언어 프로그램을 다른 프로세서용으로 변환하고 싶다면 프로그램 을 완전히 새로 작성해야 한다.
- 1950년대 말, 1000년대 초에 컴퓨터가 프로그래머를 대신해서 더 많은 일을 수행하게 되는 또 다른 움직임이 일어났는데, 아마도 프로그래밍의 역사에서 가장 중요한 발걸음이었을 것이다. 바로 특정 프로세서 아키텍처에 독립적인 고수준 프로그래밍 언어 high-level programming language의 개발이다. 고수준 언어를 쓰면 사람이 표현하는 방식에 가까운 용어로 계산 과정 을 작성할 수 있다.  고수준 언어로 작성된 코드는 번역기 프로그램을 통해 대상 프로세서의 어셈블리 언어로 된 명령어로 변환된 다음, 어셈블러에 의해 비트로 변환 되어 메모리에 로드되고 실행된다. 여기서 번역기 프로그램은 보통 컴파 일러compiler라고 불리는데, 그다지 통찰력이나 직관이 느껴지지 않는 역사적 용어다.
- 프로그래밍 언어는 앞으로 어떻게 발전할까? 짐작건대 우리는 더 많은 컴퓨터 자원을 우리에게 유용한 방향으로 사용함으로써 프로그래밍을 계속 해서 쉽게 만들 것이다. 또한 프로그래머가 더 안전하게 사용할 수 있는 언어를 만드는 방향으로 나아갈 것이다. 예를 들어, C 언어는 매우 예리한 도 구다. C 언어로는 늦게까지 검출되지 않는 프로그래밍 에러를 무심코 만들 기 쉬운데, 이런 에러는 어쩌면 이미 흉악한 목적으로 이용된 다음에야 발 견될 수도 있다. C 이후에 나온 언어들은 이러한 에러를 일부 방지하거나 검출하기 쉽게 되어 있지만, 더 느리게 실행되거나 메모리를 더 많이 차지 하는 등의 희생이 따른다. 대체로는 이런 방향으로 나아가는 것이 정당한 트레이드오프지만, 자원을 덜 쓰면서 빠른 코드를 작성하는 것이 매우 중요 해서 C처럼 효율성이 높은 언어가 계속 사용될 응용 분야가 분명히 아직 많다. 예를 들면 자동차, 항공기, 우주선, 무기 등에 있는 제어 시스템이 그렇다.
- 연관된 함수들의 모음을 보통 라이브러리library라고 한다. 예를 들어, C 언어에는 디스크나 다른 위치에서 데이터를 읽고 쓰는 함수로 구성된 표 준 라이브러리가 있고, scanf와 printf도 이에 속한다.  함수 라이브러리가 제공하는 서비스는 애플리케이션 프로그래밍 인터 페이스Application Programming Interface, 즉 API로 프로그래머에게 제공된다. API는 포함하는 함수와 더불어 함수의 용도가 무엇인지, 함수를 어떻게 사용해야 하는지, 어떤 입력 데이터를 요구하는지, 어떤 값을 만들어 내는 지 나열한다. 또한 API는 시스템 내부에서 주고받는 데이터의 구조를 의 미하는 자료 구조와 기타 세부 사항도 기술할 수 있다. 이 모든 것이 모여 프로그래머가 서비스를 요청하기 위해 무엇을 해야 하고 결과적으로 무엇 이 계산될지 정의한다. 이러한 명세는 상세하고 정확해야 한다. 결국 프로그램을 해석하는 것은 친절하고 협조적인 사람이 아니라 말도 안 통하고 명령을 곧이곧대로 받아들이는 컴퓨터이기 때문이다.
- API는 구문과 관련된 기본 명세뿐만 아니라 시스템을 효과적으로 사용하도록 돕는 지원 문서도 포함한다. 요즘 대규모 시스템은 프로그래머들 이 복잡한 소프트웨어 라이브러리를 잘 다룰 수 있도록 소프트웨어 개발키트Software Development Kit, 즉 SDK를 포함한다. 예를 들어, 애플은 아이폰과 아이패드 코드를 작성하는 개발자를 위해 개발 환경과 지원 도구를 제공 한다. 구글은 안드로이드용 SDK를 제공한다. 마이크로소프트는 윈도우 코드를 여러 가지 장치에 대해 다양한 언어로 작성할 수 있는 폭넓은 개발 환경을 제공한다. SDK 자체도 대형 소프트웨어 시스템이다. 예를 들어, 안드로이드 개발 환경인 안드로이드 스튜디오Android Studio는 용량이 1.6GB 이고 애플 개발 환경인 Xcode는 그보다 훨씬 크다.
- 프로그래머가 작성하는 코드는 어셈블리 언어든 고수준 언어든 소스 코드 source code라고 한다. 소스 코드를 프로세서에서 실행하기에 적합한 형태로 컴파일한 결과는 오브젝트 코드object code라고 한다. 이런 구분이 너무 현학 적으로 보일지 모르겠지만, 용어 정의를 명확히 하는 것은 중요하다. 소스 코드는 약간의 수고가 따르더라도 프로그래머가 읽을 수 있는 형태라서, 코드를 연구하여 상황에 맞춰 수정할 수 있고 코드에 포함된 혁신적인 기 결이나 아이디어를 읽어 낼 수도 있다. 이와 달리 오브젝트 코드는 너무 많은 변환 과정을 거쳤기 때문에, 원래 소스 코드와 조금이라도 비슷하게 복한다든지, 근종을 만들거나 작동 방식을 이해하기 위해 이용할 수 있 는 통화로 추출하는 것조차 대개 불가능하다. 그래서 대부분의 상용 소프 트의 어는 오르게트 코드 형태로만 배포된다. 소스 코드는 가치가 큰 비밀 정도이므로 비유걱으로 혹은 말 그대로 자물쇠를 채워서 간수된다.
오픈소스는 연구와 개선 활동을 위해 다른 사람들도 소스 코드를 자유롭게 사용할 수 있도록 하는 대안을 일컫는 용어다.
- 1950년대 초에는 애플리케이션과 운영체제 간에 구별이 없었다. 컴퓨터는 한 번에 한 개의 프로그램만 실행할 수 있을 정도로 성능이 제한적이 었고, 그 프로그램이 컴퓨터 전체를 점유했다. 실제로 프로그래머들은 자 신이 짠 프로그램 한 개를 실행하기 위해 시간대별로 컴퓨터 사용 예약을 해야만 했다(일반 학생이라면 한밤중에나 사용할 수 있었다). 컴퓨터가 더 복잡해짐에 따라, 비전문가가 프로그램을 실행하는 일이 너무 비효율 적이라고 느껴져서 전문 운영자에게 맡겨졌고, 운영자는 프로그램을 컴퓨터에 입력하고 결과를 배부했다. 운영체제는 운영자가 이런 작업을 자동 화할 수 있도록 돕는 프로그램에서 시작됐다.
운영체제는 자신이 제어하는 하드웨어가 발전됨에 따라 꾸준히 더 정교해졌다. 하드웨어 성능이 더 좋아지고 복잡해지면서, 운영체제가 하드웨어를 제어하는 데 더 많은 자원을 투입할 수 있게 되었다. 처음으로 널리 사용된 운영체제는 1950년대 후반과 1960년대 초반에 등장했는데, 보통 은 하드웨어를 만드는 회사가 이를 같이 제공했고 어셈블리 언어로 작성 되어 하드웨어와 강하게 결부되었다. 이렇게 하여 IBM과 더불어 DECDigital Equipment Corp, 데이터 제너럴Data General Corp 같은 작은 회사들이 자사 하드 웨어를 위한 자체 운영체제를 제공했다. 앞에서 인용문에 언급한 프레더 릭 브룩스는 1965년부터 1978년까지 IBM의 시스템/360System/360 컴퓨터 시리즈와 당시 IBM의 최상위 운영체제인 OS/360 개발을 관리했다. 브룩 스는 컴퓨터 아키텍처, 운영체제, 소프트웨어 공학 분야에 기여한 공로로 1999년 튜링상을 받았다.
- 운영체제는 컴퓨터의 자원을 제어하고 할당한다. 첫째로, 프로세서를 관리하면서 현재 사용 중인 프로그램을 스케줄링하고 프로그램 간의 관계를 조정한다. 또한 특정 시점에 활발히 연산하는 프로그램 간에 프로세서 의 초점을 전환해 준다. 여기에는 애플리케이션뿐만 아니라 바이러스 검사 프로그램 같은 백그라운드 프로세스도 포함된다. 운영체제는 사용자가 대화 상자에서 확인 버튼을 클릭하는 것 등의 특정 이벤트를 기다리는 프 로그램을 대기 상태로 바꿔 준다. 또한 특정한 프로그램이 자원을 독차지 하는 것을 막아 준다. 만일 어떤 프로그램이 프로세서 시간을 너무 많이 차지하면 운영체제는 다른 작업도 일정한 몫을 나눠 받을 수 있도록 그 프 로그램의 속도를 낮춰 준다.  일반적인 운영체제에서는 프로세스 수백 개가 동시에 실행된다. 일부는 사용자가 실행한 프로그램이지만, 대부분은 일반 사용자에게는 보이지 않 는 시스템 작업이다. 무슨 일이 일어나고 있는지 확인하고 싶다면, 맥OS 에서는 활성 상태 보기 Activity Monitor, 윈도우에서는 작업 관리자Task Manager, 휴대전화에서는 그와 유사한 프로그램을 이용하면 된다. 
- 하드웨어 개발 시 원래 의도했던 것과는 다른 운영체제를 실행하기도 한다. 윈도우를 사용하려고 했던 컴퓨터에서 리눅스를 실행하는 것이 좋 은 예다. 디스크에 몇 개의 운영체제를 저장해 두고 컴퓨터를 켤 때마다. 어느 것을 실행할지 결정할 수 있다. 이 '멀티 부트multiple boot' 기능은 애플 에서도 부트 캠프Boot Camp라는 이름으로 지원하는데, 맥이 맥OS 대신 윈 도우를 실행하면서 시스템을 시작할 수 있도록 한다. 심지어 다른 운영체제의 관리하에 어떤 운영체제를 가상 운영체제virtual operating system로 실행할 수도 있다. VM웨어 VMware, 버추얼박스(virtualBox, 오 픈소스인 젠xen 같은 가상 운영체제 프로그램은 호스트 운영체제(가령 맥OS)에서 어떤 운영체제(윈도우나 리눅스)를 게스트 운영체제로 실행할 수 있게 해준다. 호스트는 게스트가 생성하는 요청 중 파일 시스템 접근이나 네트워크 접근 등 운영체제 권한이 필요한 요청을 가로챈다. 호스트는 작업을 수행한 다음 게스트로 되돌아간다. 호스트와 게스트가 둘 다 같은 하드웨어에 맞게 컴파일되면 게스트 운영체제는 대개 하드웨어가 낼 수 있는 최고 속도로 실행되고, 거의 실제 컴퓨터상에서 직접 실행되듯 반응하는 것처럼 느껴진다.
- 운영체제는 이러한 서비스를 표준화된 방식 또는 합의된 방식으로 이용할 수 있게 하고, 애플리케이션은 운영체제의 특정 부분에 통제권을 넘겨 주는 특별한 명령어를 실행함으로써 서비스를 요청한다. 운영체제는 요청에 포함된 어떤 일이든 처리하고, 통제권과 처리 결과를 애플리케이션에게 돌려준다. 운영체제에 서비스를 요청하는 이 진입점을 시스템 콜system call이라고 하며, 시스템 콜의 세부 명세에서 그 운영체제가 무엇인지를 규정한다. 최신 운영체제에는 보통 수백 개의 시스템 콜이 있다.
- 디바이스 드라이버 
운영체제와 프린터나 마우스 같은 특정 종류의 하드웨어 장치 간에 가교 역할을 하는 코드다. 드라이버 코드는 특정 장치가 어떤 일을 하도록 하는 방법을 자세히 알고 있다. 여기에는 마우스나 트랙패드에서 오는 움직임과 버튼 정보를 이용하는 방법, 드라이브가 집적회로나 회전하는 자성 표면에서 정보를 읽고 쓰게 하는 방법, 프린터가 종이에 인쇄하게 하는 방법, 특정 무선 칩이 전파 신호를 보내고 받게 하는 방법 등이 포함된다. 디바이스 드라이버는 특정 장치의 특이한 속성에서 시스템의 나머지 부 분을 분리한다. 예를 들어, 키보드처럼 종류는 다양하지만 동일한 역할을 하는 장치에는 운영체제가 필요로 하는 기본 속성과 동작이 있는데, 드라이버 인터페이스는 운영체제가 서로 다른 장치에 균일한 방식으로 접근하도록 해서 장치를 전환하기 쉽게 해준다.
- '휴지통 비우기'를 클릭해서 명시적으로 휴지통을 비운다고 가정해 보자. 그렇게 하면 휴지통 폴더 자체에 있는 폴더 엔트리는 삭제되고 해당 블록이 미사용 목록에 들어가지만, 그 내용은 아직 삭제되지 않은 상태다. 원래 파일에 할당된 각 블록의 모든 바이트는 아직 그대로 있다. 그 블록 이 미사용 목록에서 꺼내져서 새로운 파일에 할당되기 전까지는 새로운 내용으로 덮어 쓰이지 않는다.  이렇게 삭제가 바로 일어나지 않는다는 것은 여러분이 제거했다고 생각 한 정보가 아직 존재하고, 누군가 그 정보를 찾을 방법을 안다면 손쉽게 접근할 수 있음을 뜻한다. 물리적 블록 단위로 드라이브를 읽는 프로그램, 즉 파일 시스템 계층 구조를 통하지 않고 디스크를 읽는 프로그램이라면 예전 내용을 확인할 수 있다. 2020년 중반에 마이크로소프트가 발표한 윈도우 파일 복구(Windows File Recovery라는 무료 툴은 정확히 이러한 방식으로 수많은 파일 시스템과 저장 매체에 파일 복구를 수행한다.
여기에는 잠재적인 이점이 있다. 디스크에 뭔가 이상이 생겨 파일 시스템이 엉망이 되었을 때도 아직 정보를 복원할 수 있을지 모른다. 하지만 파일을 제거해도 데이터가 완전히 사라졌다는 보장이 없는 점은 데이터에 사적인 내용이 있거나 여러분이 뭔가 나쁜 일을 꾸미고 있어 진짜로 정보 가 제거되기를 바란다면 좋지 않은 일이다. 솜씨 좋은 적수나 법 집행 기 관은 그런 정보를 복원하는 데 전혀 어려움이 없을 것이다. 만일 범죄 행 위를 계획하고 있거나 그냥 집착이 심한 성격이라면 블록이 미사용 상태가 된 후에도 정보를 지우는 프로그램을 사용해야만 한다.  실제로는 그보다 더 꼼꼼히 처리해야 할 수도 있다. 정말로 끈질긴 적수인 데다 자원도 풍부하다면 기존 정보가 새로운 정보로 덮어 쓰였대도 약간이라도 남아 있는 정보를 추출할지도 모른다. 군 조직에서는 블록을 무작위 패턴으로 된 0과 1 값을 여러 번 덮어 씌움으로써 파일을 제거한다. 더 좋은 방법은 하드 디스크를 강한 자석 근처에 놓아 자성을 없애 버리는 것이다. 최선의 방법은 물리적으로 파괴하는 것이며, 저장한 정보를 확실 히 사라지게 하는 유일한 방법이다. 하지만 이마저 충분하지 않을 수 있다. 만일 데이터가 항상 자동으로 백 업되고 있거나 (직장에서의 컴퓨터가 그렇듯이) 자신의 드라이브 대신 네 트워크 파일 시스템이나 '클라우드' 어디엔가에 파일이 보관되고 있다면 말이다(오래된 컴퓨터나 휴대전화를 팔거나 양도할 때 데이터가 복구될 수 없게끔 확인해야 할 수도 있다).
- 외부에서 보면 브라우저는 웹 서버에 요청을 보내고 화면에 표시할 정 보를 웹 서버에서 받아 온다. 어떤 점이 복잡한 것일까?
우선 브라우저는 비동기적asynchronous 이벤트를 처리해야 한다. 비동기 적 이벤트란 예측할 수 없는 시점에 일정한 순서를 따르지 않고 발생하는 이벤트를 뜻한다. 예를 들어, 사용자가 링크를 클릭하면 브라우저는 페이 지에 대한 요청을 보내는데, 브라우저는 해당 응답을 기다리고 있을 수만 은 없다. 그 사이에 사용자가 현재 페이지를 스크롤하면 즉각 반응해야 하 고, 뒤로 가기 버튼을 누르거나 다른 링크를 클릭하면 요청된 페이지가 오 는 중일지라도 요청을 취소해야 한다. 사용자가 창의 모양을 바꾸면 디스 플레이를 갱신해야 하고, 데이터가 오는 동안에 사용자가 이리저리 모양을 계속 바꾸면 계속해서 갱신해 줘야 한다. 페이지에 소리나 동영상이 포함돼 있다면 브라우저는 그러한 미디어의 재생도 처리해야 한다. 비동기적인 시스템을 프로그래밍하는 것은 항상 어려운데, 브라우저는 많은 비동기성을 다뤄야만 한다. 브라우저는 정적인 텍스트부터 페이지의 내용을 계속해서 바꾸려고 하 는 대화형 프로그램에 이르기까지 많은 종류의 콘텐츠를 지원해야 한다. 이 중 일부는 확장 프로그램에 콘텐츠 처리를 위임할 수 있는데, PDF나 동영상 같은 표준 포맷을 처리하는 데는 이 방식이 일반적이다. 하지만 이 를 위해 브라우저는 해당하는 확장 프로그램을 시작하고, 데이터 자체와 데이터에 대한 요청을 보내고 받고, 처리된 데이터를 디스플레이에 표시 하기 위한 메커니즘을 제공해야 한다.
브라우저는 여러 개의 탭과 여러 개의 창을 관리하는데, 이들 각각은 아 마도 앞서 말한 작업 중 일부를 수행하고 있을 것이다. 브라우저는 수행한 작업의 이력과 함께 북마크, 즐겨찾기 등의 다른 데이터를 유지한다. 업로 드, 다운로드, 이미지 캐싱을 하기 위해 로컬 파일 시스템에 접근하기도한다.
브라우저는 여러 수준에서 기능을 확장하기 위한 플랫폼을 제공한다. 어도비 플래시Adobe Flash 같은 플러그인, 자바스크립트용 가상 머신, 애드 블록 플러스Adblock Plus와 고스터리 Ghostery 같은 애드온 프로그램 등이 확장 기능에 해당한다. 내부적으로 브라우저는 모바일 기기를 포함해서 다수 운영체제의 여러 버전에서 작동해야 한다.
이 모든 기능을 수행하기 위한 복잡한 코드를 포함하고 있기 때문에, 브라우저는 자체 구현 코드나 자신이 활성화하는 프로그램에 있는 버그를 이용한 공격에 취약하다. 사용자의 순진함, 무지함, 무분별한 행동도 브라 우저가 공격을 받는 데 한몫한다. 대부분의 사용자는(이 책의 독자를 제외 하고) 무슨 일이 일어나는지 또는 어떤 위험이 있을지조차 거의 이해하지 못한다. 쉬운 일이 아니다.  앞의 내용을 되짚어 보면 뭔가 떠오르지 않는가? 브라우저는 운영체제 와 비슷하다. 자원을 관리하고, 동시에 일어나는 활동을 제어하고 조정한 다. 또한 다수의 출처에 정보를 저장하고 가져오며, 애플리케이션 프로그램이 실행될 수 있는 플랫폼을 제공한다.
- 한동안 브라우저를 운영체제로 사용하는 것이 가능해 보였고, 그래서 아래에 있는 하드웨어를 제어하는 운영체제와 독립적으로 작용할 수 있을 것처럼 보였다. 그럴듯한 아이디어였지만 10~20년 전까지만 해도 현실적 인 장애물이 너무 많았다. 오늘날 이 아이디어는 실행 가능한 대안이 됐 다. 이미 수많은 서비스가 오로지 브라우저 인터페이스로만 접근할 수 있 고(이메일, 달력, 음악, 비디오, SNS가 명백한 사례다), 이러한 추세는 계 속될 것이다. 구글은 웹 기반 서비스에 주로 의존하는 크롬 OS라는 운영 체제를 제공한다. 크롬북은 크롬 OS를 실행하는 컴퓨터로, 로컬 저장 장 치의 용량은 제한적이며 대부분의 저장 기능은 웹을 사용한다. 또한 구글 문서 Google Docs 같은 브라우저 기반 애플리케이션만 실행한다.
- 이더넷에서 정보는 패킷으로 전송된다. 패킷packet은 정확하게 정의된 형식으로 된 정보를 담고 있는 일련의 비트 또는 바이트다. 발신자가 정보 를 패킷으로 싸서 보내면 수신자가 패킷을 열어서 정보를 확인할 수 있다. 패킷은 발신자 주소, 수신자 주소, 내용, 여러 가지 기타 정보가 표준 형식 으로 구성돼 있는 우편 봉투(또는 아마도 엽서)로 적절히 비유할 수 있는 데, 페덱스FedEx 같은 운송 회사에서 이용하는 표준화된 패키지를 떠올리 는 것도 괜찮다. 패킷 형식과 내용의 세부 사항은 네트워크에 따라 크게 다르다. 이더넷 패킷(그림 III.3)은 6바이트로 된 출발지 주소와 목적지 주소, 몇 가지 기타 정보, 최대 1,500바이트의 데이터로 구성된다.
이더넷은 아주 크게 성공을 거둔 기술이다. 가장 먼저 상용 제품으로 만들 어졌으며(제록스가 아니라 메트칼프가 설립한 회사인 쓰리컴3Com에 의 해), 그간 수십억 대의 이더넷 장치가 많은 공급 업체에서 판매됐다. 최초 의 이더넷은 3Mbps의 속도였지만, 요즘의 이더넷은 100Mbps에서 10Gbps까지 빨라졌다. 모뎀과 마찬가지로 처음 나온 이더넷 장치는 부피가 크고 비쌌지만, 오늘날 이더넷 인터페이스는 저렴한 단일 칩이다.  이더넷은 수백 미터 이내의 한정된 범위에서 작동한다. 원래 사용되던 동축 케이블은 표준 커넥터가 있는 8선 케이블로 대체되었다. 각 장치가 표준 커넥터로 스위치'(또는 '허브)에 연결되면 이더넷 스위치는 들어오 는 데이터를 다른 연결된 장치에 브로드캐스트한다. 데스크톱 컴퓨터에는 보통 이더넷 표준 커넥터를 연결할 수 있는 소켓이 있고, 이더넷의 작동 방식을 모방하는 무선 공유기와 케이블 모뎀 같은 장치에도 이러한 소켓이 있다. 이 소켓은 무선 네트워킹에 의존하는 최신 노트북에서는 거의 찾 아볼 수 없다.
- 각 휴대전화에는 IMELinternational Mobile Equipment Identity, 국제 모바일 기기 식별코드라 는 15자리 고유 식별 번호가 있는데, 이는 이더넷 주소와 비슷하다. 휴대 전화가 켜지면 식별 번호를 브로드캐스트하고, 가장 가까운 기지국이 그 정보를 받아 홈 시스템home system*을 통해 전화 유효성을 검사한다. 휴대전 화 위치가 여기저기 이동하면 기지국이 그 위치를 홈 시스템에 보고함으로써 전화의 위치 정보를 최신 상태로 유지한다. 누군가가 전화를 걸면 홈 시스템은 현재 어느 기지국이 그 전화와 접촉하고 있는지 알 수 있다.
휴대전화는 가장 강한 신호를 내는 기지국과 통신한다. 휴대전화는 기지국에 가까이 있을 때 더 적은 전력을 사용하도록 지속적으로 파워 레벨 을 조정한다. 이렇게 하면 배터리를 더 오래 유지하고 다른 휴대전화에 대 한 간섭을 줄일 수 있다. 기지국과 연결을 유지하기만 할 때는 통화할 때 보다 전력이 훨씬 적게 든다. 그래서 대기 시간은 일 단위로 측정되는 반면 통화 시간은 시간 단위로 측정되는 것이다. 하지만 휴대전화가 신호가 약하거나 존재하지 않는 영역에 있으면 부질없이 기지국을 찾느라 배터리 를 더 빨리 소모할 것이다.
모든 휴대전화는 데이터 압축을 통해 신호를 최대한 적은 수의 비트로 줄인 다음, 오류 수정 정보를 추가한다. 이 정보는 노이즈가 심한 무선 채 널을 통해 간섭을 받으면서 데이터를 보낼 때 불가피하게 발생하는 오류 에 대처하기 위해 필요하다.
- 가용 메모리와 대역폭을 더 효율적으로 활용하는 한 가지 방법은 데이터를 압축하는 것이다. 압축의 기본 아이디어는 군더더기 정보, 즉 연결 부분의 반대쪽에서 데이터를 수신했을 때 재현하거나 유추할 수 있는 정보는 저장하거나 보내지 않는 것이다. 압축의 목표는 같은 정보를 더 적은 비트 로 인코딩하는 것이다. 어떤 비트는 아무 정보도 전달하지 않아서 완전히 제거할 수 있다. 일부 비트는 다른 비트에서 계산될 수 있어 버리기도 한 다. 수신자에게 중요하지 않기 때문에 버려도 무방한 비트도 있다.
영어 텍스트를 고려해 보자. 영어에서도 모든 문자가 같은 빈도로 나타 나지 않는다. e가 가장 흔하며, 그다음에 대략 t, a, 0, i, n 순서로 자주 나 온다. Z, x, q는 훨씬 적게 사용된다. 텍스트를 아스키코드로 표현할 때 문 자 하나는 1바이트, 즉 8비트를 차지한다. 비트를 아끼는 한 가지 방법은 7비트만 사용하는 것이다. 미국 아스키코드에서 8번째 비트(즉, 가장 왼 쪽 비트)는 항상 0이므로 아무 정보도 전달하지 않는다.  한 단계 나아가서, 가장 흔히 나타나는 문자에는 더 적은 비트를 사용하 고, 자주 사용되지 않는 문자에는 더 많은 비트를 사용하면 총 비트 수를 대폭 줄일 수 있다. 모스 부호morse code가 취하는 방식과 비슷하다. 모스 부 호에서는 자주 쓰이는 문자 e를 하나의 점으로, 를 하나의 대시로 인코딩 하지만 드물게 쓰이는 q는 대시 대시 점-대시로 인코딩한다.
- 좀 더 구체적인 예를 보자. 《오만과 편견》 원문에 포함된 텍스트는 121, 000단어 또는 680,000바이트를 약간 웃돈다. 가장 흔한 문자는 단어 사이의 공백으로, 거의 110,000개가 있다. 다음으로 흔한 문자는 e(68,600번), t(45,900번), a(31,200번)이다. 가장 드물게 사용되는 문자를 보면 대문자 Z는 세 번 나오고 X는 한 번도 나오지 않는다. 소문자 중에서는 j(551번), q(627번), x(839번) 순서로 드물게 등장한다. 만약 공백 문자와 e, t, a 각 각에 2비트를 사용했다면 분명히 많은 비트를 절약할 수 있고, X, Z와 나 머지 드물게 나타나는 문자에 8비트 이상을 사용한다 해도 문제되지 않는 다. 허프만 코딩huffman coding이라는 알고리즘은 이러한 처리를 체계적으로 수행하여 개별 문자를 인코딩하는 가장 효율적인 압축 방법을 찾는다. 허 프만 코딩을 사용해서 《오만과 편견》을 압축하면 원래보다 44% 줄어든 390,000바이트가 되는데, 평균적으로 한 문자에 약 4.5 비트가 할당된 셈 이다.
단일 문자보다 큰 덩어리, 예를 들어 단어나 구 단위로 압축하고 원래 문 서의 특성에 따라 조정하면 더 나은 결과를 얻는다. 이를 잘 수행하는 여러 알고리즘이 있다. 널리 사용되는 ZIP 압축 알고리즘은 《오만과 편견》을 64% 줄여서 249,000바이트로 압축한다. 유닉스 프로그램인 bzip2는 175,000바이트까지 줄이는데, 원래 크기의 겨우 4분의 1 정도다.
- TCP는 두 컴퓨터 간에 데이터를 주고받는 신뢰성 있는 양방향 스트림을 제공한다. 인터넷 서비스와 애플리케이션은 TCP를 전송 메커니즘으로 사 용하지만, 기능별로 특정한 자신만의 프로토콜을 갖는다. 예를 들어, HTTPHypertext Transfer Protocol, 하이퍼텍스트 전송 프로토콜는 웹 브라우저와 서버에 사 용되는 특히 간단한 프로토콜이다(329쪽 참고), 사용자가 링크를 클릭하 면 브라우저는 서버(가령 amazon.com)의 80번 포트에 대해 TCP/IP 연결 을 열고 특정 페이지를 요청하는 짧은 메시지를 보낸다. 그림 III.15에서 브라우저는 왼쪽 상단의 클라이언트 애플리케이션이다. 메시지는 프로토콜 체인을 따라 내려가서 인터넷을 가로질러(보통 훨씬 더 많은 단계를 거친다), 반대쪽 끝에서 상응하는 서버 애플리케이션까지 올라간다.
아마존의 서버는 페이지를 준비한 다음, 페이지 인코딩 방식에 대한 정 보 같은 약간의 추가 데이터와 함께 사용자에게 보낸다. 돌아오는 경로는 원래 경로와 같을 필요는 없다. 브라우저는 이 응답을 읽고 그 정보를 이용하여 페이지 내용을 표시한다.
- 냅스터 프로토콜은 TCP/IP를 사용했으므로 사실상 HTTP나 SMTP와 동 일한 수준의 프로토콜이었다. 패닝의 작업 결과물을 중립적으로 평가하자 면(정말 깔끔하게 만들어졌다), 냅스터는 인터넷, TCP/IP, MP3를 포함한 인프라와 그래픽 사용자 인터페이스 구축 도구가 이미 마련된 상태라면 간단하게 만들 수 있는 시스템이다.
합법적이든 아니든 대부분의 최신 파일 공유 서비스는 2001년에 브램 코 언Bram Cohen이 개발한 비트토렌트BitTorrent라는 P2P 프로토콜을 사용한다. 비트토렌트는 영화와 TV 프로그램처럼 용량이 크고 인기 있는 파일을 공유할 때 특히 유용하다. 왜냐하면 비트토렌트로 파일을 다운로드하는 각각의 사용자는 같은 파일을 다운로드하려는 다른 사람에게도 본인이 가진 파 일 조각을 업로드해야 하기 때문이다. 비트토렌트에서는 분산된 디렉터리 를 검색하여 파일을 찾고, 용량이 작은 토렌트torrent 파일을 사용해서 누가 어떤 블록을 보내고 받았는지 기록을 유지하는 트래커를 식별한다. 비트 토렌트 사용자는 저작권 침해 탐지에 걸리기 쉽다. 다운로드만 하려는 사 람도 프로토콜 요구사항에 따라 파일 조각을 업로드해야 하므로 저작권이 적용되는 자료를 유포하는 과정에서 쉽게 식별되기 때문이다. P2P 네트워크는 합법성이 의심스러운 파일 공유 이외의 용도로도 쓰인다. 4부에서 이야기할 디지털 통화 및 결제 시스템인 비트코인 Bitcoins도 P2P 프로토콜을 사용한다.
- 스마트폰은 표준 전화 시스템을 사용할 수 있는 컴퓨터라고 볼 수 있다. 모든 최신 휴대전화는 이동통신사의 통신망이나 와이파이로 인터넷에 접근한다. 이렇게 휴대전화에서 인터넷에 접근하기 쉬워지면서 전화망과 인터넷의 구분이 모호해지고 있으며 이러한 구분은 결국 사라질 것이다.
오늘날 휴대전화를 세상 곳곳에 퍼지게 했던 것과 동일한 힘이 다른 디 지털 장치에도 작용하고 있다. 앞서 말했듯이 많은 기기와 장비에는 강력한 프로세서와 메모리가 있고, 흔히 무선 네트워크 연결도 지원된다. 자연 스럽게 이러한 장치들을 인터넷에 연결하려고 할 텐데, 필요한 모든 메커 니즘이 이미 마련되어 있고 한계 비용이 0에 가까우므로 이는 매우 간단 하다. 따라서 와이파이나 블루투스로 사진을 업로드하는 카메라, 위치 정보나 엔진의 원격 측정값을 업로드하는 동안 오락거리를 다운로드하는 자 동차, 주변 환경 정보를 측정하고 제어하여 외출 중인 집주인에게 알려주 는 온도 조절 장치, 아이와 보모, 방문객을 계속 관찰하는 비디오 모니터, 알렉사 같은 음성 응답 시스템, 그리고 앞에서 언급한 네트워크로 연결된 전구 같은 제품은 모두 인터넷 연결을 기반으로 한다. 이 모두를 일컫는 유행어가 사물인터넷, 즉 IoT이다. 여러모로 IoT는 훌륭한 아이디어이며 앞으로 점점 더 많은 종류의 IoT 기기가 생겨날 것임은 확실하다. 그러나 IoT에도 큰 단점이 있다. 이렇게 특정 용도를 가진 장치는 같은 종류의 범용 장치보다 보안 문제에 더 취약 하다. 즉 해킹이나 불법 침해를 당해서 손상을 입을 가능성이 더 높다. 사 실 IoT 관련 보안과 프라이버시에 대한 관심도 개인용 컴퓨터와 휴대전화 와 비교해 매우 낮은 수준이어서 더 위험하다. 일례로, 상당히 많은 장치 가 제조 국가에 있는 서버로 정보를 전송하는 방식으로 집으로 연락’ 한다.
다양한 IoT 보안 사고 사례 중 하나를 이야기하자면, 2016년 1월에 한 웹사이트에서 사용자가 웹캠을 검색하여 볼 수 있게 허용했는데, 촬영 영 상을 전혀 보호 처리하지 않고 송출했다. 이 사이트는 '마리화나 농장, 은행의 밀실, 아이방, 부엌, 거실, 차고, 앞마당, 뒷마당, 스키장, 수영장, 대학과 학교, 실험실, 소매점의 금전등록기' 등에 설치된 카메라 영상을 그대로 노출했다. 이런 보안 허점이 단순 관음 목적부터 훨씬 나쁜 의도로 사용되는 상황을 고려해 볼 수 있을 것이다.
일부 어린이 장난감은 인터넷 연결을 지원하는데, 이는 또 다른 잠재적 위험을 불러일으킨다. 한 연구에서는 몇몇 장난감에 아이들을 추적하는 데 사용할 수 있는 데이터 분석 코드와, 장난감을 다른 공격의 매개체로 쓸 수 있도록 허용하는 불안정한 메커니즘이 포함되어 있음을 밝혀냈다. (이런 장난감 중 하나는 인터넷에 연결되는 물병이었는데, 원래는 수분 공 급 상태를 모니터링할 용도였던 것으로 보인다). 이런 식의 아동 추적은 COPPAChildren's Online Privacy Protection Act, 어린이 온라인 사생활 보호법와 장난감에 명시된 개인정보 보호 정책을 위반하는 것이다.
- 웹캠 같은 제품은 제조사가 충분한 보안을 제공하지 않아 취약한 경우가 많다. 보안 기능을 추가하면 비용이 너무 많이 들어서, 또는 사용하기가 너무 복잡해진다고 판단해서 넣지 않았거나, 그냥 잘못 구현했을 수도 있다. 예를 들어, 2019년 말에 한 해커가 IoT 기기 50만 개의 IP 주소와 텔 넷 비밀번호를 게시한 사건이 있었다. 해커는 22번 포트로 응답하는 장치 를 훑어서 조사하고 admin'이나 'guest 같은 기본 계정과 비밀번호로 로 그인을 시도하여 이 정보를 찾아냈다고 한다.
전력, 통신, 운송을 포함한 다양한 인프라 시스템이 보안 면에서 충분히 주의를 기울이지 않은 채로 인터넷에 연결되기도 했다. 일례로 2015년 12 월에 보도된 바로는 특정 제조사의 풍력 터빈에 웹 기반 관리 인터페이스가 있는데, 매우 간단한 방식으로(단지 URL을 편집함으로써) 공격해서 터빈이 생성하는 전력을 차단할 수 있었다고 한다.
- 인터넷에서 가장 눈에 띄는 부분은 월드 와이드 웹World Wide Web 으로, 지금 은 그냥 '웹'이라고 한다. 인터넷과 웹을 하나로 보는 경향도 있지만, 둘은 서로 다르다. 인터넷은 전 세계의 수많은 컴퓨터가 서로 쉽게 정보를 교환할 수 있도록 하는 통신 인프라 또는 하위 계층이다. 웹은 정보를 제공하 는 컴퓨터(서버)와 정보를 요청하는 컴퓨터(여러분과 나 같은 클라이언 트)를 연결한다. 웹은 인터넷을 사용하여 연결을 맺고 정보를 전달하며 다른 인터넷 기반 서비스에 접근하기 위한 인터페이스를 제공한다.
많은 훌륭한 아이디어가 그렇듯, 웹도 본질적으로 간단하다. 어디에나 있고 효율적이며 개방적이고 기본적으로 무료인 하부 네트워크가 존재한다는 전제하에(매우 중요한 조건이다) 중요한 것은 다음 네 가지뿐이다.
첫 번째는 URLUniform Resource Locator, 균일 자원 지시자이다. URL은 http://WWW.amazon.com처럼 정보의 출처에 대한 이름을 지정한다.
두 번째는 HTTP Hypertext Transfer Protocol, 하이퍼텍스트 전송 프로토콜이다. HTTP는 상위 레벨 프로토콜의 예로 간략하게 언급한 바 있다. HTTP 클라이언트가 특정 URL에 대한 요청을 보내면 서버는 요청된 정보를 반환한다.
세 번째는 HTMLHypertext Markup Language, 하이퍼텍스트 마크업 언어이다. HTML은 서버가 반환하는 정보 서식이나 표시 방식을 설명하기 위한 언어다. HTML도 간단하며 조금만 알아도 기본적인 사용법을 익힐 수 있다.
마지막으로 브라우저browser가 있다. 브라우저는 컴퓨터에서 실행되는 크 롬, 파이어폭스, 사파리, 엣지 같은 프로그램으로, URL과 HTTP를 사용하 여 서버에 요청을 보내고 서버에서 보낸 HTML을 가져와서 표시한다.
- VPNVirtual Private Network, 가상 사설망은 두 컴퓨터 간에 암호화된 통신 경로를 설정하여 일반적으로는 정보 흐름을 양방향으로 안전하게 보호한다. 기업에서는 직원들이 집에서 일하거나 통신 네트워크 보안을 신뢰할 수 없는 국가에서 일할 수 있게 하고자 VPN을 자주 이용한다. 개인 사용자는 VPN을 사용하여 개방형 와이파이를 제공하는 카페나 다른 장소에서 더 안전하게 작업할 수 있다. 하지만 사용 중인 VPN을 어느 업체가 운영하는지 확인하고, 사용자 정보를 공개하라는 정부 압력에 그 업체가 얼마나 맞설 수 있을지 생각해 보기 바란다.
- 공개 키 암호 기법에는 다른 유용한 속성이 있다. 예를 들면, 공개 키 암호 기법은 디지털 서명 digital signature 방식을 구현하는 데 사용된다. 사기꾼이 아니라 앨리스가 메시지를 보냈음을 수신자가 확신할 수 있도록 앨리스가 메시지에 서명하고 싶다고 하자. 그녀가 자신의 개인 키로 메시지를 암호화하고 그 결과를 보내면 누구나 그녀의 공개 키로 메시지를 해독한 다. 앨리스가 자신의 개인 키를 아는 유일한 사람이라면 메시지는 분명히 앨리스에 의해 암호화되었을 것이다. 이 방식은 앨리스의 개인 키가 해킹 되지 않았을 때만 작동한다.
앨리스가 밥에게 보내는 비공개 메시지에 어떻게 서명할 수 있을까? 이 는 메시지가 앨리스가 보낸 것임을 분명히 하는 동시에, 밥 이외의 다른 사람이 메시지를 읽을 수 없게 하려면 꼭 필요한 절차다. 앨리스는 먼저 밥에게 보낼 메시지에 자신의 개인 키로 서명한 다음에 그 결과를 밥의 공 개 키로 암호화한다. 이브는 앨리스가 밥에게 무언가 보냈음을 알 수 있지 만, 밥만 그 메시지를 해독할 수 있다. 밥은 바깥쪽 메시지를 자신의 개인 키로 해독한 다음에 안쪽 메시지를 앨리스의 공개 키로 해독하여 메시지가 앨리스에게서 왔음을 확인한다.








'IT' 카테고리의 다른 글

처음 읽는 양자컴퓨터 이야기  (0) 2022.07.07
웹 3.0 레볼루션  (0) 2022.07.03
블록체인 경제  (0) 2022.05.11
포스트 메타버스  (0) 2022.05.11
빅데이터 사용 설명서  (0) 2022.05.07
Posted by dalai
,

블록체인 경제

IT 2022. 5. 11. 19:51

- ICO를 통해 자금을 조달하는 방식은 최근보다 진화되고 있다. 제2세대 블록체인 시대에서 백서만 제시하고 투자금을 유치하는 ICO 방식과는 달리 거래소와 ICO와 함께하는 자금 조달 방식으로 새롭게 부상하고 있는 IEO (Initial Exchange Offering)의 진행이 바로 그것이다. IEO는 MVP (Minimum Viable Product)를 개발한 후 자금을 유치하기 때문에 최소한의 개발 자금만 확 보한 후 거래소 상장 전에 Private Sale을 통해 자금을 확보하는 방식이다. 그 이후 암호화폐 거래소에 상장을 통해 공시를 하고 추가적인 소요 자금을 유 치하는 방법이다. 이 방식은 투자자 입장에서는 IEO 기업이 비즈니스 생태 계의 완성을 위해 어느 정도 필요한 기술, 인력, 조직체계 등을 가지고 있는 지 여부를 검증할 수 있다. 따라서 블록체인 기업들은 ICO 보다 투자에 대한 불안감이 줄어들 수 있는 IEO 방식을 투자 유치 방식으로 채택하는 경우가 증가하고 있다.
- STO (Security Token Offering)는 토큰을 발행하는 기업 자산에 대한 소유권을 의미한다. 자산은 현물로서 증권, 다이아몬드, 금·은, 부동산, 그림 등 다양 하다. 이들 현물을 토큰으로 만들어 크라우드 펀딩을 만드는 방식으로 국내 에서도 그 사례가 있다. 주식과 비슷한 개념으로 ICO를 통해 얻는 토큰은 유틸리티 토큰이 대부분이지만 STO로 얻는 토큰은 토큰 발행 기업의 이윤 일부를 배당받거나 경영권 일부를 소유할 수도 있다. 또한 큰 금액의 현물 자산을 구매할 수 없는 소비자도 작은 금액으로 가치 있는 현물 자산을 토 큰으로 구매할 수 있다. STO는 아직 초기시장이지만 블록체인 경제가 발전 하게 되면 이 분야의 수요와 비즈니스 모델도 증가할 것으로 예측된다.
- 런던대학교 경제학자인 Paolo 교수는 블록체인이 진정한 공유경제를 실 현할 수 있는 동인(enabler)으로 보고 있다. 그는 블록체인의 제도적 기술을 다음과 같이 설명하고 있다.
* 자본주의 시장의 기초
* 기술의 사회적 메가 트렌드(Mega Socio-Techno Trends)
* 새로운 경제 패러다임의 출현 
* 블록 체인은 진정한 공유 경제를 가능하게 만드는 촉매제
- 블록체인 상의 암호화 기술은 2가지 기법을 사용한다. 
첫째, 전자서명 기술이 사용된다. 암호화폐를 주고받으려면 은행에서 계좌이체와 비슷한 절차로 화폐의 지불 승인을 위한 전자서명 기술이 필요하다. 디지털 문서의 인증과 부인 방지를 목적으로 공개키 암호화 기술을 사용한다. 비트코인을 주고받을 때는 전자서명 (digital signature)이라는 공개키 기반의 암호기술을 이용 하여 자신의 개인키 (private key)로 본인 인증이 가능하도록 하였다. 여기에서 사용되는 공개키는 타인으로 부터 코인을 전송받을 때의 수취인의 지갑 주 소이며 개인키는 내 지갑에 담김 내용물(암호화폐 또는 콘텐츠)를 열 수 있는 (복 호화) 열쇠이다.
둘째, 해시(hash) 암호기술을 사용한다. 거래 내역을 블록화하여 분산 저장 하는 분산 장부 기술로 거래의 블록을 생성할 때, 해시는 해당 블록에 포함된 데이터와 이전 블록의 해시를 기반으로 생성된다. 이러한 해시 식별자는 블록체인 보안과 불변성을 유지하는 데 중요한 역할을 수행한다. 여기서 해시는 해시함수를 의미하는데 다양한 길이의 문장을 입력값으로 제공하더라도 함수의 출력값은 항상 일정한 길이를 갖는 일방향 함수이다. 해시함수는 암호화폐 거래 내역이 기록된 블록에 적용되고 블록체인을 연결하는 과정 에서 프로토콜로 정의하고 있다. 예를 들어 비트코인의 경우, SHA-256 암 호 해시 알고리즘을 사용하여 '작업(work)'증명을 한다. 일방향 해시 암호 알 고리즘으로 비트코인이 작동하는 것을 알 수 있다. 블록체인에서 사용되는 암호기술의 역할은 3가지로 요약해 볼 수 있다.
* 디지털화폐의 지불과 교환에 필요한 전자서명 기술
* 거래내역과 블록의 무결성을 유지
* 그밖의 외부 침입자로부터 위험을 예방하기 위한 플랫폼 보안관리

- 1974년 12월 빈튼서프(Vintoncerf)와 로버트 칸(Robert Kathan)은 혁신적인 전송제어 프로토콜/인터넷 프로토콜(Transmission Control/Internet Protocol)을 설계 한다. 이 프로토콜이 국제표준이 된 이후 디지털 경제 시대가 열리게 되었고 전세계 많은 사람들이 이용할 수 있는 공용 인프라가 되었다. 인터넷을 중심 으로 새롭고 혁신적인 비즈니스 방식을 도입함으로써 경제패러다임을 근본 적으로 바꾸는 계기가 되었으며, 다양한 비즈니스 모델 창출 및 상품과 서비 스의 거래방식에 엄청난 변화를 가져다주었다. 즉 디지털 기술이 비즈니스 의 모든 영역에 통합되어 운영 방식을 근본적으로 변화시키면서 고객에게 는 새로운 가치를 제공하는 디지털 트랜스포메이션 시대가 열린 것이다.
- 인터넷은 네트위그 기술 중 하나로 OST 7Layer 중 3층(TCP)과 4층(1P) 에 위치하는 TCP/IP 국제표준 바로토골이다. INTER와 NET가 합쳐진 합 성어로 서버와 클라이언트가 자율적으로 서비스하는 오픈시스템이다. 인 터넷은 프로토콜의 한 종류이다. 그러나 정보의 공유와 연결을 확대시켜 준 기술은 HTML(Hyper Text Markup) Language)이다. 이 언어는 월드와이드 웹 문서를 작성할 수 있는 마그업(markup) 언어이기도 하다. 월드와이드웹 (WorldWicle-Web)은 HTTP 프로토콜, 하이퍼텍스트(HYPERTEXT), HTML 형식 등을 사용하여 그림과 문자를 교환하는 전송방식이다. 이때 인터넷의 핵심은 바로 HYPERTEXT이며 이것은 인터넷을 움직이는 기술로서 누구나 인 터넷을 쉽게 사용할 수 있는 기술이 되었다.  이처럼 인터넷은 프로토콜(TCP/IP)이라는 표준화된 기술적 특성과 월드와이드웹이라는 언어가 서로 결합되어 새로운 경제 모델인 인터넷 경제를 탄생시킨 것이다. 1990년 인터넷이 전세계로 확산되어 e-비즈니스의 생태 계를 만들 수 있었던 이유도 바로 월드와이드웹(WWW)이 개발되어 상용화 되었기 때문이다. 이처럼 인터넷 프로토콜은 지금도 디지털 경제를 주도하 는 중심 축이 되고 있다. 
- 우리는 블록체인을 프로토콜 또는 프로토콜 경제라고 말한다. 왜 블록체 인을 프로토콜이라고 정의할까? 일반적으로 프로토콜은 통신규약으로 이해하고 있다. 그러나 여기서 말하는 블록체인 프로토콜이란 경제 시스템에 적용되는 모든 규칙 (protocol)이 프로그램을 통해 작동되는 것을 의미한다. 상 거래에 필요한 제도, 원칙, 거래방법, 거래주체, 지불방식, 거래조건 등은 블 록체인 프로토콜에서 적용되는 규칙으로서 블록체인의 핵심범용기술에 담 기게 된다. 이러한 범용기술은 현실세계의 비즈니스 로직을 쉽게 설계하여 적용할 수 있다.  블록체인을 프로토콜이라고 강조할 수 있는 계기는 바로 이더리움에서 스마트계약이 등장한 이후 블록체인 비즈니스 생태계가 형성되면서 시작된다. 전세계가 인터 기반의 비즈니스를 수행할 수 있었던 것은 인터넷 프로토콜의 국제표준화 작업과 오픈 소스화가 제공되었기 때문이다. 블록체인이  진정한 프로토콜이 되기 위해서는 국제표준화 단체에서 이에 대한 지속 적인 연구와 산학연 협업이 이루어져 프로토콜 표준화 및 오픈화가 이루어져야 할 것이다.  블록체인 프로토콜은 인터넷 프로토콜과 달리 아직 국제표준화 기구를 통해 공식적으로 표준화 작업이 이루어지지 않은 상태이다. 다만 자체 메인넷을 운영하고 있는 이더리움, 이오에스, 폴카닷 등은 해당 네트워크 생태계 내에서 표준 기술을 제공하고 있다. 블록체인 프로토콜이 국제표준화가 이루어진다면 블록체인 경제는 지금보다 더욱 빠른 속도로 비즈니스 생태계가 확산되고 관련 기술도 발전할 것으로 예측하고 있다.
- 인터넷 프로토콜과 블록체인 프로토콜의 레이어를 비교해보자. 블록체인 프로토콜의 범위는 인터넷의 프로토콜 범위보다 더 넓게 느껴진다. 그 이유는 인터넷은 정보 공유를 위해 노드간 연 결과 데이터 전송을 담당하는 역할을 수행하는 반면, 블록체인은 참여자의 노드에서 거래한 데이터를 저장하고 권한을 관리하며, 거래의 완성을 위해 노드들 간의 합의 기능 등을 포함하고 있다. 블록체인 프로토콜 영역에서 작 동되는 기능이 인터넷 프로토콜 기능보다 많다는 것을 짐작할 수 있다. 블록 체인은 경제 시스템의 규약을 처리하기 때문에 이처럼 다양한 기능을 반영 하고 있어 인터넷 레이어 층의 역할에 비해 프로토콜 층의 두께가 더 두터워 보인다.
- 인터넷 경제에서는 대부분의 가치는 응용 층에서 제공하였다. 즉 응용 층의 가치는 중앙화 된 데이터베이스가 차지하였기 때문이다. 그래서 RDB 데이터베이스를 판매한 벤더사들은 많은 수익을 얻 게 되었다. 그러나 블록체인 경제가 성장하면서 과거에 응용 층에 집중된 주요 데이터와 가치는 프로토콜 층으로 이동하는 것을 볼 수 있다. 따라서 프 로토콜에 의해 발행되는 토큰(암호화폐)의 가치는 아래 그림처럼 더욱 커질 것으로 예측된다. 따라서 그 혜택은 블록체인 네트워크를 생성하고 참여하 는 사람들에게 귀결될 것이다.
- 토큰은 독립된 블록체인 네트워크를 소유하지 않은 경우이다. 이더리움 네트워크에서 ERC-20 형태로 발행된 초기의 이오스(EOS)와 트론(TRX) 등 이 이러한 토큰에 해당될 수 있다. 토큰은 암호화폐가 상장되기 전 자신의 블록체인 네트워크가 없거나 완성되지 않아 기존의 다른 네트워크를 사용 하여 발행하는 암호화폐를 말한다. 이 토큰은 블록체인 프로젝트의 투자자 금을 모집하거나 생태계 확산 등의 목적으로 자체 메인넷의 완성 전에 발행 하는 것이 특징이다.
독립된 블록체인 네트워크 즉, 메인넷을 보유한 경우 그 메인넷에서 발행 된 토큰은 코인으로 부른다. 비트코인(BTC), 이더리움(ETH), 스팀(STEEM), 넴 (NEM) 등이 여기에 해당된다. 자체 블록체인 네트워크를 보유하고, 완성된 자신의 메인넷에서 발행되는 암호화폐가 코인이다. 거래소에서 이 코인은 공식적으로 수수료를 지불하면서 유통된다. 또한 해당 플랫폼(마켓플레이스)에 서 상품과 서비스 구매를 위한 지불 수단으로 사용된다. 위에서 살펴본 이오스(EOS)와 트론(TRX)도 자체 메인넷을 개발한 후 토큰에서 코인이 되었다.
따라서 토큰은 코인에 비해 더 넓은 기능을 가지고 있다. 코인의 분명 한 목적은 화폐처럼 사용되어, 가치의 저장, 가치의 이전 수단 등으로 활용하는 데 목적이 있다. 이더리움의 ERC-20 표준을 기반으로 많은 토큰들 이 탄생하였고 그 수는 계속해서 증가하고 있다. 이처럼 현재 수많은 토큰 이 ERC-20 표준을 기반으로 만들어지는 상황에서 이더리움 네트워크 토 큰들 간의 자유로운 탈중앙화 거래가 가능하도록 하는 오픈 프로토콜인 ON(ZR)가 있다.  블록체인 네트워크에서 제공하는 코인은 해당 플랫폼 또는 타 서비스에 서 교환이 가능하고 장차 실생활에서 현금처럼 사용될 수도 있다. 토큰 경제의 3가지 필수 요소를 위해 코인이 사용된다. 첫째, 상과 벌을 제공할 때 쓰인다. 둘째, 거래를 위한 교환 수단 또는 가치의 저장 수단으로 사용될 수 있 다. 셋째, 블록체인 네트워크 인프라 구축과 운영을 위한 경제적 유인책으로 사용된다. 따라서 적절히 구성된 토큰 경제는 코인 발행량, 참여자에 대한 보상, 부의 재분배 토큰의 편중에 대한 방어) 및 지속적인 서비스 참여까지를 고려하여 설계되어야 한다.
- 경제학 관점에서 비트코인의 가치는 학자들마다 약간의 차이는 있으나 공통점은 네 가지로 요약할 수 있겠다. 첫째, 비트코인은 개인 간의 송금 및 거래에서 결제 대용으로 사용되는 화폐로서의 가치를 지닌다. 둘째, 실물경제에서 화폐의 용도보다는 가치 저장이라는 자산의 성격을 포함하고 있다. 셋째, 금융기관, 비전통 금융(DeFi 등) 분야에서 다양한 파생상품 및 서비스 상품으로서 포트폴리오의 다각화에 우수한 수단이 되고 있다. 넷째, 금융 시 스템이 발달하지 못한 저개발국, 신흥국에서는 법정화폐로 인정되고 있다. 이처럼 비트코인이 담고 있는 가치는 이제 부인할 수 없는 현실이 되고 있음에 주목해야 한다.
- 비트코인은 지장 수단으로서, 암호화폐의 기축통화로서, 최초로 탄중앙화된 디지털 금융의 시초가 되었지만 금융 분야에서의 한정된 사용 성과 느린 기래 속도, 낮은 확장성, 그리고 분산화된 시스템에 의한 작업 증 명(POW)이라는 합의 도출 과정에서 많은 전력 소모와 컴퓨팅 자원을 사용 하는 단점을 지니고 있다. 이러한 문제점은 비금융산업으로 확산하는 데 제 해 요소로 작용하고 있다. 또한, 비트코인은 '스크립트 언어라는 튜링 불안 건성을 지니고 있기 때문에 이더리움의 스마트 컨트랙트와 달리 프로 그래 밍으로 모든 것을 구현하기 어렵다. 따라서 다양한 비즈니스 생태계를 구축 하는 것은 더욱 어려운 일이다. 그러나 초기에 등장한 1세대 블록체인 기술로서 비트코인은 단지 화폐의 교환과 기래에 초점을 둔 암호화폐로서 중개사 없이 기래의 신뢰를 보장하 고 김중하는 '글로벌 단일 금융 시스템'을 만들었다는 점에서 커다란 의의가 있다. 비트코인의 한계점은 2세대 블록체인인 이더리움이 등장과 함께 3세대에서 개선되민서 블록체인 경제를 만드는 인프라로 발전하게 된다.
- 2세대 블록체인인 이더리움(Ethereum)은 '스마트 컨트랙트'를 중심으로 계 약의 자동화가 이루어지는 단계이다. 블록체인 2.0에서는 이더리움의 스마 트 컨트랙트로 자율 계약을 구현할 수 있게 되었다. 스마트 계약은 블록체인 기술을 받쳐 주는 인프라로서 프로토콜 범주에 속한다. 이것은 블록체인 기반의 경제 모델을 솔리디티 (solidity) 언어로 코딩하여 거래 관련 업무가 자율 적으로 성사될 수 있도록 만드는 프로그램이다. 스마트 컨트랙트의 등장으로 블록체인 네트워크에서 암호화폐의 교환과 거래를 뛰어넘어 비즈니스를 실행할 수 있는 기반이 마련된 셈이다.
- 디지털 스마트 계약이 지니고 있는 특성을 토대로 경제 시스템 구축 및 운영 관점에서 토큰 경제의 생태계 발전 가능성을 정리하면 아래와 같다.
* 스마트 계약은 아직은 법이 아니다. 법적 구속력이 실현된다면 법준수 여부의 입증 자료로 활용될 수 있다. 
* 스마트 계약은 프로그래밍이 쉽다. 이더리움 솔리디티(solidity) 언 어 사용 시 몇줄의 코딩으로 복잡한 비즈니스 프로세스를 처리할 수 있다. 그러나 솔리디티 언어를 습득해야 한다. 
* 스마트 계약은 안전하다. 그리고 비즈니스 응용 범위가 다양하다.  현실 세계의 자산, 스마트 자산, 사물 인터넷, 금융 상품 등 다양한 관련 서비스 운영이 가능하다.
* 스마트 계약은 자산을 디지털화하여 통제 및 관리하기 때문에 계약위반시 비용이 크게 증가할 수 있다. 이것은 블록체인 기술 구조상 거래 정보를 원점으로 되돌리기는 어려운 문제로 앞으로 해결해야 할 과제 중의 하나이다.
- 이더리움 프로토콜은 여러 유형의 토큰을 발행할 수 있도록 ERC-20 (유틸리티 토큰), ERC-721 (NET), ERC-1400 (증권형 토콘) 등 표 준을 제공하고 있다. 이더리움에서 탄생한 DApp 서비스들은 바로 이러한 프로토콜을 사용하여 자신들이 원하는 성격의 토큰과 비즈니스 생태계를 만들고 있으며 이더리움에서 만들어진 그들의 토큰은 이더리움 가치가 상 승하면 영향을 받아 토큰의 가치가 함께 상승하는 효과를 얻기도 한다. 따라서 이더리움 플랫폼은 블록체인 비즈니스 생태계의 성장을 촉진하는 블록체인 경제 시스템의 한 인프라가 되는 셈이다.
- 블록체인 3.0은 기술이 사회 전반에 혁신·적용되는 시기로 정의할 수 있다. 3세대 블록체인 기술은 이전의 블록체인 기술이 가지고 있던 문제점을 개선하기 위해 블록체인 기업들이 기술적으로 다양한 시도와 변화를 추구 함에 따라 비즈니스 모델도 진화되고 있다. 또한, 비트코인의 처리 속도 및 성능을 개선하고 스마트 컨트랙트를 비즈니스 모델에 적용하면서 여러 유 형의 암호화폐가 등장한 것이다. 우리는 이것을 알트코인(Alternative Coin)이라고 부른다. 많은 알트코인들은 기존의 시장경제 모델과는 한 차원 다른 그 립토-파이낸스 축을 추가할 수 있게 함으로써 삼면시장의 모습으로 새로운 비즈니스 생태계를 구축할 수 있는 기회를 제공한다. 이 시기에 나타난 가장 큰 변화는 두 가지로 정리할 수 있다. 하나는 블록체인 기능 항상 측면의 기술 발전이며, 다른 하나는 블록체인 운영 측면에서의 제도적 발전이다.
- 샤딩이란 하나의 거대한 데이터베이스나 네트워크 시스템을 여러 개의 작은 조각으로 나누어 분산 저장하여 관리하는 것을 말한다. 이것은 데이터 를 수평 분할한다는 의미이며, 과도한 데이터 저장 문제로 용량 초과시 저장 공간 부족과 속도 저하 문제를 해결하기 위한 접근 방법이다. 2세대 블록체 인인 이더리움에서도 살펴보았듯이 P2P 네트워크에 참여하는 컴퓨터(Node) 가 많아질수록 전체 시스템의 효율성은 일반적으로 떨어지는 확장성 문제 가 존재하고 있다. 또한, 이더리움 네트워크 위에서 구현된 많은 DApp과 최 근 급증하는 DeFi DApp들로 인하여 이더리움 네트워크 속도가 심각하게 저하되었다. DApp이 많을수록 거래량이 많아지고 처리해야 할 합의 건수가 증가하기 때문에 높은 가스비 문제로 인한 성능의 이슈가 제기된 것이다. 이를 개선하기 위해 진행 중인 이더리움 2.0 프로젝트가 기대된다.
이더리움 2.0에서는 메인 네트워크를 하드포크하여 이중 레이어를 사용하고 있는데 1 레이어에서는 합의를 이루는 비콘체인 기술과 2 레이어에서는 샤딩 기술을 각각 적용하고 있다.
- 블록체인 오라클은 블록체인과 바깥 세계의 다리 역할로서 외부 데이터 자료를 요청하고, 검증하고, 증명하고, 해당 정보를 온체인에 전달하는 연결통로이다. 오라클을 통해 전송된 데이터는 가격 정보, 성공적인 결제 완료 정보 등 다양한 유형의 중요한 데이터가 될 수 있다. 중앙화된 외부 정보는 외부 공격에 취약할 수 있다. 반면, 탈 중앙화 오라클은 상대방의 거래 정보의 위험을 방지하며, 퍼블릭 블록체인과 같은 목표들을 일부 공유한다. 스마트 컨트랙트는 데이터 유효성과 정확성을 결정하기 위해 다수의 오라클에 요청을 보내어 오라클이 제공하는 데이터에 기반해 결정을 내린다.
- 지금까지 많은 블록체인 프로젝트가 런칭되고 개발되고 있다. 그 프로젝트들의 백서에는 나름의 토큰 경제 모델을 제시하고 있는데 이것은 백서의 핵심이 바로 토큰 경제 모델의 설계에 있으며, 미래 해당 생태계의 발전 가 능성을 그 모델에서 엿볼 수 있다. 또한, 블록체인 프로젝트에서 가장 어려 운 부분이 바로 토큰 경제 모델의 설계이다. 성공적인 암호화폐 생태계를 만 들고 유지하기 위해서 설계자는 비즈니스 관점, 기술 관점, 금융 관점 등에 대한 해박한 지식과 경험이 필요하다. 다음은 탈중앙화 구조에서 토큰 경제 모델을 설계하기 위해서 주목해야 할 사항들이다.
(1) 참여자들에게 부여되는 보상은 어떤 경제적인 유인 체계가 존재 하는가?
* 네트워크의 목적에 부합하는 인센티브 구조의 고안이 필요하다.
즉 보상(토큰)은 어떤 기준으로 참여자에게 줄 것인가? 
(2) 네트워크 수요와 토큰 수요를 연결하는 방법에 대해 고려해야 한다. 
* 토큰 발행량과 이 발행량을 어떻게 분배할 것인가? 
* 네트워크의 성장과 토큰의 가치 상승을 어떻게 연동할 것인가? 
* 경쟁통화 가격의 변화를 고려
(3) 경제활동 관련하여 정해진 정책, 규정 및 매개 변수를 변경할 경우, 어떤 기준으로 누가, 어떻게 변경할 것인가에 대한 거버넌스 체계 설계
(4) 블록체인 네트워크 밖에서 발생한 참여자의 행동과 관련 정보를 어떻게 입증할 것인가에 대한 데이터 오라클 관련 설계 등 
(5) 어떻게 토큰 경제가 지속적으로 성장하도록 할 것인가?
(6) 급격한 유동성에 대한 대응 전략을 수립하여야 한다.
* 토큰의 가격 변동성은 어떻게 해결할 것인가?
* 인플레이션 등 고려
- 토큰 발행 방식 
흔히 토큰은 DApp 실행을 통해 발행된다고 알고 있다. 토큰 발행은 발행 시점에 따라 두가지 방식을 취하는데 그것은 메인넷이 출시되기 이전과 메 인넷 출시 이후이며, 이 두가지 방식을 고려하여 토큰 이코노미를 설계하여야 한다.
메인넷 이전(Pre-Mainnet) 단계에도 토큰은 발행될 수 있다. 그것은 주로 크 라우드 펀딩 형태의 투자 자금 모금용 또는 회원 모집용으로 초기 블록체인 생태계의 시작 시점에 토큰 경제를 위한 토큰 메커니즘에서 활용한다. 메인 넷 이후 토큰은 알고리즘 방식에 의해 블록체인 네트워크에서 발행된다. 알고리즘 방식은 투자자용보다는 참여자 보상, 거버넌스의 안정적 운영 및 생태계 확산을 위한 토큰 메커니즘이다.
- 메인넷 이전 방식은 상장 전 이미 토큰을 발행하는 방식으로서 인센티브 용도로 얼마의 토큰을 할당하고, 주주에게 할당된 토큰량과 투자자에게 몇 %의 토큰을 제공할 것인가 등에 대한 정의가 사전에 이루어진다. 메인넷 이 전 단계에서는 흔히 ERC-20 형태의 토큰으로 토큰 이코노미가 운영되다. 가, 메인넷이 출시되는 단계에서는 해당 메인넷 코인이 발행되어 본격적인 플랫폼 코인 이코노미와 거버넌스가 작동하게 된다. 메인넷 이전 방식에서 토큰 이코노미가 운용됨에 따라 소각 등의 이유로 그 초기 수량이 감소했다. 면, 메인넷 출시 시점의 토큰 수량만큼 코인을 초기 발행하여 1:1로 스왑하 는 것이 일반적이다. 다른 방법으로는, 초기 메인넷 이전 발행량과 같은 수의 메인넷 코인을 발행하고 메인넷 이전 기간 동안 소각한 만큼의 코인은 소각한 뒤, 1:1로 스왑을 할 수도 있다.
- DeFi가 기존의 금융 서비스와 가장 큰 차이점은 4가지로 요약해볼 수 있겠다.
* DeFi는 특정 고객이 없다.
* 금융 시스템에서 제3의 신뢰기관 역할을 담당한 은행, 카드사 등 과 같은 중개인 없이 인터넷과 블록체인 기술에 의해 금융 서비스가 가능하다. 이 점이 중앙화된 시스템 안에서 법정화폐를 기반으 로 운영되는 핀테크나 CeFi (Centralized Finance)와 다르다.
* 탈중앙 네트워크에서 개인 간의 대출, 송금, 교환이 가능하며 투명성과 보안의 안정성도 제공된다.
* 대부분의 디파이는 블록체인의 디앱(DApp)에서 스마트 컨트랙트를 통해 구동된다. 즉 이 기능은 프로그래밍에 의해 작동된다.

- 오리진(Origin)은 P2P (Peer-to-Peer) 시장 및 전자 상거래 응용 프로그램을 만들 수 있는 오픈소스 플랫폼이다. 오리진 플랫폼은 글로벌 공유경제 시장 구축을 목표로 시작되었으며, 이 프로토콜이 지향하는 미래는 공유경제 시 장에 참여하는 구매자와 판매자가 자신이 소유하고 있는 재화와 서비스를 부분적으로 구매 및 판매할 수 있는 블록체인 기반의 공유경제 시장을 만드 는 데 두고 있다. 기존의 공유경제 모델과는 차별화된 블록체인 기반의 탈중 앙화된 분산구조로 이루어져 번거로운 거래 비용이 수반되지 않으며, 플랫 폼에 참여한 네트워크 참여자들에게 인센티브 체계에 따른 보상을 제공하고 있다.
- 삼면시장을 형성하는 시장경제를 만들겠다는 뜻이다. 이를 위해 오리진 프로토콜은 이더리움(Ethereum) 블록체인 및 IPFS (Interplanetary File System)를 사용하여 커뮤니티 참여자들이 오리진 플랫폼 상에서 서로 P2P 방식을 통 해 직접 상호작용이 가능하도록 하였고, 중개자 없이도 서비스와 제품을 직 접 거래할 수 있도록 상거래 네트워크를 활성화시키려고 노력하는 중이다.
또한 오리진의 OUSD (Origin Dollar)가 출시됨으로써 전체 디파이(DeFi) 생태계에서는 꼭 필요한 구성요소로 환영을 받고 있다.
- 블록체인 기반의 데이터 경제가 실현되기 위해서는 먼저 해결되어야 할 문제가 있다. 이것은 데이터 오라클(Oracle) 문제이다. 블록체인 네트워크를 기준으로 외부 오프체인 데이터가 블록체인 내부의 온체인 데이터와 상호 작용하기 위해서는 이런 환경을 만들어 줄 수 있는 중간 자가 필요하다. 그 것은 SW가 될 수 있고, 또 다른 인터페이스 장치 또는 수동으로 처리할 수 있는 사람이 될 수도 있다. 현실 세계와 블록체인의 중간에서 데이터를 블록 체인 안에 넣어줄 수 있는 역할이 필요한 것이다. 이것을 우리는 데이터 오 라클이라고 정의한다. 여기에서, 그 중간자 역할을 하는 사람이나 장치를 어 떻게 신뢰할 것인가 하는 문제가 발생된다. 오라클 문제는 하드웨어와 소프 트웨어 영역에 모두 존재한다. 하드웨어 문제는, 센서, IoT 디바이스, 내장형 디바이스 등의 오작동 문제이다. 소프트웨어 문제로는 자료를 수집하는 봇의 실수나 의도적인 왜곡, 빅데이터 분석기 에러, 인공지능의 오류, 소프트 웨어 버그, 해킹된 소프트웨어 등의 다양한 문제가 존재한다. 데이터 오라클 문제의 해결 방안에는 크게 세 가지가 있다.
첫째, 온체인 입장에서 암호화폐 소유자들의 투표로 선택할 오프체인 데이터를 결정하는 방법
둘째, 다양한 데이터의 중간값(Median)을 선택하는 방법 셋째, 신뢰할 수 있는 데이터를 제공해주는 중간자(Middleware)를 활용하는 방법이다.
제시하고 있는 3가지 방법은 현재 데이터 오라클 문제를 완전하게 해결하지는 못한 상태이다. 세번째 방법인 중간자 서비스 형태로 이 문제를 해결해 주는 사업체들이 각광을 받고 있다. 그 중에서도 Provable과 Chain Link에서 제공하는 데이터 오라클 서비스가 활발하다.
- 데이터 레이크의 특징은 원시 데이터(Raw Data)를 그대로 저장한다는 점 이다. DW에 데이터를 담기 위해서는 데이터를 추출 변형-적재(ETL)라는 과정을 거쳐야 했다. 구조가 각각 다른 DB에서 나온 데이터이기 때문에 하 나의 구조로 맞춰야 하기 때문이다. 그러나 데이터 레이크는 이런 ETL과 같 은 중간 과정이 필요없다. 다양한 원시 데이터를 저장해두고 있다가 분석을 할 때 필요한 형태로 데이터를 가공한다. 데이터를 저장하는 시점이 아니라 분석하는 시점에 정의하는 것이다. 이 때문에 즉시 ad-hoc) 분석이 가능하다. 대신 데이터 레이크에는 카탈로그'라는 기능이 필요하다. 어떤 데이터가 어 디에 저장돼 있는지 카탈로그를 만들어 놓고, 분석이 필요할 때 그것을 보고 필요한 데이터가 있는 곳의 데이터에 쉽게 접근하는 것이다.
데이터 레이크에서 한걸음 더 나아간 개념이 데이터 오션(Data Ocean)이다. 데이터 레이크가 그래도 약간의 특수한 비즈니스 영역별로 나누어 진다면, 데이터 오션은 그야말로 모든 영역의 데이터들이 표준화 형태인 사전처리 없이 저장되어 있는 곳이다. 의미 그대로 데이터의 바다인 셈이다.




'IT' 카테고리의 다른 글

웹 3.0 레볼루션  (0) 2022.07.03
1일 1로그 IT지식  (0) 2022.06.01
포스트 메타버스  (0) 2022.05.11
빅데이터 사용 설명서  (0) 2022.05.07
웹 3.0 메타버스  (0) 2022.05.07
Posted by dalai
,

포스트 메타버스

IT 2022. 5. 11. 19:50

- 가상현실, 증강현실 AR, 메타버스 같은 것들은 역사적으로 함께 발전해 오다가 최근 들어 더욱 주목을 받고 있다. 개념을 다시 한번 정리하고 넘어가자, 가상현실은 인간을 가상 세계로 들여보내는 것이고 증강현실은 거꾸로 컴퓨터 안의 가상 세계를 3차원 세계로 흩어내는 것이다. 개념적으로 보면 가상현실과 증강현실은 정반대라고도 볼 수 있다. 그리고 가상현실과 증강현실 사이의 적절한 혼합으로 혼합현실 MR이 존재하고, VR과 MR과 AR을 통틀어 확장현실R이라는 용어가 통용되고 있다.
- 현실 공간에 가상현실의 일부를 가져오는 것을 증강현실Augmented Reality , 가상 공간에 현실의 일부를 가져가는 것을 증강가상Augmented Virtuality 이라고 부른다. 우리가 보고 싶은 걸 보여주는 게 증강현실이라면, 보고 싶지 않은 걸 없애는 것은 감소현실 Diminished Reality 이라고 한다. 그리고 우리가 있는 공간이나 물리적 객체를 매개로 해서 새로운 정보나 공간을 연결하는 것을 매개현실 Mediated Reality 이라고 부르기도 한다. 가상과 현실을 넘나드는 이러한 개념이 메타버스와 연결되면 새로운 가치를 만들어낼 수 있을 것으로 기대 되고 있다. 그런 의미에서 메타버스는 매개현실 또는 현실과 가상을 융합 한 확장 가상 세계라고 할 수 있다. 이 확장 가상 세계는 키보드와 마우스로 접근할 수도 있지만, 아바타를 활용하여 탐색할 수도 있다. 동시에 일상의 현실과도 연결되어 있으므로 일상의 활동도 할 수 있는 공간이다. 따라서 혼합현실 Mixed Reality 을 기반으로 우리 상상력을 가미해 만들어내는 다양한 층위의 매개현실, 또는 확장 가상세계, 그것이 바로 메타버스라고 할 수 있다.
- 메타버스의 정의
사람들이 바라보는 메타버스라는 단어가 혼란스럽게 느껴질 수 있지만, 2007년에 메타버스에 대한 다양한 논의를 토대로 메타버스의 미래를 다룬 로드맵이 정리되었고 여기에 정확한 정의도 등장한다. '메타버스는 1가상으로 향상된 물리적 현실과 2 현실과의 연동으로 지속 가능한 가상 공간의 융합이라는 것이다.
- 보통 기술의 사이클에서 성공적으로 사람들의 관심을 모았다고 보는 수치를 1천만 명 정도라고 한다. 아이폰의 경우 처음 등장 한 것이 2007년이었는데, 2008년에 이미 판매량이 1천만 대를 넘 었다. 그리고 경제 활동이 가능한 규모인 1억 명을 언제 넘기느냐가 중요한데, 아이폰은 2011년에 1억 대가 팔렸고 2016년에는 10억 인구가 아이폰을 쓰고 있었다고 한다.
그렇다면 메타의 가상 세계를 경험할 수 있는 디바이스인 메타 퀘스트2의 판매 수치를 비교해볼 수 있을 것이다. 2020년 가을에 소개된 메타 퀘스트2가 아이폰보다 빨리 보급될 수 있을지 들여다봤을 때, 현재까지는 아이폰과 비슷한 보급 속도를 보이고 있다. 올해 중으로 1천만 대를 돌파할 것으로 보이는데, 얼리 어답터 외에 일반인들까지 구매에 동참해야 가능한 수치인 1억 대가 언제까지 팔릴지는 아직 미지수다. 하지만 1년에 10조 원씩 투입하여 2025년까지는 일상에서 메타버스를 경험하게 하겠다며 총력을 기울이고 있는 메타사의 비전을 보면, 1억 명까지도 가능하지 않을까 희망적인 전망을 기대할 수는 있을 것 같다.
그럼 10억 명까지는 어떨까. 아이폰의 경우를 벤치마킹해 본다면, 메타 퀘스트2가 2029년까지 10억 대가 팔리는지의 수치가 메타버스가 우리 일상에 스며들 수 있을지를 가늠하는 관건이 되지 않을까 싶다. 당장 메타버스가 실현되기를 기대하는 분들에게는 실망 스러운 통계일 수도 있겠지만, 냉정하게 봤을 때 메타버스가 정말일상적인 공간이 되기 위해서는 이 정도의 시각 프레임으로 느긋하게 바라볼 필요가 있다.
- 건축디자인 분야에서 우리는 아직 가상 공간의 이점을 활용하기보다는 기존의 패러다임에 갇혀있는 것 같다. 단순히 현실 세계를 모방하거나 현실에서 좋았던 공간을 가상 공간으로 옮기는 것이 아니라, 더 혁신적으로 예전의 것을 버리고 다양한 시도를 해보는 것이 필요하다. 건축물의 본래 목적은 사람들을 다양한 기후로부터 보호하는 목적을 가지고 있었다. 현실 공간과 가상 공간의 차이에서 언급했듯이 가상 공간은 기후에 영향을 받지 않는다. 결국, 가상 공간 안에서는 건축물의 필요성 자체부터 다시 생각해 봐야 할 것 이다. 또한 실제로 가상 공간 속 건축물이 필요하다면, 현실 세계의 연구 및 디자인 가이드라인을 따르는 것이 아닌 가상 공간 자체 안에서 어떤 공간에 더 만족감을 느끼고, 어떤 공간이 사람들의 창의성이나 퍼포먼스를 높여줄 수 있는지 등에 대한 많은 연구가 필요할 것이다. 그러한 가상 공간 가상 건축디자인 가이드라인이 만들어 진다면 공간의 기능성을 향상시키고 사람들에게 더욱 만족스러운 가상 공간이 되지 않을까. 이를 통해 메타버스가 우리의 일상에 스며든다면 지금보다 훨씬 많은 시간을 보내게 될 가상 세계가 사람들에게 보다 만족스러운 공간으로 구현될 수 있기를 바라본다.
- 메타버스가 현실 세계와 연결되려면 완전한 가상 요소보다는 증강현실이 특히 중요해질 것이다. 실생활에 가상의 것을 증강시키는 부분이 연결된다면 일상에서도 새로운 네트워크 세상이 열리는 셈이라고 본다. 지난 2년 전쯤 이런 부분에 대해 영국 에든버러 대학교의 로빈 윌리엄스 Robin Williams 교수 연구팀이 연구한 내용이 있다. 메타버스와 AR이 함께하는 것을 'Augmented duality'라고 표 현해서, 현실 세계에 있지만 동시에 증강된 새로운 세상을 느낄 수 있는 가능성을 메타버스가 제안한다는 것이었다.
그동안 많은 사람이 메타버스가 현실에 없는 새로운 세상을 만 드는 것처럼 여겨왔지만, 오히려 현실 부분을 증강된 현실에서 해볼 수 있는 새로운 기회로써 해석할 수도 있을 것이다.
장소성 연구는 공간이 지닌 여러 의미를 발견하고 지속적으로 학습하여 사람들이 원하는 공간에 최적의 서비스를 제공하는 메타버스와 결합하게 되면 새로운 기회를 제공할 수 있다. 이를 위해서는 첫 번째로 그 공간이 어떤 형태로 활용되는지를 이해해야 한다. 주말에 사람이 모이는 곳인지, 모여서 사회적인 행위를 하는 곳인지, 혹은 주로 어떤 놀이를 하는 곳인지 등 물리적인 공간에 축적된 다양한 의미를 발굴해야 한다. 두 번째는 현실 세계에 모여있는 사람들에게 어떤 장소성이 이 사람에게 가장 맞는 것인지 실시간 공간 의미를 추론할 수 있어야 하며, 마지막으로 그 내용에 따라 다양한 의미의 공간을 재구성할 수 있어야 할 것이다. 메타버스와 AR을 활용하면 일단 실제 공간에서 자신이 보지 못했던 장소의 다양한 의미를 이해하는 데 도움이 될 것이다. 예를 들면, 기존의 AR은 여행자에게 어떤 공간에 갔을 때 단순히 한 가지 종류의 정보를 전달하는 것 이상의 역할은 하지 못했다. 그런데 이 공간이 가지고 있는 사회적인 의미, 시간 축을 통해 다양하게 축적 된 사람들의 장소성을 경험할 수 있다면 공간에 대한 이해가 훨씬 새로워지지 않을까.
- 얼굴의 움직임 표현하기
이러한 가상 캐릭터들은 물론 몸의 움직임만이 아니라 얼굴의 움직임도 중요할 것이다. 디지털 세상에서 우리는 나를 있는 그대로 표현할 수도 있지만, 내가 표현하고 싶은 모습을 선택적으로 보여줄 수도 있다. 이를테면 나의 어린 시절 모습이나 혹은 나이 들었을 때 의 모습으로 얼굴을 표현할 수도 있는 것이다. 예전에는 이에 대한 데이터를 확보하는 것 자체가 쉽지 않았는데, 최근에 이르러서는 관련된 여러 기술이 발달하면서 다양한 표현이 가능해졌다. 사람의 얼굴을 보고 나이를 추정할 수 있는 기술이 개발되면서 거기에서 자동 으로 데이터를 만들어내고 학습할 수도 있게 된 것이다.
또 얼굴의 변화, 이를테면 하나의 형체가 전혀 다른 이미지로 변화하는 모핑 morphing 기술도 자연스럽게 표현할 수 있게 됐다. 한 예로 마이클 잭슨의 〈Black or White) 뮤직비디오를 보면 다양한 인종과 성별, 나이대의 사람들의 얼굴이 자연스럽게 바뀌면서 모든 사람이 평등하다는 메시지를 전한다. 최첨단 기술을 이용한 영상인 셈인데, 원래 이런 영상을 만들기 위해서는 앞사람의 눈코입이 다른 사람의 눈코입에 어떻게 대응되는지 일인이 손으로 지정을 해야 했다. 그래서 작년에 우리가 개발해 발표한 기술은 이런 모핑을 완전히 자동화시키는 것이다. 굳이 사람만이 아니라 동물이나 음식, 사물이라도 학습 네이터만 충분하다면 사람이 손을 전혀 대지 않고 무엇이든 자동으로 모평될 수 있도록 만든 프로그램이다. 마이클 잭슨의 뮤직비디오 같은 경우는 사람의 정면이 보여야 한다는 제약이 있 었지만, 이 프로그램에서는 얼굴만 보이는 강아지는 또는 몸 전체가 보이는 강아지는 알아서 대응되는 부분을 자동으로 계산해서 모핑이 이루어진다. 또 여러 개의 사진이 동시에 주어지더라도 그 안에 서 가장 적절한 모핑도 일어날 수 있다.
- 꿈을 해석한 대표적인 인물로는 정신분석학의 대가인 프로이 Sigmund Freud 와 라캉Jacques Lacan, 그리고 철학자 지젝 Slavoji Zizek 을 꼽을 수 있을 것 같다. 먼저 프로이트는 《꿈의 해석》이라는 책에서 꿈을 새로운 차원으로 해석한 유명한 학자이자 정신과 의사다. 프로이트가 새롭게 발견한 것이 바로 의식과 무의식의 세계다. 그는 무의식은 잠재된 욕망이며, 겉으로 드러난 의식보다 훨씬 큰 세계라고 보았다. 인간이 꿈을 꿀 때는 그 무의식에 담긴 욕망이 발현된다는 것이다. 라캉은 의식과 무의식의 세계를 3단계로 나눈다. 상상계 Imaginary는 인간이 태어나 언어를 배우기 전, 자신과 타인을 구분하지 못하는 단계다. 그러다 언어를 배우면서 상징계 Symbolic 에 들어오고, 그 상징계 너머에 인간이 실제로는 다다를 수 없는 가장 순수한 욕망의 세계가 실재계 Real라고 이야기한다. 그리고 꿈은 이 Real 세 계의 구현이라는 것이다. 현실 세계를 벗어나 진짜 꿈꾸고 싶은 자기 욕망을 구현하는 세계가 바로 Real의 세계다.
지젝은 이러한 라캉의 이론을 Sexuality에 빗대어 해석하기도 했다. 마스터베이션 Masturbation 과 실제 Sexual act를 비교해 보자. 마스터베이션은 상상 속의 파트너와 하는 행위이니 reall'은 아니고 당연히 파트너와 Sexual act를 하는 것이 실제 real'일 것이다. 그런데 지젝은 이런 의문을 제기한다. 실제로 우리의 이상적인 욕망을 가장 잘 구현하는 것은 마스터베이션일까, Sexual act일까? 사실 잠재적 인 욕망을 그대로 반영하는 마스터베이션이 Real 실재에 더 가까울지도 모른다. 그렇다면 실제로 일어나는 Sexual act는 실제 real이긴 하지만 라캉이 말하는 실재 Real의 세계는 아니지 않을까.  결국 우리가 현실이라고 믿고 있는 것이 현실이지만 '진짜'는 아니고, 반대로 가상이라고 믿고 있는 것은 현실이 아니지만 '진짜' 일 수도 있다는 이야기다. 우리의 욕망이 진짜 구체적으로 실현되는 곳이 현실이 아니라 꿈이라면, 그게 더 진짜 세계에 가까울 수도 있다는 것이다.
이처럼 가상 세계의 의미를 명쾌하게 해석하기는 쉽지 않다.
- 메타버스의 공간은 이러한 기상 세계의 이리 측면을 그대로 보여주고 있는 것이 아닐까, 어떤 민에서는 현실에서 억눌린 욕망을 가상 세계에서 구현하고자 하는 그 의지기 메티버스에서 다양한 형태로 니다니고 있다고 할 수도 있고, 다른 한편으로는 더 나아가 현실을 그대로 가상 공간에 옮기동이 더 현실 같은 공간으로 만드는 모습도 메타버스에 나타나기 때문이다. 요즘 메타버스에서 단순한 만남과 놀이 이외에도 다양한 비즈니스나 경제 활동이 벌어지고 있는 점이 그런 가능성을 말해주는 것은 아닐까. 가상 세계 메타버스의 해석은 지금부터가 시작인 셈이다.
- 보통 디지털 커뮤니케이션의 특징을 CMC Computer Mediated Communication 라고 이야기한다. 즉 면대면 커뮤니케이션이 아니라 컴퓨터를 매개로 하는 커뮤니케이션이라는 뜻이다. 그런데 어쩌면 앞으로는 CMC가 아니라 AMC Avatar Mediated Communication, (아바타 매개 커뮤니케이션)가 등장할 수도 있겠다는 생각이 든다. 아바타를 매개로 하는 가상공간의 커뮤니케이션이 굉장히 중요한 커뮤니케이션의 흐름이 될수도 있지 않을까. 실제로 가상의 아바타 모델이나 아바타 걸그룹이 등장하기도 했으니, AMC의 현실도 머지않아 실현될지도 모르겠다.
그런데 또 한편으로는 자기 캐릭터를 현실과 비슷하고 정교하게 만들려는 것과는 반대로, 최대한 단순하고 재미있게 만화처럼 바 꾸려고 하는 흐름도 있다. 특히 모바일 메타버스 게임에서 더욱 그런 특징이 발견된다. 이것은 아바타의 두 가지 상반된 측면인 셈이다. 왜 현실 세계의 인물과 비슷하지 않은 캐릭터 같은 모습을 취할까? 현실과 똑같은 아바타를 만들게 되면, 아바타에서 사람의 얼굴 부분이 굉장히 작은 비율로 그려질 수밖에 없기 때문이다. 사람과 사람이 대화할 때는 말뿐 아니라 표정이나 얼굴에 드러난 감정을 보는 것도 중요한데, 사람과 같은 비율로 만들어진 아바타의 얼굴로 는 풍부한 감정 표현을 나누기가 어렵다. 그래서 만화처럼 이등신이 나 삼등신의 캐릭터처럼 만드는 아바타가 선호되는 측면도 있는 것 이다.
어떻게 보면 자신을 꼭 닮은 아바타를 만드는 것이나 얼굴 모 양을 크게 만드는 것 양쪽 모두 메타버스 커뮤니케이션을 극대화하 기 위한 방식으로 볼 수 있다. 그러나 과연 어떤 것이 더 효과적이며 사용자의 욕망을 더 잘 구현할 수 있는지는 지켜볼 필요가 있을 것 같다.
- 언젠가 도래할지도 모르는 써로게이트〉의 세상은 과연 좋은 세상일까? 현실과 가상 세계가 합치되는 세계는 행복한 곳일까? 아 바타 매개 커뮤니케이션이 등장한다면 그것은 바람직한 변화일까? 이 대목에서 철학자 퍼트넘 Hilary Putnam 의 말을 되새겨 볼 필요가 있다. 그는 정보통신기술이 우리 생활을 더욱 개인화시킬 것이며, 인터넷의 확산으로 지구 반대편에 있는 사람들과는 더 가까운 관계 를 유지할 수 있겠지만, 정작 길 건너 사는 이웃과의 유대는 더욱 약 해질 것이라고 우려했다. 메타버스가 가져올 미래의 모습에는 아직 정답이 없다. 우리가 메타버스를 이야기할 때, 그곳이 즐거움을 느낄 수 있는 새로운 놀이공간일 수도 있지만 오히려 인간성이 상실 되고 소통이 단절되는 세계가 될 수도 있다는 측면도 함께 들여다봐야 한다.
- Ego or Alter Ego
사람들은 아바타를 어떻게 이용하고 있을까. Ego or Alter Ego, 자신을 표현하기 위해서 사용하거나, 아니면 또 다른 존재가 되기 의해서 사용한다. Microsoft Research에서 2016년에 공개한 데모를 보면, 어린아이가 움직이고 말하는 것을 여러 대의 카메라로 찍어서 바로 가상 아바타로 만든 다음에 어린아이의 아빠가 있는 별개의 공간에 전송한다. 그러면 아빠는 딸이 마치 자신과 같은 공간에 있는 것처럼 느끼고 대화할 수 있게 된다. 이럴 때 아바타는 사용자의 외양이나 움 직임 등을 그대로 모사하여 사용자의 Ego를 표현하는 것이다. 하지만 모든 아바타가 Ego를 표현하는 것은 아니고, 자신이 아니라 자신이 되고 싶은 Alter Ego를 표현하기도 한다. 미국에 일종의 복면가왕과 같은 프로그램 (Alter Ego)에서는 사람이 나오지 않고 아바타로 등장해서 심사위원 앞에서 노래를 부르는 장면을 볼 수 있다. 여기에서는 여러 여건 때문에 가수가 되지 못한 출연자들이 자신의 실제 모습이 아닌 아바타로 자신을 표현하며 노래를 부르는데, 이런 것이 아바타가 Alter Ego를 표현한 예라고 할 수 있다.
- 신체에 직접 자극을 주는 하드웨어적 방법 외에 소프트웨어적인 조작만으로 촉각 정보를 증강시킬 수도 있다. 예를 들어 VR 헤드셋을 착용한 상태에서 가상의 물체를 쥐고 들어올릴 때 내 실제 손의 위치보다 가상의 손의 위치를 더 아래쪽으로 보여주게 되면, 내 몸이 느끼는 손의 위치 정보와 내 눈에 보여지는 손의 위치 정보가 불일치하게 되고, 뇌에서는 이런 감각 정보 간의 충돌이나 불일치를 그 가상 물체가 무겁다고 착각하게 된다는 연구 결과가 있다. 이 경 우 촉각 정보는 아예 조작하지 않고 시각 정보만 왜곡해 제시함으로 써 뇌가 이것을 촉각 정보로 잘못 해석하도록 만드는 방법이다. 이런 방법을 Control/Display ratio 조작이라고 한다.
- 주의의 두 가지 종류
주의는 가장 일반적으로 하향식 주의와 상향식 주의로 나뉜다.
하향식 주의는 그 사람의 의지에 의해서 자발적으로 통제되는 주의기능이다. 예를 들어 공항에서 짐 가방을 찾을 때 보통 사람이라면 공항 바닥이나 천장에 집중하는 게 아니라 짐이 나오는 컨베이어 벨 트 위에 집중할 것이다. 짐 가방이 보통 그곳에서 나타난다는 지식 을 가지고 있어서 자발적으로 시선을 그쪽에 두기 때문이다.
반면 상향식 주의는 본인 의지가 아니라 외부 자극의 특성에 의해서 반사적으로 통제되는 주의 기능이다. 예를 들어 짐 가방을 찾는 도중 어딘가에서 큰 화재 경보 알람이 들린다면 내 의지와 상 관없이 소리가 나는 쪽을 쳐다보게 될 것이다. 이렇게 갑작스럽거나 아주 강한 자극의 특성 때문에 반사적으로 통제되는 주의를 상향식 주의라고 한다.
이 두 가지 주의 기능은 뇌에서 각각 다른 영역에 의해 작용하기 때문에, 주의를 유도하는 방법 역시 다르다. 하향식 주의 기능을 이용하는 가장 고전적 방법은 화살표 같은 내생적인 단서를 사용하 는 것이다. 우리는 어릴 때부터 학습을 통해 화살표의 의미를 너무 잘 알고 있기 때문에 오른쪽을 가리키는 화살표를 보는 순간 자발적 으로 화살표가 가리키는 오른쪽 방향으로 주의를 옮기게 된다. 화살 표 같은 단서들은 우리가 내적으로 의미를 해석한 결과로써 주의가 유도되기 때문에, 내생적 단서라고 부른다.
반면 상향식 주의를 이용하는 주의 유도 방법은, 주의를 유도하고 싶은 바로 그 위치에 매우 강하거나 갑작스러운 자극을 제시하 는 것이다. 갑자기 무엇이 움직이거나 빛이 깜빡이는 등의 자극이 나타나면 사람들이 반사적으로 그곳으로 주의를 옮기게 되는데, 이 경우 외부 자극의 특성에 의해서 주의가 유도되므로 외생적 단서라 고 부른다.
- 메타버스에서 아바타의 움직임과 인터랙션
이렇게 뇌의 운동 피질이 보내는 신호를 통해 신체의 움직임을 직접 통제할 수 있는 반면, 메타버스에서 아바타의 움직임은 그보다 훨씬 간접적으로 통제될 수밖에 없다. 사실 가장 기초적인 아바타 움직임의 통제 방법은 컨트롤러나 키보드 같은 간접적인 장치를 이용하는 것이다. 이 경우에 사용자가 버튼을 누르는 행위와 아바타의 움직임이 임의의 규칙으로 대응되어 있기 때문에, 규칙 자체를 익히 고 사용하는 데 사람의 많은 인지 자원이 소모되고 인터랙션의 효율 성이 떨어질 수밖에 없다.
그래서 최근에는 보다 직관적으로 아바타 움직임을 통제하는 방법이 많이 사용되고 있다. 즉, 트래킹이나 모션 캡처 방식을 사용해서 실제 사람의 움직임을 아바타의 움직임으로 재현하는 것이다. 실제 손의 움직임을 트래킹해서 아바타 움직임에 적용한다든지, 전 신의 움직임을 모션 캡처 기술로 추적해서 아바타 신체 움직임으로 재현해주기도 한다. 이러한 방법들은 본인의 신체 움직임 그대로 직접 아바타를 조종할 수 있기 때문에 중간 매개 장치를 이용하는 간 접적 통제 방법에 비해 훨씬 효율적이고 직관적이다.
하지만 현실 세계의 움직임과 달리, 메타버스에서의 움직임은 공간의 차이 때문에 여러 제약과 한계점도 지니고 있다. 특히 가상 현실을 생각해 보면, 실제 사용자의 몸이 위치하는 실내 공간은 협소하지만 가상 세계 공간은 끝없이 광활하다. 따라서 사용자의 실제 움직임을 트래킹해서 그대로 아바타 움직임으로 재현하기에는 큰 동작이나 이동 거리에 제한이 생길 수밖에 없다.
이런 한계점을 극복하기 위해서 크게 두 가지 방법이 사용되고 있다. 첫째는 트레드밀처럼 하드웨어적 장치를 사용해 걷거나 뛰거 나 점프하는 동작을 실제 이동 없이 제자리에서 하도록 하는 것 이다. 또 다른 방법은 리디렉티드 워킹 redirected walking 과 같이 실제 신 체의 이동과 시각적으로 주어지는 아바타의 움직임을 사용자가 지 각하지 못할 만큼만 조금 다르게 제공해서 실제 공간보다 더 큰 공 간을 탐험할 수 있도록 하는 방법이다.
- 가장 기본적인 청각 처리가 이루어진 다음에는 더 상위 레벨에서의 다양한 언어적인 이해 과정이 수반되어야 할 것이다. 이 때 먼저 음성 음운 분석이 이루어진다. 예를 들어서 'lion' 이라는 단 어를 들었다고 하면, 일단 'li'까지 들었을 때 여기에 매칭되는 모든 단어가 머릿속에 떠오르게 된다. 'lie, liar, lion 등의 단어들이 떠오 르다가 단어를 끝까지 다 듣고 나면 lion'을 제외한 나머지 단어들은 모두 탈락하고 내가 들은 단어를 인지하게 되는 것이다. 그 다음에 는 우리 머릿속에 있는 일종의 사전, 멘탈 렉시콘 mental lexicon 에서 이 단어의 발음과 의미, 문법 정보 등을 순식간에 끄집어낸다. 이렇게 음성이 나오기 시작해서 어휘 처리까지 이루어지는 과정은 약 400밀리초 정도, 즉 1초의 반도 안 되는 짧은 시간밖에 걸리지 않 는다. 특히 우리 머릿속에는 수도 없이 많은 어휘 정보가 들어있는 데, 이 단어들은 무작위로 존재하는 것이 아니라 의미상 연관이 있는 단어들끼리 더 긴밀한 네트워크를 형성한다. 그래서 'lion'이라는 단어를 들으면 '사자 갈기’, ‘고양이', '호랑이' 등의 단어가 같이 떠오 르며 활성화되고, 관련 단어에 대한 반응 속도도 훨씬 빨라지게 된다.
어휘 정보를 처리한 다음에는 당연히 문법 정보를 파악해야 할 것이다. 문장의 의미를 파악하기 위해서 통사 구조를 분석하게 된다. 예를 들면, 이 문장에서 무엇이 명사이고 동사이며, 무엇이 주어, 목적어인지 문장의 문법 정보를 이해하는 것이다. 또한 언어를 이해하기 위해서 우리는 여러 가지 상황이나 문맥 정보도 반영한다. 심지어 단어에는 나타나지 않는 숨은 화자의 의도까지 파악하는 것이 바로 우리가 하는 언어 처리 과정이다. 이러한 일련의 과정을 거쳐서 우리가 최종적으로 음성언어를 이해하게 되는 것이다.
- 메타버스에서 음성언어적 소통
음성학자로서 메타버스에서의 의사소통에 대해 생각해 보면, 언어적 표현과 비언어적 표현에 대한 기술적 개발이 모두 필요하지 않을까 싶다. 우선 언어적 측면을 살펴보면, 우리는 청각 정보와 시각 정보 를 동시에 활용하여 말소리를 인지한다. 그런데 메타버스에서 아바 타를 활용해 소통할 때 아바타에는 이런 시각적인 정보가 결여되어 있고, 따라서 음성 인지가 좀 더 어려워지며 듣기 노력이 증가할 수 밖에 없을 것이다. 듣기 노력이 증가하면 자연히 듣기의 피로도가 증가하는 것이기 때문에, 이것이 메타버스 사용의 피로도와도 연관 이 될 수 있다. 그래서 과연 이 피로도를 낮추고 좀 더 쉽게 이해할 수 있는 음성을 어떻게 구현할 수 있을 것인지, 시각 정보와 청각 정 보를 어떻게 일치시킬 수 있을 것인지와 관련된 기술 개발이 하나의 과제가 될 것으로 보인다.
하지만 반대로, 현실에서 겪는 음성언어 이해의 어려움을 메타버스에서 어느 정도 통제할 수도 있을 것 같다. 일반적인 환경에서는 우리가 컨트롤할 수 없는 요소가 상당히 많다. 예를 들어 사람들이 동시에 이야기할 경우에도 듣기 노력을 통해 집중도를 높여야 한다. 그런데 메타버스에서는 다양한 사람이 동시에 이야기할 경우 타깃 화자의 음성을 증폭시킨다든가 화자들 간의 공간적인 거리를 더 늘린다든가 하는 음성 기술을 통해 음성언어의 이해를 증진시킬 수 있는 방법을 시도해 볼 수 있다.
비언어적 측면에 대해서도 고려할 부분이 있다. 예를 들면, 아바타의 겉모습은 자유롭게 설정할 수 있기 때문에 굉장히 조그맣고 귀여운 몸집의 아바타에서 중후한 저음의 목소리가 날 수도 있을 것이다. 물론 그게 잘못된 것은 아니지만 실제로 몸의 사이즈와 목소리에 큰 상관관계가 있기 때문에, 그 사람의 음성에 어느 정도 일치하는 아바타를 추천하는 기능을 고려해 볼 수도 있을 것 같다. 또한, 기술을 통해 말소리의 공간적인 정보를 구현한다면 언어에 대한 실감도가 더 올라갈 수 있을 것이다.
- 메타버스에서 보다 자유롭게 체화된 음악을 즐기기 위해서는 인간이 음악을 할 때 뇌에서 어떤 일이 벌어지는지 이해할 필요가 있다. 메타버스에서 음악을 위한 커뮤니케이션을 할 때 이러한 뇌의 신호를 통해 커뮤니케이션의 질을 높일 수 있는 가능성이 있기 때문이다. 우리는 생각보다 많은 뇌의 영역을 음악을 위해 사용하고 있다. 당연히 먼저 귀를 통해 음악을 듣지만, 그 음악을 몸으로 표현 하기 위해서는 몸을 움직이는 운동 영역으로 신호가 전달된다. 또한 음악에 대한 고차원적 사고를 하거나 음악이 내게 어떤 의미로 다가 오는지 느끼는 과정은 전두엽에서 일어난다. 음악을 들어서 즐겁거 나 슬프거나 타인과 공감하는 등의 감정적인 과정은 뇌 안쪽의 보상회로를 통해 이루어진다. 즉, 우리는 다양한 뇌를 사용해 음악 활동을 하고 있다. 현재는 음악을 감상하거나 이해할 때 주로 시각과 청각에 의존하지만 음악을 할 때 사용되는 다양한 뇌 신호에 대한 이해가 높아진다면, 궁극적으로는 뇌와 뇌가 더 직접적으로 소통하여 마치 텔레파시처럼 향상된 형태의 커뮤니케이션도 가능할 것이다.
- 뇌의 청각 경로
구체적으로 음악을 할 때 우리 뇌에서 청각 피질과 운동 피질을 어떻게 사용하는지 살펴보자. 우리가 소리를 들을 때 소리는 귀를 통해 중뇌를 거쳐 대뇌피질로 가게 된다. 귀를 통해 소리를 듣지만 결국 뇌의 청각 피질에서 소리를 처리하는 것이다. 청각 피질에는 우리가 높은음을 들을 때와 낮은음을 들을 때 각각 응답하는 신경들이 따로 자리를 잡고 있다. 음고의 높낮이 변화 통해 선율이 만들어지는데, 우리가 높은 소리를 들을 때는 이를 담당하는 청각 신경이 활성화되고, 낮은 소리를 들을 때는 다른 쪽의 청각 신경이 활 성화된다.
- 소리에 대한 뇌파 응답
소리에 대한 뇌의 응답을 보기 위해서는 자기공명영상 MRI를 사 용해 뇌 영상을 찍거나, EEG와 같은 뇌파 장치를 통해 뇌에서 나오는 전기적 신호를 측정한다. 음악을 한다는 건 우리가 인식하는 차원에서는 소리를 통한 정보 전달이지만 사실 뇌에서는 전부 전기적 신호로 바뀌어 처리되기 때문에, 사실 뇌에서는 소리 그 자체가 아닌 전기적인 신호를 통한 커뮤니케이션이 이루어진다. 따라서 음악을 들을 때 뇌파를 측정해 그 전기 신호를 분석해 보면, 뇌에서 어떤 일이 일어났는지를 알 수 있는 것이다. 음악을 들을 때 뇌간 Brainstem 의 응답을 측정해 보면 원래 소리와 뇌파의 특징이 매우 유사하다. 예를 들어 첼로 소리를 들을 때 뇌파를 측정해 보면, 원래 첼로 소리 의 음높이와 음색 특징을 잘 반영하고 있다. 뇌파를 측정해 보면 실 제 그 사람이 지금 어떤 소리를 듣고 있는지 알아낼 수 있다는 것 이다. 마찬가지로, '다'라는 말소리를 들었을 때 뇌파는 '다'의 음향적 특징을 잘 반영한다. 따라서 뇌파를 분석해 보면 우리가 '다'라는 소리를 얼마나 정확하고 효율적으로 처리하고 있는지를 직접적으로 관찰할 수 있다. 실제로 어릴 때부터 10년 이상 음악을 해온 음악가와 음악을 전공하지 않은 일반인들이 같은 음악을 들었을 때 뇌파를 비교해 보면, 음악 훈련을 오랫동안 해온 사람은 신경이 기능적으로 발달되어 뇌파도 다르고 소리를 좀 더 효율적으로 처리하고 있다는 것을 알 수 있다.
- 청각 피질 외에도 음악을 할 때 중요한 뇌의 영역이 바로 운동 피질이다. 음악을 연주하거나 음악에 맞춰 춤을 출 때도 몸을 사용 하지만, 음악의 중요한 요소인 리듬을 들을 때도 몸과 관련된 운동피질을 사용한다. 운동 피질은 우리 몸의 다양한 부분과 연결되어 있으며, 실제로 내가 손을 움직여야겠다고 생각하면 운동 피질의 손 에 해당되는 부분에 신호를 보내 손을 움직인다. 만약 내가 손을 움 직이고 싶을 때 운동 피질에서 어떤 신호를 발생시키는지를 측정해 분석하면, 반대로 그 신호가 측정되었을 때 지금 이 사람이 어떤 움직임을 원하는지를 예측할 수 있다. 이러한 연구는 향후 메타버스
공간에 있는 가상의 악기를 인간이 연주할 때 손을 직접 움직일 필요 없이 운동 피질의 뇌파 신호만을 통해 가상 악기를 조절할 수 있는 가능성을 보여준다.
- ‘우리는 음악을 근육으로 듣는다'고 말한 니체의 말처럼, 음악이란 감상의 대상에 그치는 것이 아니라 직접 행위를 하는 것이고, 따라서 몸의 참여가 매우 중요하다. 음악에 대한 인지과학 및 신경 과학 연구들을 살펴보면, 앞으로 메타버스에서의 음악은 작곡가와 연주자, 감상자의 영역을 나누는 기존의 시스템을 재현하는 데 그치지 않고 귀뿐만 아니라 신체 움직임까지 아울러서 참여가 가능한 형태로 진화해야 할 것이다. 이를 통해 우리는 본연의 'Musicking' 에 한 발짝 더 가까워질 수 있을 것으로 예상한다.






'IT' 카테고리의 다른 글

1일 1로그 IT지식  (0) 2022.06.01
블록체인 경제  (0) 2022.05.11
빅데이터 사용 설명서  (0) 2022.05.07
웹 3.0 메타버스  (0) 2022.05.07
AI로 일하는 기술  (0) 2022.04.28
Posted by dalai
,