'IT'에 해당되는 글 165건

  1. 2023.03.23 AI 2041
  2. 2023.03.17 웹 3.0 사용설명서 2
  3. 2023.02.24 최소한의 IT언어 2
  4. 2022.12.29 비전공자도 이해할 수 있는 AI지식 3
  5. 2022.11.10 IT 잡학사전 2
  6. 2022.08.20 인터넷 때문에
  7. 2022.07.07 처음 읽는 양자컴퓨터 이야기 1
  8. 2022.07.03 웹 3.0 레볼루션
  9. 2022.06.01 1일 1로그 IT지식
  10. 2022.05.11 블록체인 경제

AI 2041

IT 2023. 3. 23. 20:44

-  미국의 과학자이자 미래학자였던 로이 아마라Roy Amara가 주창한 '아마라 법칙'에 따르면 "우리는 기술의 단기 효과를 과대평가하고 장기 효 과는 과소평가하는 경향이 있다." 마찬가지로 대부분 사람이 인공지능 을 협소한 의미에서 생각한다. 이를테면 영화 <터미네이터>에 나오는 살 인 로봇, 재치라곤 전혀 없거나 인간의 존재를 위협하는 불완전한 알고 리즘, 인간이 세계를 인식하고 감정을 주고받으며 소통하고 제도를 관 리하고 삶의 다른 가능성을 탐색하는 방식과 무관한 삭막한 기술의 발 명을 떠올린다.
기원전 3세기 중국 춘추전국시대에 오늘날 휴머노이드에 해당하는 인간의 모습과 흡사한 거대 인형을 만들었던 공예기술자 얀스Yan Shi의 이야기나 그리스 신화에서 불의 신 헤파이스토스가 살아 있는 청동 거 인 탈로스Talos를 만들어 크레타섬의 왕에게 선물했다는 이야기에서 볼 수 있듯이, 인간은 컴퓨터과학이 등장하기 이전부터 혹은 인공지능이라 는 용어가 탄생하기 훨씬 전부터 집요하게 '인공지능'을 탐구해왔다. 오 늘날에도 인공지능은 인류 문명 전반에 걸쳐 혁명적인 변화를 일으키고 있으며, 앞으로도 그럴 것이다.

- 다른 누군가의 삶을 완벽하게 모방하기보다 당신 자신의 운명을 불완전하게 사는 게 낫다. (《바가바드 기타> 3장 35절)
- 인간의 뇌는 1,000억 개가 넘는 신경세포가 100조 개 이상의 시냅스를 통해 병렬적으로 연결된 구조로 되어 있다. 딥러닝은 이러한 인간 뇌의 복잡한 신경망을 모방한 인공신경망을 수학적으로 모델링한 것이라 볼 수 있다. 딥러닝은 입력층과 출력층을 포함한 수천 개의 신경망, 즉 소프 트웨어층으로 구성된다. 기존 인공신경망이 가졌던 한계를 뛰어넘은 딥 러닝은 풍부한 학습 데이터와 결합하면서 음성인식과 객체인식 등의 분 야에서 놀라운 발전을 가져왔다.
사람들은 흔히 인공지능이 "고양이는 귀와 수염이 뾰족하다"와 같은 일련의 패턴화된 규칙들을 통해 '학습한다고 생각한다. 하지만 딥러닝 은 인간이 만든 그러한 규칙들의 개입이 없을 때 더 잘 작동한다. 딥러닝은 특정 규칙이 아닌 다양한 현상들의 데이터가 입력되면 스스로 데이 터들의 패턴과 상관관계를 파악하고 계산하는데, 이 작업은 이미 출력 층에 설정된 '올바른 답과 연관되어 이루어진다. 딥러닝 신경망의 입력 층과 출력층 사이에 존재하는 무수한 소프트웨어층은 입력된 특정 데이 터들로부터 올바른 답을 얻을 가능성을 극대화하기 위해 스스로 훈련하 고 학습한다.
예컨대 연구자가 고양이를 찍은 사진과 고양이가 아닌 다른 동물을 찍은 사진을 구별하는 법을 딥러닝 신경망에 가르치려 한다고 가정해보 자. 우선 연구자는 출력층에 미리 '고양이' 또는 '고양이 아님'을 결괏값 으로 설정한다. 그리고 수백만 장의 샘플 사진을 입력층에 보낸다. 딥러 닝의 신경망은 수백만 개의 이미지에 나타난 특징들 가운데 어느 것이 고양이와 다른 동물을 식별하는 데 가장 유용한지 스스로 파악하도록 훈련된다. 이 훈련은 고양이 이미지를 입력하면 '고양이'가 출력되고 고 양이가 아닌 이미지를 입력하면 '고양이 아님'이 출력될 가능성을 극대 화하기 위해 딥러닝 신경망에 있는 수백만(때론 수십억 개의 매개변수를 조정하는 수학적 과정이다. 
- 딥러닝 신경망의 훈련은 '목적함수'의 값을 극대화하기 위한 수학 적 연산 과정이기도 하다. 고양이 인식 사례의 경우, 목적함수는 '고양 이' 또는 '고양이 아님을 올바르게 인식할 확률이다. 일단 '훈련된' 딥러 닝 신경망은 새로운 이미지를 입력해도 여전히 올바른 답을 얻을 수 있 는 거대한 수학 방정식이나 마찬가지다. 이 방정식에 따라 이미지에 고 양이가 있는지 없는지 판단하는 '추론'을 수행한다. 딥러닝의 등장은 이 전에는 불가능했던 많은 영역에서 인공지능을 적용할 수 있도록 해주었다. 
- 딥러닝이 아무리 강력하다 할지라도 만병통치약은 아니다. 인간은 인공지능처럼 동시에 수많은 데이터 포인트를 분석할 수는 없지만, 대신 의사결정을 위해 경험, 추상적 개념, 상식을 이용하는 고유한 능력을 지 니고 있다. 반면에 딥러닝이 잘 작동하려면 방대한 데이터, 한정된 범위, 최적화를 위한 구체적인 목적함수가 필요하다. 이 가운데 하나라도 부 족하면 제대로 작동하지 않을 수 있다. 데이터가 너무 적다면? 알고리즘은 데이터 간의 의미 있는 상관관계를 발견하기에 충분한 예시를 갖지 못할 것이다. 복수의 분야를 다뤄야 한다면? 알고리즘은 서로 다른 분야 간 상관관계를 설명할 수 없으며, 모든 순열을 포함할 만한 충분한 데이 터를 얻지 못할 것이다. 목적함수가 너무 광범위하다면? 알고리즘은 최 적화를 달성하는 데 필요한 명확한 지침을 얻지 못할 것이다.
- 시각은 인간의 여섯 가지 감각 가운데 가장 중요하다. 컴퓨터 비 전computer vision은 컴퓨터의 '보는' 능력에 관한 문제를 중점적으로 다루 는 인공지능의 하위 분야다. 여기서 '본다'라는 것은 '본 것을 이해하는 것'까지 포함한다. 컴퓨터 비전은 다음과 같은 기술을 포함하고 있으며, 이런 기술들은 점점 더 복잡해지고 있다.
* 이미지 포착 및 처리: 실제 세계의 3D 장면을 카메라와 다른 센서들을 이용해 동영상으로 구현한다. 각 동영상은 연속적인 이미지들로 구성되며, 각 이 미지는 2D로 배열되는 픽셀의 집합체로 만들어진다.
* 대상 감지 및 이미지 세분화: 이미지를 뚜렷한 부분들로 나누고 대상이 어디에 있는지 찾는다.
* 대상 인식: 대상을 인식하고 세부 정보를 이해한다. 가령 대상이 강아지임을 인식하고 그 강아지가 독일산 셰퍼드라는 것까지 이해한다.
* 대상 추적: 연속적인 이미지나 동영상에서 움직이는 대상을 추적한다.
* 몸짓과 움직임 인식: 엑스박스Xbox 댄싱 게임에서 캐릭터의 춤추는 동작과 같은 움직임을 인식한다.
* 장면 이해: 어떤 장면을 전체적으로 이해한다. 예를 들어, '뼈다귀를 바라보는 배고픈 강아지'처럼 장면 속의 여러 대상이 갖는 미묘한 연관성까지도 함께 파악한다.
- 우리는 이미 매일 컴퓨터 비전 기술을 사용하고 있다. 컴퓨터 비전은 교통부터 보안에 이르는 다양한 분야에서 실시간으로 사용될 수 있다. 이 미 사용되고 있는 예는 다음과 같다.
* 졸고 있는 운전자를 감지하도록 자동차에 설치된 운전자 보조 기능
* 아마존고Amazon Go와 같은 무인 매장(쇼핑 카트에 물건을 담을 때 카메라가 인식한다.)
* 공항 보안(사람들의 수를 세고, 테러리스트를 인식한다.)
* 몸짓 인식(엑스박스 댄싱 게임에서 각 캐릭터의 춤추는 동작을 인식하고 점수를 매긴다.)
* 얼굴 인식(스마트폰 잠금 해제를 위해 얼굴을 인식한다.)
* 스마트카메라(아이폰의 인물 사진 모드는 전경에 있는 사람들을 인식해 추출한 후 배경을 '아름답고 흐릿하게 처리해 DSLR과 같은 효과를 낸다.)
* 군사적 적용(적군과 민간인을 구별한다.)
* 드론과 자동차의 자동항법 시스템
- 컴퓨터 비전은 이미지와 동영상에도 적용할 수 있는데, 몇 가지 예를 살펴보자.
* 사진과 동영상의 스마트 편집(포토샵과 같은 도구들은 얼굴 윤곽을 따라 테두 리를 그릴 수 있고, 충혈된 눈을 없앨 수도 있다. 셀카 사진을 아름답게 업그레이 드하는 데 컴퓨터 비전이 광범위하게 사용된다.)
* 의료 영상 분석(폐 CT에서 악성 종양이 있는지 판단하기 위해 사용한다.) 콘텐츠 감시(소셜미디어에서 포르노와 폭력적인 콘텐츠를 감지한다.)
* 특정 동영상의 콘텐츠를 분석해 관련 광고가 보이도록 하는 시스템
* 스마트 이미지 검색(키워드나 다른 이미지를 검색창에 입력해 이미지를 찾는다.)
* 딥페이크 동영상 제작(동영상에서 하나의 얼굴을 다른 얼굴로 대체한다.)
- 장기적으로 가장 큰 문제는 GAN이 위조신경망을 '업그레이드'하는 메커니즘을 내장하고 있다는 점이다. 예를 들어, 당신이 GAN의 위조신 경망을 학습시켰고 누군가 당신의 딥페이크를 탐지하기 위한 새로운 탐 지 알고리즘을 내놓았다고 생각해보자. 당신은 그 탐지 알고리즘을 속 이려는 목표를 갖고 GAN의 위조신경망을 재훈련시킬 수 있다. 이는 결 국 어느 쪽이 더 우수한 컴퓨팅 성능을 지닌 장비를 갖추고 있느냐 하는 군비 경쟁이 될 수밖에 없다. 컴퓨팅 성능이 뛰어난 장비일수록 GAN을 더욱 잘 훈련시킬 수 있기 때문이다.
- 그렇다면 딥페이크를 100% 찾아내는 것은 불가능할까? 지금 당장은 어렵겠지만 장기적인 접근법이 한 가지 있다. 원본이 변경되지 않았 음을 보장해주는 블록체인 기술을 사용해 카메라나 스마트폰으로 찍히 는 모든 사진과 동영상의 진위를 촬영 시점에 확인하는 것이다. 그런 다 음 웹사이트에 올리는 모든 사진과 영상은 블록체인 기술로 인증되었 음을 보여주면 된다. 이렇게 하면 위조된 이미지나 동영상이 퍼져나가 는 것을 막을 수 있다. 하지만 그러려면 (현재 모든 오디오 수신기가 돌비 디지털을 사용하는 것처럼) 모든 장치가 블록체인 기술을 사용해야 하고, 블록체인이 이것을 대규모로 처리할 만큼 빨라져야 한다. 이는 아마도 2041년까지는 구현되기 어려울 듯하다.
- 기술이 발전하면서 어떤 컴퓨팅 플랫폼에서든 취약점과 보안상의 위험이 나타난다. 개인용 컴퓨터PC의 바이러스, 신용카드의 신원 도용, 이메일의 스팸 등이 그러한 예이다. 인공지능이 주류가 되면 인공지능 역시 취약점에 대한 공격을 받게 될 것이다. 딥페이크는 그러한 여러 취약점 가운데 하나일 뿐이다.
인공지능이 적대적인 공격을 받을 수 있는 또 하나의 취약점은 데이 터를 분류하는 기준값인 결정경계decision boundaries이다. 누군가 결정경 계를 추정해 입력 데이터를 위장하면 인공지능이 실수하도록 만들 수 있다. 가령 한 연구자는 인공지능이 그를 영화배우 밀라 요보비치 Milla Jovovich로 잘못 인식하게 하는 선글라스를 설계했다. 또 다른 연구자는 테슬라 모델S의 자율주행 기술인 오토파일럿Autopilot을 속이는 스티커" 를 도로에 붙여 차선을 바꾸고 다가오는 차들을 향해 돌진하도록 만들 었다. <가면 뒤의 신> 도입부에 아마카는 전철역에서 안면인식 시스템을 속이기 위해 마스크를 사용한다. 이런 종류의 위장술이 전쟁에서 이용 될 경우 극도로 위험하다. 적군에서 탱크를 구급차로 인식하도록 위장 했다고 상상해보라.
- 포이즈닝poisoning이라고 부르는 또 다른 공격은 의도적으로 악의적인 훈련 데이터 training data를 주입함으로써 인공지능의 학습 과정에 직접 관 여해 모델 자체를 공격한다. 이로 인해 인공지능 시스템 전체가 망가질 수 있으며 혹은 범법자에 의해 제어될 수도 있다. 군사용 드론이 테러리 스트에게 해킹당해 자국을 공격한다고 상상해보라. 이러한 공격은 기존 의 해킹보다 더 감지하기 어려운데, 인공지능 모델이 정해진 컴퓨터 코 드가 아니라 수천 개의 신경망에서 실행되는 극도로 복잡한 방정식이라 서 '디버그debug', 즉 오류를 수정하기가 쉽지 않기 때문이다.
이러한 난제들에도 불구하고 우리는 훈련과 실행 환경의 보안을 강화 하고, 포이즈닝 신호를 자동으로 찾는 도구를 개발하고, 조작된 데이터 나 회피 공격에 대항해 싸우는 기술을 개발하는 것과 같은 조치를 취할 수 있다. 기술 혁신으로 스팸과 바이러스를 극복한 것처럼 인공지능 보 안 기술도 충분히 발전하면 오직 간헐적인 공격만 받게 될 것이다(지금 도 가끔 스팸이나 바이러스의 공격을 받는 것처럼 말이다). 기술에 의한 취 약점은 항상 기술적 해법으로 해결되거나 개선되었다.

- 사랑하는 친구여, 우리 둘은 태양과 달이며 바다와 육지다. 우리의 목표는 나는 네가 되고 너는 내가 되는 게 아니라 서로를 인식하고 상대방을 있는 그대로 지켜보고 존중하는 것이다. 그렇게 해서 서로가 대립하면서도 보완하는 관계를 만드는 것이다. _헤르만 헤세, 《지와 사랑》 중
- 몇 년 전만 해도 사실상 모든 딥러닝 기반 NLP 신경망은 '지도학습'을 이용해 언어를 배웠다. '지도'라는 단어는 인공지능이 학습할 때 각 훈련 입력값에 대해 올바른 출력값이 주어져야 한다는 뜻이다(이 '지도'를 인 간이 인공지능에 규칙을 '프로그래밍'한다는 뜻으로 생각해선 안 된다. 1장 에서 봤듯이 그런 방식은 통하지 않는다). 인공지능은 한 쌍의 분류된 데이 터인 입력값과 올바른 출력값을 받는다. 그런 후 특정 입력값에 해당하 는 올바른 출력값을 제시하는 법을 배운다. 인공지능이 고양이 사진을 인식한 예를 기억하는가? 지도학습 방식의 딥러닝은 인공지능이 '고양 이'라는 단어를 제시하는 법을 배우는 훈련 과정이다.
인공지능이 자연어를 배우도록 지도학습을 적용하려면 우선 특정 목적에 맞게 분류된 데이터 세트가 있어야 한다. 가령 동일한 콘텐츠에 대 한 다국어 번역 데이터가 존재한다면, 이는 인공지능이 스스로 언어 번 역을 배우도록 하는 지도학습을 위한 데이터 세트가 될 수 있다. 이러한 데이터 세트가 있으면 인공지능은 영어로 된 수백만 개의 문장 하나하 나를 프랑스어로 전문적으로 번역된 문장 하나하나와 짝짓는 방식으로 스스로 훈련한다. 지도학습 방식의 NLP 응용프로그램은 사람의 말소리 를 글로 변환하는 음성인식, 손글씨나 이미지를 글로 번역하는 광학문 자인식OCR 혹은 글을 말소리로 변환하는 음성합성까지 확장될 수 있다. 이러한 지도학습이 가능한 종류의 자연어 인식 작업의 경우 이미 인공 지능이 대부분 인간보다 더 뛰어나다.
- 좀 더 복잡한 수준의 NLP 응용프로그램은 '인식recognition'에서 '이 해understanding'의 수준으로 넘어간다. 이 기술적 비약을 위해서는 말이 나 글이 가리키는 행동의 예시가 주어져야 한다. 가령 당신이 알렉사에 게 "바흐를 틀어줘"라고 말하면, 알렉사는 당신이 요한 제바스티안 바흐 가 작곡한 클래식 작품을 재생하길 원하는 것이라고 이해해야 한다. 혹 은 전자상거래 챗봇에게 "난 환불을 원해"라고 말하면 챗봇은 당신에게 해당 상품을 반품하는 방법을 안내한 뒤에 구매대금을 되돌려줄 수 있 어야 한다. 이러한 이해의 수준에서 지도학습 방식의 NLP 응용프로그램 을 개발하는 것은 매우 많은 시간이 걸리는 일이다. 인간은 한 가지 의도 나 명제를 정말 수많은 방식으로 표현하기 때문이다. 가령 당신은 "난 환 불을 원해"라고 말하는 대신 "나는 돈을 돌려받길 원해"라든가 "토스터 에 결함이 있어"라고 말할 수도 있다.
- 명료하고 구체적인 대화에서 상상할 수 있는 모든 다양한 표현이 NLP 훈련 데이터에 포함되어야 한다. 또 데이터는 인공지능이 스스로 학습 하는 데 필요한 단서를 제공하기 위해 인간의 목적에 맞게 '분류labeling' 되어야 한다. NLP 신경망의 지도학습을 위한 데이터 레이블링은 최근 20년간 거대 산업을 형성했다. 일례로 자동화된 항공사 고객 서비스 시 스템에서 언어 이해 훈련용으로 분류된 데이터는 다음과 같다.
[항공_예약_의향] 나는 [방법: 비행기를 타다]를 원합니다. [출발지: 보스턴]으로 부터 [출발 시간: 오전 838]에 출발하여 [목적지: 덴버]에 [도착 시간: 아침 1110] 에 도착하길 바랍니다.
이것은 아주 기초적인 예시다. 이 정도 상세한 수준에서 수십만 건의 인간 언어를 기록하고 분류하는 데 드는 비용을 상상해보라. 비행기 예 약이라는 협소한 분야에서조차 모든 가능한 표현을 다루려면 아직 가야 할 길이 한참 남은 상태다.
- 지난 수년 동안 '이해' 수준의 NLP 응용프로그램 개발은 협소한 특정 분야에 수많은 시간과 비용을 기꺼이 투자할 의향이 있을 때만 가능했 다. 이러한 한계로 인해 인공지능이 인간 수준으로 언어를 이해하고 처 리하는 단계로 나아간다는 원대한 비전을 달성하기가 어려웠다. 우리는 여전히 NLP 신경망의 지도학습을 위해 모든 입력값에 대한 올바른 출 력값을 제공하는 방법을 알지 못한다. 설령 그 방법을 안다 해도 세상에 존재하는 모든 언어 데이터 세트를 목적에 맞게 분류하는 것은 엄청나 게 많은 시간과 비용이 드는 일이 될 것이다
- 그런데 최근에 '자기지도학습'이라는 단순하면서도 우아한 새로운 접근법이 출현했다. 자기지도학습 방식에서는 방대한 데이터 분류 작업이 필요하지 않기 때문에 앞서 언급된 문제를 극복할 수 있다. 이 접근법은 '시퀀스-투-시퀀스'라고 불린다. 시퀀스-투-시퀀스는 순환신경망을 사용해 문장을 학습하는 기법으로 인공지능은 시퀀스로 이루어진 대화 의 말뭉치***를 학습함으로써 선행 발화가 후행 발화로 변환되는 확률을 계산해 대화를 생성해낸다. 가령 '87년 전에'라는 발화가 입력되면 RNN 이 다음에 올 내용을 예측해 '우리의 선조들이 이 땅에 나라를 세웠다'라는 발화를 출력할 수 있다. 사실 우리는 이 기술의 간단한 버전을 이미 매일 사용하고 있다. 지메일의 '스마트 완성' 기능이나 구글 검색의 '자 동 완성 기능이 바로 그 예다.
2017년에는 구글 연구진이 '트랜스포머transformer'라는 새로운 자기지 도학습 방식의 딥러닝 모델을 소개했다. 이 모델에서 인공지능은 문장 속 단어들의 관계를 추적해 맥락과 의미를 학습한다. 이 모델은 인공지 능이 대량의 텍스트를 바탕으로 훈련될 경우 과거에 있었던 '중요하고 의미상 관련 있는' 무엇이든 선별적으로 기억하는 '어텐션 메커니즘'**이 가능하다는 것을 보여준다. 이 메커니즘 덕분에 인공지능은 입력된 문장의 맥락을 훨씬 더 정교하게 파악해 출력값을 내보낸다.
- CNN이나 RNN에 비해 한층 강화된 딥러닝 모델인 트랜스포머는 처 음부터 스스로 언어를 가르칠 수 있다. 용언 활용이나 문법과 같이 인간 이 정한 규칙 대신 스스로 만든 규칙과 개념에 의존한다. 이러한 규칙과 개념은 방대한 데이터에서 자동으로 수집한 것으로 거대한 인공신경망 에 내장된다. 트랜스포머에 제공하는 데이터 역시 인간에 의한 분류 작 업을 하지 않아도 된다. 충분한 자연어 데이터와 처리 능력을 갖춘 트랜 스포머는 자기지도학습 방식의 딥러닝을 통해서 입력값과 출력값 사이 의 데이터에서 훨씬 많은 것을 탐지할 수 있다.
구글의 트랜스포머 뒤를 이은 것은 GPT-3 모델이다. 지금까지 가 장 뛰어난 자연어처리 기반 인공지능이라 할 수 있는 이 확장 버전은 2020년에 일론 머스크 등이 설립한 연구소 오픈에이아이에서 출시했다. 
- 토스터와 연필 중에 무엇이 더 무거울까?'라고 물으면, GPT-3는 '토스터'라고 올바르게 답한다. 첫 두 문장은 GPT- 3가 '더 무겁다'라는 표현의 구체적인 의미를 파악하는 데 도움을 주었 고, 마지막 문장은 답을 묻고 있다는 신호다. 마지막 문장만 입력해도 답 을 할 순 있지만, 아마도 오답을 제시할 가능성이 클 것이다.
GPT-3는 특정 산업, 분야, 영역 등에 특화된 언어인 DSLDomain Specif- ic Language을 사용하는 NLP 등 협소한 분야에 특화되었던 이전 모델과 달리 모든 분야의 다양한 과업들을 수행할 수 있다. 시를 짓고, 철학적 사색을 하고, 기사를 작성하고, 기술 매뉴얼을 제작하고 또는 특정 작가 의 스타일을 흉내 내서 글을 쓸 수도 있다.
- 우리 인간은 우리가 무엇을 알고 무엇을 모르는지 잘 안다. 하지만 GPT-3는 그렇지 않다. 이 결함 때문에 일종의 '가짜 뉴스'를 만들어낼 수도 있다.
GPT-3는 인과관계 추론, 추상적 사고, 설명식 문장, 상식, 의도적) 창 의성 부분에서도 취약하다. 또 인간에게서 나온 데이터를 너무 많이 학습하기 때문에 안타깝게도 인간의 편향, 편견과 악의까지도 흡수하게 되 는 치명적 약점이 있다. 사용자를 잘못 만날 경우에 GPT-3는 특정 그룹 의 사람들을 타깃으로 그들의 여론에 영향을 주기 위해 맞춤형 메시지 를 작성해 보내는 데 악용될 수도 있다. 이런 정치 단체가 있다면 2016년 미국 대선을 조작했다고 알려진 영국의 정치컨설팅업체인 케임브리지 애널리티카Cambridge Analytica보다 훨씬 더 위험할 것이다. 이러한 단점들 은 다가올 수십 년 동안 면밀하게 조사되고 해결되길 기대하고 있다.
- GPT-3의 잠재력 가운데 가장 흥미진진한 측면은 그것이 NLP 응용프 로그램을 빠르게 개발할 수 있는 새로운 플랫폼 역할을 할 수 있다는 것 이다. 실제로 GPT-3가 출시된 후 몇 달 만에 사람들은 많은 응용프로 그램을 개발했다. 가령 역사 인물과 대화할 수 있는 챗봇, 작성하기 시작 한 기타 악보를 마무리해주는 작곡 도구, 반쪽 이미지를 가지고 전체 이 미지를 완성할 수 있는 응용프로그램이 있다. 또 자연어 묘사(예: 발레 복을 입은 아기 무가 강아지를 산책시킨다)를 기초로 인물을 그릴 수 있는 달리 DALL.E라고 불리는 응용프로그램도 있다. 이러한 응용프로그램들은 현재로선 단순히 호기심을 유발하는 정도지만, 앞서 말한 결함이 해결 되면 GPT-3와 같은 플랫폼이 수만 명의 개발자가 더 많은 사용자를 끌 어들이는 멋진 응용프로그램을 만드는 선순환을 만들어낼 수 있다. 마 치 윈도와 안드로이드가 그런 것처럼 말이다.
- 대화형 인공지능 외에도 NLP 플랫폼은 어떤 질문에는 답할 수 있는 차세대 검색엔진이 될 수 있다. 질문을 던지면 NLP 검색엔진은 그 질문 과 관련된 모든 읽을거리를 읽고 소화해 해당 전문 분야 혹은 산업 특성 에 부합하는 맞춤형 답을 제공할 것이다. 가령 금융 인공지능 응용프로 그램은 '코로나19가 가을에 다시 확산된다면 투자 포트폴리오를 어떻게 조정해야 하나?'와 같은 질문에 답할 수 있다. 또 이 플랫폼은 스포츠 경 기나 주식시장 동향에 관한 기초적인 보고서를 작성할 수 있고, 아주 긴 보고서를 요약해줄 수도 있을 것이다. 그렇기에 기자, 투자분석가, 작가 등 언어를 가지고 작업하는 누구에게라도 훌륭한 동반자이자 도구가 될 수 있다.

- 산앵두나무꽃이 바람에 흩날리니 어찌 그대가 그립지 않으리오? 다만 그대 머무는 곳 멀어라. 
시를 읽고 공자께서 말씀하셨다.
"그리움이 부족하구나. 진정으로 그립다면 멀리 떨어진 것이 어찌 문제가 되겠는가?" 공자, <논어> 제9편 30장
- 딥마인드는 단백질 접힘 구조를 알아내기 위해(2단계) 2020년에 알파폴드AlphaFold2를 개발했다. 현재까지 인공지능이 과학을 위해 이룬 가장 위대한 업적이다. 단백질은 생명체의 구성 요소지만, 생 명 유지를 수행하기 위해 아미노산 배열이 어떻게 3차원 구조로 접히는 지는 수수께끼로 남아 있었다. 이는 심오한 과학적·의학적 함의를 가진 문제로 딥러닝에 매우 적합해 보였다. 딥마인드의 알파폴드는 기존에 발견된 단백질 접힘 구조의 거대한 데이터베이스를 바탕으로 훈련된 인 공지능이다. 알파폴드는 단백질 접힘 구조를 극저온 전자현미경과 같은 전통적인 방법들과 유사한 정확도로 파악해낼 수 있음을 증명했다. 전 통적인 방법들은 비용과 시간 때문에 모든 단백질의 0.1%도 해결하지 못했다. 알파폴드는 빠른 속도로 모든 단백질의 3차원 구조를 파악하는 방법을 제공했다. 알파폴드는 생물학계에서 '50년 묵은 대과제'를 해결 한 것으로 크게 환영받았다.
- 일단 단백질의 3차원 구조를 파악하고 나면 그다음 효과적인 치료법 을 발견하는 빠른 방법은 신약재창출drug repurposing, 즉 다른 질병에 효 과가 있는 것으로 증명된 모든 기존의 약을 대상으로 어떤 것이 해당 단 백질의 3차원 구조에 들어맞는지 확인하는 것이다. 신약재창출은 심각 한 팬데믹 확산을 초기에 막기 위한 응급처치가 될 수 있다. 기존의 약품 들은 이미 부작용 시험을 거쳤기 때문에 신약과 달리 광범위한 임상시험 없이도 사용될 수 있다.
- 인공지능 로봇은 앞 장들에서 설명한 인터넷과 금융, 인식 분야와 비교 해 완벽하게 구현하기가 훨씬 더 어렵다. 로봇의 문제는 딥러닝을 직접 적용해서 해결할 수 없기 때문이다. 게다가 로봇공학은 설계, 움직임, 조 작을 포함하므로 기계공학, 신체감각을 인식하는 인공지능, 소근육운동 조작 기술의 절묘한 상호작용이 필요하다. 이는 모두 해결할 수 있는 문 제들이긴 하지만, 미세 조정에 더 많은 시간이 걸리는 데다 학제적인 기 술의 통합이 필요하다.
로봇공학에서 인간의 시각, 움직임, 조작 능력은 정밀하게 복제돼야 한다. 로봇 기계는 자동화돼야 할 뿐만 아니라 자율성도 가져야 하는데, 이는 의사결정을 로봇에게 넘긴다는 뜻이다. 이렇게 되면 로봇은 계획 하고 피드백을 수집하고 환경 변화에 적응하거나 그에 따라 즉흥적으로 행동을 바꿀 수 있을 것이다. 로봇에 시각, 촉각, 이동 능력을 부여함으 로써 인공지능이 처리하는 과업의 수를 크게 늘릴 수 있다.
일반적인 인간 수준의 시각, 촉각, 조작, 움직임 및 조정은 향후 20년 이내에 인공지능 로봇으로 완벽하게 구현하기에는 대단히 까다로운 영 역이다. 각각의 능력은 제한된 환경에서 독립적으로 개발될 것이며, 시 간이 지남에 따라 차츰 제약 조건이 완화될 것이다. 현재 로봇의 컴퓨터 비전 능력은 노인들을 위한 안전장치(위험 상황을 경보로 알려주는 요양 보조 로봇), 조립공정에서 육안을 통한 검사, 에너지와 대중교통 산업에 서의 비정상행위 탐지 등에 적용될 수 있다. 한편 자율주행 로봇AMRs이 나 자율주행 무인지게차는 실내 공간을 자유롭게 이동할 수 있어서 스 스로 장애물을 '보고' 경로를 계획하며 화물을 옮길 수 있다. 현재 로봇 팔은 용접, 조립공정, 전자상거래 물류센터에서 이뤄지는 물품 피킹과 같은 분야에 적용되어 딱딱한 물체를 움켜잡고, 조작하고, 이동시킬 수 있다.

- 가상현실은 눈을 뜬 채 꿈을 꾸는 것과 같다. 브레넌 슈피겔 Brennan Spiegel
- 당신을 떠올리자..
이 늪의 반딧불이가
내 몸의 갈망에서 나온
영혼처럼 보이네. (이즈미 시키부 Izumi Shikibu)
- XR 글라스 외에도 XR 콘택트렌즈가 시장 대중화에 성공하는 최초의 확장현실 기술이 되지 않을까 싶다. 몇몇 스타트업은 이미 XR 콘택트렌 즈 개발에 착수했다. 그들이 내놓은 프로토타입 콘택트렌즈는 내장된 디스플레이와 센서를 통해 텍스트와 이미지를 보여준다. 이러한 콘택트 렌즈에는 여전히 외부 CPU가 필요한데 스마트폰이 그 역할을 할 수 있 다. 나는 2041년까지는 XR 콘택트렌즈의 시장 대중화가 이뤄지고 더 나 아가 사생활 보호와 각종 규제 및 가격 문제가 극복될 것으로 예상한다. 시각 정보가 글라스와 콘택트렌즈를 통해 입력된다면, 청각 정보는 이어셋을 통해 입력될 수 있다. 청각 정보를 처리하는 확장현실 기술 역시 해마다 발전하고 있다. 2030년이 되면 이어셋은 이머시브 사운드immersive sound 제작 기술을 비롯한 다른 음향 기술을 통해 거의 보이지 않을 만큼 소형화되고 덕분에 온종일 사용해도 전혀 불편하지 않을 것이다.
- 결론은 이렇다. 2041년까지 우리가 하는 일과 놀이의 많은 부분에 가상기술이 사용될 것이다. 이 불가피성을 받아들이고 적응해야 한다. 아 마도 확장현실 분야에서 거대한 기술적 비약이 일어날 것이며, 그것은 아마도 엔터테인먼트 산업에서부터 시작될 것이다. 현재 인공지능에 대 해 그러하듯이 모든 산업은 확장현실을 어떻게 사용할지 고민하고 결국 에는 수용하게 될 것이다. 인공지능이 데이터를 지능으로 전환하는 것 이라면, 확장현실은 인간의 눈, 귀, 팔다리 그리고 궁극적으로 뇌에서 더 많은 양질의 데이터를 모으게 될 것이다. 인공지능과 확장현실은 자신을 이해하고 더 발전하려는 인간의 꿈을 완성하고 그 과정에서 인간 경험의 가능성을 확장할 것이다.

- 그래서 두 가지 톤이 진행된다. 그건 마치 두 대의 기타를 동시에 치는 것과 같다. 자연스럽게 흐르도록 놔두면서도 제어해야 한다. 지미 헨드릭스, 레온 헨드릭스, 지미 헨드릭스: 형제의 이야기> 중

- 우리를 파괴하기 위해 굳이 인공지능이 필요하지 않다. 인간이 가진 오만함만으로도 충분하다. (영화 <엑스 마키나>)
- 모든 건 서로 얽혀 있으니 거미줄은 신성하다. (마르쿠스 아우렐리우스)
- 양자컴퓨터는 고전적인 컴퓨터보다 특정 종류의 전산 처리를 훨씬 더 효율적으로 수행하기 위해 양자역학을 이용하는 새로운 컴퓨터 아키텍처다. 고전적인 컴퓨터는 '비트bit'를 기반으로 한다. 비트는 스위치와 같 아서 (꺼지면) 0혹은 켜지면) 1이 된다. 모든 응용프로그램과 웹사이트 혹은 사진은 수백만 개의 비트로 구성된다. 이진법인 비트 덕분에 고전 적인 컴퓨터를 더 쉽게 만들고 제어하게 되었지만, 0과 1의 조합만으로 계산해야 하기에 정말 어려운 컴퓨터과학 문제를 해결할 잠재력은 제한 되었다.
양자컴퓨팅은 비트 대신 양자비트, 즉 전자나 광자와 같은 아원자 입 자인 큐비트를 사용한다. 큐비트는 원자 입자와 아원자 입자와 마찬가 지로 양자역학의 원리를 따름으로써 어마어마한 컴퓨팅 능력을 부여한 다. 그 첫 번째 특성은 중첩superposition으로 이는 각 큐비트가 언제든 복 수의 상태로 존재할 수 있는 능력이다. 0과 1의 값을 모두 보유한 중첩 상태에 있는 복수의 큐비트들은 방대한 수의 출력값을 동시에 처리할 수 있으며 다양한 상황에 대한 분석이 가능하다. 양자컴퓨팅을 기반으로 구축된 인공지능은 고도의 효율성을 바탕으로 작동하기 때문에 복잡성은 기하급수적으로 줄어든다.
두 번째 특성은 얽힘entanglement으로, 두 개의 큐비트가 서로 연결되어 멀리 떨어져 있을 때조차 하나의 큐비트에서 수행되는 행동이 다른 하 나에 영향을 주는 것을 말한다. 얽힘 덕분에 양자 기계에 하나의 큐비트 가 더해질 때마다 컴퓨팅 능력은 기하급수적으로 증가한다. 1억 달러의 기존 슈퍼컴퓨터가 컴퓨팅 능력을 2배로 늘리려면 1억 달러를 더 써야 한다. 하지만 양자컴퓨팅의 능력을 2배로 늘리려면 하나의 큐비트만 더 하면 된다.
이렇게 놀라운 특성에는 대가가 따른다. 양자컴퓨팅은 컴퓨터와 그 주변 환경의 작은 이상에도 매우 민감하게 반응한다. 작은 진동, 전기적 간섭, 온도 변화 혹은 자기장에도 중첩이 붕괴하거나 심지어 사라질 수 있다. 실용적이면서 확장 가능한 양자컴퓨팅을 위해서는 이전에 없던 진공실, 초전도체, 초냉각 냉장고를 개발해 환경에 의해 발생하는 양자의 '결어긋남decoherence'을 최소화해야 한다.
- 이러한 도전적 문제들로 인해 과학자들이 양자컴퓨팅에서 큐비트의 수를 늘리는 데 오랜 시간이 걸렸다. 1998년에 2개이던 것이 2020년 에 65개로 늘었는데 이는 실용적인 작업을 수행하기에는 아직 너무 적 은 수다. 그렇긴 해도 수십 개의 큐비트만으로 일부 컴퓨팅 작업은 기존 의 슈퍼컴퓨터보다 100만 배 더 빠르게 처리할 수 있다. 구글은 2019년 에 기존의 슈퍼컴퓨터라면 수년이 걸렸을 문제를 54큐비트의 양자컴퓨 터가 수십 분 만에 풀 수 있음을 보여주며 처음으로 '양자 우월성quantum supremacy'을 증명했다.
IBM의 로드맵에 따르면, 향후 3년간 해마다 큐비트의 수가 2배 이 상 늘어나 2023년에 1,000 큐비트 프로세서가 등장할 것으로 기대된다. 4,000개의 논리적 큐비트logical qubit는 비트코인 암호를 깨는 것을 포함 해 일부 분야에 적용되기에 충분하다. 이를 근거로 일부 낙관론자들은 양자컴퓨터가 5년에서 10년 후에 도래할 것으로 예측하기도 한다.
하지만 이러한 낙관론자들은 몇몇 도전을 간과했을지도 모른다. IBM 연구자들은 큐비트가 늘어날수록 결어긋남에 의한 오류를 통제하기가 더 어렵다는 것을 인정한다. 이 문제를 해결하려면 신기술과 정밀공학 을 이용해 복잡하면서도 섬세한 장비를 구축해야만 한다. 또 결어긋남 오류를 해결하려면 안정성, 오류 수정 및 내결함성 fault tolerance을 제공하 기 위해 각각의 논리적 큐비트를 다수의 물리적 큐비트physical qubit로 나 타내야 한다. 4,000개의 논리적 큐비트를 가진 양자컴퓨터가 작동하려 면 한 대당 100만 개가 넘는 물리적 큐비트가 필요할 것으로 추정된다. 게다가 유용한 양자컴퓨터가 성공적으로 시연된다고 해도 대량 생산은 또 다른 문제다. 마지막으로 양자컴퓨터는 고전적인 슈퍼컴퓨터와 완전 히 다르게 프로그래밍되므로 새로운 알고리즘이 발명되어야 하고 새로 운 소프트웨어 도구도 만들어져야 한다.
- 다음과 같은 궁금증이 생길 수 있다. 왜 사람들은 그들의 지갑 주소와 공개키를 세상에 공개하는가? 이것은 초기 설계가 가진 결함이었다. 비 트코인 전문가들은 공개가 불필요하고 위험하다는 사실을 뒤늦게 깨달 았다. 2010년에 사실상 모든 새로운 거래가 주소를 숨김으로써 훨씬 더 안전한 새로운 포맷으로 전환되었다(물론 전혀 공격을 당하지 않는다고 는 할 수 없다). 이 새로운 기준이 바로 P2PKH이다. 하지만 과거의 취약 한 포맷(P2PK)에 아직도 200만 개의 비트코인이 저장되어 있다. 그리 고 2021년 1월, 코인당 가격이 6만 달러에 달해 전체 비트코인의 가치는 1,200억 달러가 되었다. 이것이 바로 <양자 대학살>에서 도둑들이 노린 것이다. 만일 구식 P2PK 계정을 갖고 있다면 당장 이 책을 내려놓고 가서 지갑을 안전하게 바꾸길 바란다!
- 마크 루소는 왜 은행을 털지 않았을까? 우선 은행에는 공개키가 담긴 공개 장부가 없고 따라서 개인키를 계산할 수 없기 때문이다. 둘째, 은 행에는 거액의 이체와 같은 수상한 거래를 감시하는 시스템이 있기 때 문이다. 셋째, 계정 간 돈의 이동은 추적이 가능하며 불법일 경우 기소당 하기 때문이다. 마지막으로, 은행 거래는 암호 해독에 더 많은 애를 써야 하는 다른 암호화 알고리즘에 의해 보호되기 때문이다.
암호화를 '업그레이드하려면 어떻게 해야 할까? 양자 저항 알고리즘 이 존재한다. 실제로 피터 쇼어는 난공불락의 암호화를 양자컴퓨터에 구축할 수 있음을 보여주었다. 양자역학에 기초한 대칭적인 암호화 알 고리즘은 침입자들이 강력한 양자컴퓨터를 갖고 있다 해도 뚫을 수 없 다. 이 암호에 침투할 수 있는 유일한 방법은 양자역학의 원리가 잘못된 것으로 판명될 경우뿐이다.
하지만 양자 저항 알고리즘을 적용하는 것은 매우 비싸다는 이유로 현재로선 대부분 기업이나 비트코인 거래소에서 고려하지 않고 있다.

- 증기 드릴이 나를 쓰러트리기 전에 내 손에 망치를 쥐고 죽겠소. (미국 민요 ‘존 헨리John Henry' 중)
- 낙관론자들은 신기술에 의한 생산성 향상이 거의 항상 경제적 이익을 창출한다고 주장한다. 더 큰 성장과 번영은 항상 더 많은 일자리를 의미 한다는 것이다. 하지만 인공지능과 자동화는 다른 기술들과 다르다. 인 공지능은 범용 기술로서 화이트칼라와 블루칼라를 통틀어서 거의 모든 산업과 직무 분야에서 변화를 가져올 것이다. 대부분 기술은 일자리를 창출하기도 하고 앗아가기도 한다. 조립 라인의 등장으로 자동차 생산 공장에서 더 낮은 비용으로 수많은 노동자를 대체했던 것을 떠올려보 라. 인공지능이 표명하는 기술적 목표는 인간의 일을 수월하게 해주거 나 대신하는 것이다. 산업혁명이 유럽과 미국을 넘어 전 세계로 퍼져나 가는데 100년 이상이 걸렸던 반면 인공지능은 이미 전 세계에서 채택 되고 있다.
- 다음 세 가지 능력은 인공지능이 뒤처지는 분야로, 2041년까지 인공지능이 통달하기 어려울 것이다.
* 창의력: 인공지능은 무언가를 전략적으로 만들어내거나 개념화할 수 없으며 계획을 세우지도 못한다. 인공지능은 협소한 목표를 위한 최적화는 잘하지만 스스로 목표를 정하거나 창의적으로 생각할 수 없다. 인공지능은 서로 다른 영역들을 넘나들며 생각하거나 상식을 적용할 수도 없다.
* 공감: 인공지능은 공감이나 연민과 같은 감정을 느낄 수도 그런 감정을 바 탕으로 상호작용할 수도 없다. 인공지능은 다른 사람이 이해받고 있다거 나 보살핌을 받는다고 느끼게 할 수 없다. 이와 관련해 인공지능이 아무리 개선된다고 해도 배려와 공감이 요구되는 상황에서 혹은 '휴먼터치 서비 스human-touch service' 분야에서 인간과 로봇이 상호작용하며 편안하게 느낄 수 있는 수준에 도달하기란 매우 어렵다.
* 수작업: 인공지능과 로봇은 인간의 손재주나 정교한 손과 눈의 협업이 요구 되는 복잡한 신체적 노동을 할 수 없다. 인공지능은 알지 못하는 비구조화된 공간, 특히 이전에 관찰한 적이 없는 공간에 대처할 수 없다.
- 인공지능에 의한 일자리 이동의 물결 속 에 결국 비숙련 신규직원들이 주로 하는 모든 반복적인 일이 사실상 사 라질 것이다. 하지만 이런 초보적인 일을 해보지 못한다면 그들은 어떻 게 학습하고 성장하고 발전해 상급직의 업무를 맡을 수 있을까? 자동화 가 점점 더 확대되고 있지만 우리는 여전히 사람들이 모든 직업에 종사 하고, 업무를 직접 해보면서 배우고, 능력에 따라 승진할 수 있는 방법 이 있는지 확인해야 한다. 이를 구현하기 위해 가상현실 기술이 활용되 면서 '가짜 일', '실무 훈련', '진짜 일'의 구분이 분명 모호해질 것이다.

- 두려워 마세요. 이 섬은 온갖 소리와 달콤한 공기에 싸여 있으니 오직 기쁨만 줄 뿐 해롭지 않습니다. 꿈속에서는 구름이 걷혀서 금방이라도 온갖 보물이 내게 쏟아질 듯합니다. 그래서 잠에서 깨어나면 다시 꿈나라로 돌아가고 싶어서 웁니다. (윌리엄 셰익스피어, <템페스트> 중)
- 아직도 가장 소중한 데이터를 제삼자에게 맡기는 것이 터무니없는 생 각이라고 여긴다면, 우리 대부분이 은행 금고와 같이 확실한 제삼자에 게 가장 소중한 물리적 소지품을 맡겨 보관하는 관행에 대해 생각해보 라. 게다가 주식은 증권회사에 맡기고, 비트코인은 인터넷에 맡긴다. 데 이터에 대해서만 그렇게 할 수 없는 이유는 무엇인가? 모든 데이터를 우 리와 같은 이해관계를 가진 신뢰할 만한 주체에게 맡길 수 있다면 우리 는 가장 강력한 인공지능의 도움을 받아 지속 가능한 행복을 찾을 수 있 으며, 더 이상 수많은 애플리케이션의 데이터 사용에 동의할지 말지를 생각할 필요도, 데이터 도난이나 오용에 대해 걱정할 필요도 없을 것이 다. 이 신뢰할 만한 주체가 자애로운 군주이든 오픈소스 코뮌이든 아니 면 분산형 블록체인 시스템이든, 신기술의 발전이 계속해서 우리의 데 이터를 더 안전하게 지켜줄 것이라 기대하면서 동시에 이 강력한 인공 지능이 주는 전례 없는 혜택을 누릴 수 있을 것이다.

- 꿈을 잃은 자는 길을 잃은 것이다. (호주 원주민 속담)












'IT' 카테고리의 다른 글

인공지능 파운데이션  (4) 2023.05.13
프로덕트 매니저는 무슨 일을 하고 있을까  (1) 2023.04.08
웹 3.0 사용설명서  (2) 2023.03.17
최소한의 IT언어  (2) 2023.02.24
비전공자도 이해할 수 있는 AI지식  (3) 2022.12.29
Posted by dalai
,

웹 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
처음 읽는 양자컴퓨터 이야기  (1) 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
처음 읽는 양자컴퓨터 이야기  (1) 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
처음 읽는 양자컴퓨터 이야기  (1) 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
처음 읽는 양자컴퓨터 이야기  (1) 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' 카테고리의 다른 글

처음 읽는 양자컴퓨터 이야기  (1) 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
,