부동산은 일하는 자산이 아니다?

한국은 국부가 부동산에 집중돼있다.

출처: https://news.joins.com/article/23551833

부동산은 일하는 자산이 아닐까?

요즘 핫한 김희애 배우가 청담동에 올리고있는 300억짜리 빌딩을 예로 들어보자.

건물과 건물은 경쟁하고, 땅과 땅은 경쟁한다. 시장이 효율적이라는 전제하에 상인들은 상가가 그만큼의 가치를 제공한다고 현명하게 판단하기에 그만큼의 월세를 지불할 것이 아닌가.

자고로 토지는 중요한 생산자산이었다.

주택도 살펴보자.

노량진 고시촌을 예로 들어보자. 노량존 고시촌은 일을 안하는가? 사람들에게 가치를 제공하지 않는가? 그렇지 않다. 수많은 청년들의 꿈을 응원하고, 현실적인 도움을 주고 있다. 고시촌 수험생들 또한 그 가치를 인정해 그에 상응하는 월세를 주고 있는 것이 아닐까?

심지어 모든 주택이 다 그렇다. 가장 근본적인 생산력인 인력자본에 필수적인 ‘의, 식, 주’ 중의 ‘주’를 제공하는 만큼, 필수적인 기능을 제공한다고 할 수 있다. 그 안에서 휴식하고 삶을 살아갈 수 있도록 비바람을 막아준다. 이것을 가지고 ‘일하지 않는다’라고 한다면 도대체 무엇이 ‘일’이란 말인가?

서울 주택 임대료 시세가 지방보다 높게 형성되어 있는 원인은, 시장 논리에 의해서, 서울 주택이 ‘사용 가치’를 보다 많이 제공하고 있다고 시장으로부터 평가를 받았기 때문이다.

이번에는 도시를 살펴보자.

하버드대 경제학 교수 에드워드 글레이저는 저서 <도시의 승리>에서 도시는 인류 최고의 발명품이라고 말한다.

미국 국토 넓이의 3퍼센트에 해당하는 도시에 2억 4,300만 명에 이르는 미국인이 살고 있다. 세계에서 가장 생산적인 대도시인 도쿄와 그 주변에는 3,600만 명이 살고 있다. 인도 뭄바이 중심에는 1,200만 명이 거주하고 있으며, 상하이의 규모도 뭄바이 못지않게 크다. 전 세계 인구가 각자 개인용 단독주택을 갖고 미국 텍사스 주에 모여살 수 있을 만큼 엄청나게 넓은 이 지구상에서 우리는 도시를 선택한다.

예전보다 더 저렴하게 장거리 여행을 가거나 미국 중부의 미주리 주에서 카스피 해 서부 연안에 있는 나라인 아제르바이잔까지 장거리전화를 걸 수 있게 됐지만 점점 더 많은 사람들이 대도시에 더 가까운 곳에 밀집해서 살고 있다. 매달 500만 명이 넘는 사람들이 개발도상국의 도시들에 모여들고 있음며, 2011년 기준 전 세계 인구의 절반 이상은 도시에 산다.

Continue reading

유발 하라리가 말하는 돈의 역사

쿠심이 서명했다

초기 단계의 쓰기는 사실과 숫자에 한정되었다. 만일 위대한 수메르 소설이 존재했더라도, 점토판에 쓰이지는 않았다. 쓰기는 시간이 걸리는 일이었고, 기호를 읽을 줄 아는 사람은 몇 되지 않았다. 그래서 장부 기록 이외의 일에 활용할 이유가 없었다. 만일 우리가 5천년 전의 선조들이 남긴 지혜의 말을 찾으려 한다면 크게 실망할 수밖에 없을 것이다. 조상들이 남긴 가장 초기의 메시지는 가령 이랬기 때문이다. ‘보리 29,086자루 37개월, 쿠심.’ 이 문장의 의미는 아마도 ‘37개월에 걸쳐 보리 29,086자루를 받았다. 서명자 쿠심’일 것이다. 아, 슬프다, 역사상 최초의 문서에 담긴 것이 철학적 통찰도, 시도, 전설도, 심지어 왕의 승리도 아니었다니. 세금 지불액과 쌓이는 빚의 액수와 재산의 소유권을 기록한 평이한 경제문서였다니.-p183

금이라는 복음

철학자와 사상가와 예언자는 수천년에 걸쳐 돈을 흉보면서 돈이 모든 악의 근원이라고 매도했다. 물론 그렇기도 하지만, 한편 돈은 인류가 지닌 관용성의 정점이다. 돈은 언어나 국법, 문화코드, 종교 신앙, 사회적 관습보다 더욱 마음이 열려있다. 인간이 창조한 신뢰 시스템 중 유일하게 거의 모든 문화적 간극을 메울 수 있다. 종교나 사회적 성별, 인종, 연령, 성적 지향을 근거로 사람을 차별하지 않는 유일한 신뢰 시스템이기도 하다. 돈 덕분에 서로 알지도 못하고 심지어 신뢰하지도 않는 사람들이 효율적으로 협력할 수 있다.-p266

돈의 대가

돈에는 이보다 더욱 어두운 면도 존재한다. 돈이 서로 모르는 사람들로 하여금 보편적인 신뢰를 쌓게 해주는 것은 사실이지만, 그런 신뢰는 인간이나 공동체, 혹은 신성한 가치가 아니라 돈 그 자체 그리고 돈을 뒷받침하는 비인간적 시스템에 투자된다. 우리는 이방인이나 이웃집 사람을 신뢰하는 게 아니라 그들이 지닌 주화를 신뢰할 뿐이다. 그들에게서 주화가 떨어지면 우리의 신뢰도 사라진다. 돈이 공동체, 신앙, 국가라는 댐을 무너뜨리면, 세상은 하나의 크고 비정한 시장이 될 위험이 있다.

진화 덕분에 호모 사피엔스는 다른 사회적 포유동물들과 마찬가지로 이민족 공포증을 지닌 존재가 되었다.사피엔스는 인간을 본능적으로 ‘우리’와 ‘그들’의 두 부류로 나눈다. 우리란 너와 나, 언어와 종교와 관습이 같은 사람들을 말한다.-p280

2단계 카오스는 스스로에 대한 예측에 반응하는 카오스다. 그러므로 정확한 예측이 불가능하다. 시장이 그런 예다.정치도 2단계 카오스다. 소련 연구가들은 1989년 혁명을 예측하지 못했고, 중동 전문가들은 2011년 ‘아랍의 봄’ 혁명을 예측하지 못했다. 이를 두고 비난하고 혹평하는 사람이 많지만, 이런 비난은 공정하지 못하다. 혁명은 그 정의상 예측이 불가능하다. 예상 가능한 혁명은 결코 발생하지 않는다.-p341

비어 있는 지도

무지를 인정하지 않은 콜럼버스는 여전히 중세인이었다. 그는 자신이 세계 전체를 안다고 확신했으며, 심지어 스스로 이룬 기념비적인 발견도 그 확신을 흔들지 못했다.

최초의 근대인은 아메리고 베스푸치였다. 그는 1499년~1504년 사이에 여러 차례 아메리카 탐험대에 참가했던 이탈리아 선원이었다…대륙을 그려 넣은 발트제뮐러는 이름을 부여해야 했다. 그는 그것을 발견한 사람이 아메리고 베스푸치라고 잘못 알고 있던 터라, 이 대륙에 아메리고를 기리는 이름을 붙였다. 아메리카라고. 발트제뮐러의 지도는 인기를 끌었고, 수많은 다른 지도 제작자들에 의해 복제되었다. 그가 새 땅에 부여한 이름도 함께 퍼져나갔다. 세계 4분의 1에, 즉 일곱 대륙 중 두 곳에 거의 무명이던 이탈리아인의 이름이 붙은 것이다. 그가 유명할 이유라고는 “우리는 모른다”라고 말할 용기가 있었던 점 외에 아무것도 없다. 이 사실에는 어떤 시적 정의가 있다.

Continue reading

유발 하라리가 말하는 ‘빚’의 역사

자본주의의 교리

돈은 제국 건설과 과학 진흥에 필수적이었다. 하지만 돈이 이 모든 일의 궁극적 목표일까, 아니면 단지 위험한 필수품일 뿐일까? 근대사에서 경제의 진정한 역할을 파악하기는 쉽지 않다… 하지만 근대 경제사를 알기 위해서 정말로 이해할 필요가 있는 단어는 하나밖에 없다. ‘성장 growth’이란 단어다. 좋을 때나 나쁠 때나, 아플 때나 건강할 때나, 근대 경제는 마치 호르몬이 넘쳐나는 십대처럼 성장해왔다. 찾을 수 있는 모든 것을 먹어치우고, 우리가 짐작하는 것보다 늘 몇 센티미터 더 많이 자랐다.
인류 역사 대부분의 기간 동안 경제는 대체로 같은 규모를 유지해왔다… 1인당 생산은 정체 상태였다. 하지만 이 모든 것은 근대에 와서 바뀌었다. 1500년 재화와 용역의 지구 총생산은 약 2,500억 달러였는데, 오늘날 이 수치는 60조 달러까지 증가했다. 더욱 중요한 것은 150년 연간 1인당 총생산은 550달러였지만 오늘날 모든 남녀와 어린이가 1인당 연평균 8,800달러를 생산한다는 점이다.-P431

빵집사례에서 도급업자의 계좌에 들어 있는 액수와 실제로 은행에 있는 돈의 액수의 차이는 곧 맥도넛의 빵집이다. 그리디는 언젠가 그것이 이윤을 불릴 것이라고 믿으면서 은행의 돈을 투자했다. 빵집은 아직 빵 한 덩어리도 굽지 않았지만 맥도넛과 그리디는 앞으로 1년 후면 그 빵집이 매일 수천 개의 덩어리 빵, 롤 빵, 케이크, 쿠키를 팔아 많은 이윤을 남길 수 있을 것이라고 기대한다…

근대 이전에는 이 능력이 제한적이었다. 대부분의 경우 돈이 대표하고 전환할 수 있는 것은 오직 현재 실제로 존재하는 것뿐이었다. 이것은 성장에 심각한 제약을 가했다. 새로운 사업에 돈을 조달하기가 극히 힘들었기 때문이다…

이 시스템 내에서 사람들은 ‘신용’이라 불리는 특별한 종류의 돈이 상상 속의 재화 — 현재 존재하지 않는 재화 — 를 대표하게 하는데 동의했다. 신용은 미래를 비용으로 삼아 현재를 건설할 수 있게 해준다. 신용은 우리의 미래 자원이 현재 자원보다 훨씬 더 풍부할 것이라는 가정을 토대로 하고 있다. 만일 우리가 미래의 수입을 이용해서 현재에 무엇을 건설할 수 있다면, 새롭고 놀라운 기회가 수없이 많이 열린다.-p434

커지는 파이

사람들은 부의 총량이 더 줄지는 않더라도 한정되어 있다고 믿었다… 사업은 제로섬 게임처럼 보였다. 물론 특정 빵집의 이익이 증가할 수는 있지만, 그것은 그 옆 빵집의 희생을 통해서만 가능했다… 파이를 자르는 방법은 수없이 많지만, 어느 방법도 파이를 더 크게 만들지는 못한다. 수많은 문화권에서 돈을 많이 버는 것을 죄악이라고 결론 내린 이유가 여기에 있었다. 예수가 말했듯이 “부자가 천국에 들어가기는 낙타가 바늘구멍을 통과하기보다 어려우니라”(마태오 복음 19:24)였다.-p436

지구의 파이가 커지고 있다는 믿음은 결국 혁명이 되었다.-p439

스미스의 주장 – 개인적인 수익을 늘리려는 이기적 인간의 욕구는 공동체 부의 기반이다 — 인류 역사에서 가장 혁명적인 아이디어에 속한다. 경제적 관점에서뿐 아니라 도덕적, 정치적 관점에서는 더더욱 혁명적이다. 스미스는 사실상 탐욕이 선한 것이며, 내가 부자가 되면 나만이 아니라 모두에게 이득이 된다고 말한 것이다. 이기주의가 곧 이타주의라고.

스미스는 경제를 ‘윈-윈 상황’으로 생각하라고 사람들에게 가르쳤다. 나의 이익이 곧 너의 이익이기도 하다는 것이다. 우리가 둘 다 더 큰 파이 조각을 가질 수 있을 뿐 아니라, 내 파이 조각이 커져야 네 조각도 커질 수 있다. 내가 가난하다면 너 역시 가난해질 것이다. 네가 생산하는 상품이나 용역을 내가 살 수 없을 테니까. 내가 부자라면 너 역시 부자가 될 것이다. 네가 내게 뭔가를 팔 수 있으니까.

스미스는 부와 도덕 간의 전통적 대립을 부정했고, 부자에게 천국의 문을 열어주었다.

스미스의 이론에서, 사람들은 이웃의 것을 빼앗아서 부자가 되는 게 아니라 전체 파이의 크기를 늘림으로써 부자가 된다. 파이가 커지면 모두에게 이익이다. 따라서 부자는 사회에서 가장 쓸모 있고 인정 많은 사람이다. 모두에게 이익이 되도록 성장의 바퀴를 돌리는 사람이기 때문이다.-p440

새로운 자본주의 교리에서 가장 신성한 제1계율은 “생산에 따른 이윤은 생산 증대를 위해 재투자되어야 한다”이다.

자본주의가 ‘자본주의’라고 불리는 이유가 여기에 있다. 자본주의는 ‘자본’을 단순한 ‘부’와 구별한다. 자본이란 생산에 투자되는 돈과 재화와 자원을 말한다. 반면에 부는 땅에 묻혀 있거나 비생산적 활동에 낭비된다. 비생산적인 피라미드에 자원을 쏟아붓는 파라오는 자본주의자가 아니다. 스페인의 보물선단에서 약탈한 금화를 상자에 담아 카리브해의 어느 섬에 묻어둔 해적은 자본주의자가 아니다. 하지만 열심히 일해서 수입의 일부를 주식시장에 투자한 공장 노동자는 자본주의자다.-p442

Continue reading

트랜잭션 엔진 일람

사람들이 말하는 프로그래밍은 대부분 원주율 계산이 아니라 소프트웨어 시스템 구축이다. 소프트웨어 시스템 구축에 있어서 애플리케이션 상태 관리가 핵심이다. 따라서 백엔드 프로그래밍에서 트랜잭션 엔진이야말로 핵심 요소다. 그 중요성이 너무 덜 강조된 것과 대조되게 말이다.

튜링 머신

당연히 모든 트랜잭션 처리 수단은 이 범주에서 벗어나지 못한다. 문제 연산을 위해 발명되었지만, 소프트웨어 시스템 구축에 더 많이 쓰이는 것 같다.

메모리(Random Access Memory)

메모리에서 당연히 트랜잭션을 처리할 수 있다. 문제는 트랜잭션 중간 상태에서 정전이나 고장이 발생할 경우, 트랜잭션의 원자적 적용에만 실패하는 것이 아니라, 원 상태마저 누락하는 재난이 발생해버린다는 점이다.

우리가 사용하는 메모리 장치가 용량이 무한대이고 절대 정전이나 고장이 발생하지 않는 추상적인 “완벽한” 메모리라면 데이터베이스를 발명할 필요도 없었을 것이다.

관계형 데이터베이스(RDBMS)

흔히 백엔드 프로그래밍에 node.js를 써야 하나 python을 써야 하나 하는 토론이 발생하지만, 정작 중요한 부분은 왕왕 DBMS 쪽이라는 것이 간과되곤 한다. RDBMS는 오랜 역사 기간동안 트랜잭션 엔진 영역의 왕좌를 지켜왔다. 그러다 최근에 왕좌에서 끌려 내려왔는데, 스케일 문제 때문이었다. RDBMS는 수평확장성이 좋지 않았다.

여러 문서간 트랜잭션을 지원하지 않는 NoSQL

애플리케이션이 트랜잭션 처리 기능을 포함해야 한다. 이것을 잘하기 아주 어려움. 잘 해도 더러워짐. 확장성의 대가.

액터 모델(Actor Model)

애플리케이션이 트랜잭션 처리 기능을 포함해야 한다. 쉬운 확장성의 대가. 액터 모델은 상태 변경 명령을 전달하는 방식으로 작동한다. 다중 객체 상태의 동시 settlement에 약하다.

LMAX 아키텍처 (싱글 스레드, 이벤트 소싱을 통한 레플리케이션)

이 방식은 LMAX 외환 거래소, 한국거래소, 됴쿄증권거래소, 상하이증권거래소 같은 곳에 모두 적용되어 있다. 한마디로 높은 빈도의 트랜잭션 처리 영역을 장악하고 있다.

싱글스레드 모델. 수평확장 불가. 아이러니하게 TPS가 가장 높음 (6백만 TPS) . 저장공간 수평확장 불가한 것이 최대 단점.

참고: https://martinfowler.com/articles/lmax.html

고신뢰성 분산 키값 저장소 (a.k.a 분산 코디네이터)

Apache Zookeeper, etcd, Google Chubby 등 구현이 있다.

분산 저장소지만 기본적으로 중앙화된 저장소라고 봐야 한다. 다만 클라이언트에 데이터 누락의 위험 없이 최신 상태를 지속적으로 (최종 일관성) 동기화 해준다는 보장을 한다. (클라이언트로의) 분산 동기화에 특화되어 있는 저장 백엔드라고 봐야 한다.

장점:

  • 거의 완벽한 안전성.

단점:

  • 여러 문서간 트랜잭션 기능 미제공
  • TPS
  • 수평확장 불가

트랜잭션 기능 있는 클라우드 스케일 NoSQL DBMS

단점이 거의 없음. ACID + 확장성. 레이턴시를 대가로 CAP 모두 만족할 수 있음. 범용적임.

가상 액터 + 트랜잭션 패치(즉 Microsoft Orleans)

레플리케이션 불가. 하지만 상태 랜딩 (영구화) 백엔드가 레플리케이션 기능 있는 DBMS일 경우 레플리케이션 기능이 생긴다. 단 레플리케이트 되려면 컨시스턴트한 쓰기를 해야 함. 이는 레이턴시를 대가로 함. 객체 데이터베이스(Object Database)라 할 정도의 높은 표현력이 킬링 포인트. 다른 장점: 투명한 분산 / 쉬운 수평확장. Stateless 서비스에 준하는 배포 민첩성.

레플리케이션 활성화된 Redis

장점: 높은 TPS (백만 TPS), 안전성.

단점:

  • 레플리카 랙 기간동안의 아주 미약한 데이터 불안전성 (크로스 리전 20ms 대. 베어 메탈 로컬 네트워크 1ms 대)
  • Redis의 자료형 표현력의 한계 (메모리 주소 쓸 수 없음)
  • 그로 인한 프로그래밍 표현력 부족. 애플리케이션 상태 의존적인 트랜젹션은 제한된 lua로 짜야 함 (즉 client-controlled 트랜잭션의 부재).
  • 수평확장 불가 (수평확장 시 트랜잭션 불가)
  • 수직 확장의 공간 한계가 낮음(메모리 한계). 콜드 데이터를 디스크로 랜딩 시키는 기제(와 온디맨드 로딩 기제)가 필요할 경우 애플리케이션 단에서 제공해야 함.

블록체인?!

크게 퍼블릭 체인과 프라이빗 체인으로 나뉨. 퍼블릭의 경우 크게 POW와 POS로 나뉨. 각각 아주 많은 종류가 있다. 종류에 따라 TPS, 데이터 redundancy 수준, 분산 공격 가능성 모두 다름. 단점도 각각 다름. 장점이 뭐냐 라고 한다면, 퍼블릭 프라이빗을 막론하고 한가지로 요약할 수 있음. 가트너의 평가를빌자면:

멀티 파티 신뢰 문제를 해결함.

(It allows untrusted parties to exchange commercial transactions.)

Gartner Top 10 Strategic Technology Trends for 2018

즉 트랜잭션 엔진의 멀티 파티 소유가 가능해짐. 그중 “파티”의 뜻은? RFC 7519(JSON Web Token)의 서언에서 말하는 “two parties”의 “파티”와 같은 뜻. 한발 나아가 그 어떤 파티에도 소유되지 않은 트랜젹션 엔진이 탄생했음을 의미. 역사상 처음으로 애플리케이션의 상태에 대한 글로벌 컨센서스를 독점 외의 수단으로 달성할 수 있게 됨.

단점: 블록체인 트릴레마(불가능 삼각형). 각자 단점이 모두 다르지만 공통된 단점: 레이턴시. 아직까지 효과적인 수평확장이나 계층화된 확장 솔루션이 구현 및 실천에서 성공한 기록이 없음(이론과 소규모실천에는 많음). 애플리케이션 상태의 비밀성 부재. 결정론성 요구 때문에 상단 애플리케이션에서 외부 상태 참조 불가.

결론

CAP 이론이 소프트웨어 개발, 그중에서도 트랜잭션 엔진에 무엇을 의미하는지 지금까지도 업계가 오해해왔던 만큼, 업계가 이 영역에 대해 모르는 것도 많을 것이다. 많은 토론이 필요한 이유다.

《도시의 승리》 독서필기

마침내 자동차가 엘리베이터에 승리를 거두자 미국인들 다수가 도시와 자연이 융합된 교외 거주지에 살게 되었다.

샌프란시스코 지역의 아름다운 풍경 속에는 탁 트인 산등성이와 보호받는 해안 조망이 끊임없이 펼쳐진다. 실리콘밸리의 컴퓨터 분야 거물들은 특별한 기후뿐만 아니라 세계에서 가장 엄격한 토지 용도 규제로 인해 개발로부터 보호되는 아름다운 배경을 선사하는 지역에 거주한다.

석탄은 제2차 세계대전이 끝난 뒤까지도 미국 도시들의 하늘을 갈색으로 물들였다.

가정용 난방을 위한 탄소 배출로 인해서 스노 벨트(Snow Belt: 미국 북부와 동북부의 대설 지대)는 온화한 기후의 캘리포니아에 비해서 덜 푸르러 보인다.

캘리포니아 해변 지대는 미국에서 최고의 녹색 지대에 속한다. 샌프란시스코에 있는 가구는 멤피스에 있는 가구에 비해서 탄소 배출량이 60퍼센트 적다.

캘리포니아는 여름철 냉방이나 겨울철 난방이 많이 필요하지 않은 축복받은 기후를 갖고 있다.

성장을 제한함으로써 캘리포니아가 더 푸르게 보일지 몰라도 그런 제한은 미국 전체를 더 갈색으로 만들면서 전 세계 탄소 배출량을 늘리고 있다.

환경보호주의자들이 녹색 지역에서 개발을 중단시키면 갈색 지역에서 개발이 일어날 것이다.

오늘날 중국에서는 주로 산업 분야에서 탄소가 많이 배출된다. 과거 피츠버그나 맨체스터를 뒤덮었던 검은 연기처럼 탄소는 급성장하는 산업 발전의 부산물이다. 지금까지 중국 가정들은 놀라울 정도로 적은 에너지를 사용했다. 워싱턴 D.C. 지역의 일반 가정이 연간 43톤의 이산화탄소를 배출하는 반면 베이징의 일반 가정은 3.997톤의 이산화탄소만을 배출하지만 베이징은 중국에서 손꼽히는 ‘갈색 도시(the brownest place)’ 중 하나이다. 중국의 유전 도시이자 가장 갈색 도시인 다칭(大庆)의 가구당 연간 탄소 배출량은 미국에서 가장 녹색 도시인 샌디에이고의 탄소 배출량의 5분의 1에 불과하다.

국가 경제가 발전하면서 에어컨이 등장하기 훨씬 전부터 난방이 등장한다. 미국에서 가장 탄소 배출량이 많은 곳들은 덥고 습하지만 오늘날 중국에서 가장 탄소배출량이 많은 곳들은 추운 곳들이다. 중국은 난방은 하지만 아직까지 냉방은 하지 않기 때문이다. 미국 가정에서 나오는 탄소 배출량의 절반이 개인 교통수단의 사용에서 나오지만 중국에서는 현재 이 양의 10분의 1 정도만 자동차에서 나온다. 중국에서 차량과 에어컨 사용이 비교적 적어 현재 탄소 배출량이 낮은 수준을 유지하고 있으나 점점 더 부유해지는 중국인들이 미국인들이 당연하게 여기는 사치품 구입을 포기하리라 기대하기는 어려울 수 있다. 더군다나 인도에서는 에어컨을 써야 할 명분이 더욱 강한 것 같다.

중국과 인도가 전통적인 농업에 종사하기를 바라고 싶을지도 모르지만 24억에 달하는 사람들을 영원히 피폐한 가난 속에 살게 만드는 것이 기후 변화의 해법은 아니다. 과거 중국과 인도가 농업 사회였을 때 전염병에 걸려 많은 아이들이 숨졌고 굶주렸다. 영원한 가난이란 인간이 최첨단 의학 기술의 도움 없이 다스릴 수 있는 온갖 전염병에 수십억명이 노출된다는 것을 의미한다. 가난은 독재 정권을 길러내는 온상이기 때문에 인도와 중국이 가난한 상태를 유지한다면 전 세계 나머지 나라 사람들은 이웃의 강력한 독재 국가들로 인한 군사적 위험에 직면할 것이다. 그러나 환경적 위험을 줄이면서 번영과 성장을 이끌어낼 수 있는 길이 있다. 무엇보다 이 길을 걷기 위해서는 미국 준교외 지역의 자동차가 아니라 고밀도 도시 생활이 요구된다.

미래 중국이 더 나은 대중교통과 고층 주거 공간을 갖춘 초고밀도 사회가 된다면 우리가 사는 세상은 더 안전해질 것이다.

그러나 경고 신호들도 나오고 있다. 각각 2,000만 명과 1,700만 명이 거주하고 있는 상하이와 베이징의 혼잡도는 뉴욕 시와 비교하면 10분의 1 정도이고 로스앤젤레스와 비교하면 절반 미만인 광대한 도시들이다. 최근 인도와 중국에서 자동차 사용이 급증하고 있다. 이처럼 매년 30퍼센트씩 자동차 등록 대수가 늘어나는 현상이 몇 년간만 지속되더라도 2020년이 되면 중국 내 자동차 등록 대수는 5억 대에 이를 수 있다.

나도 같은 부류에 속하지만, 오늘날 아시아인들에게 에너지 절약을 설득하고 있는 에너지에 미친 미국인들은 매우 위선적이라고 말할 수밖에 없다. 한 저명한 경제학자는 이런 모습을 보고 “SUV 운전자들의 나라가 자전거 운전자들의 나라에게 모페드(모터 달린 자전거)를 몰지 말라고 설득하는 것과 같다”라고 꼬집었다. 서양이 지구온난화에 대해서 어떤 식으로든 도덕적 권위를 얻을 수 있는 유일한 방법은 자신부터 솔선수범하는 것이다.

고밀도 도시는 운전을 줄이고 냉난방을 적게 해도 되는 집에서 살 수 있는 방법을 제공한다. 아마도 미래 언젠가 우리는 탄소를 사실상 전혀 배출하지 않고도 운전하고 냉난방을 할 수 있겠지만 그때까지는 아스팔트만큼 푸른 것은 없다. 인류와 지구를 위해서, 도시는 우리를 ‘미래로 인도할 물결(wave of future)’이며 또 반드시 그렇게 되어야 한다.

Redux 공부 필기

  1. Redux의 혁신은 상태를 한곳에 몰아넣은 것, 상태와 ‘상태 변경자’들을 분리한 것이다. 맞다, WAS들이 이미 하고 있는 그것 맞다. (AWS Lambda가 왜 ‘람다’인지 생각해보라.)
  2. 상기 혁신을 통해 핫 리로딩(hot-reloading)을 지원한 것이 키 피처중 하나였다. 역시 WAS들이 이미 하고 있는 그것 맞다.
  3. 모듈화는 상태를 찢어놓음으로 달성한게 아니라 함수를 찢어놓음으로 달성한다. 찢어진 함수들은 ‘함수 합성’을 통해 다시 합쳐질 수 있다.
  4. 키 피처중 다른 하나는 시간 여행 디버깅(Time Travel Debugging)이다. (Redux라는 네이밍의 중의적 의미중 하나. 후술.) Visual Studio나 WinDbg에서 지원하는 그거 맞다. 다만 Redux가 먼저 나왔고 따라해도 VS와 WinDbg가 따라했을 것 같다.
  5. 시간여행의 비결이 뭐냐? 애플리케이션 상태를 1개의 불변(immutable) 객체에 저장하는 것이다. 상태가 바뀔 때 어떠카냐고? 불변형 객체를 하나 새로 만들면 된다.
  6. 그렇게 하게되면 메모리 사용량이 무식하게 늘어나지 않냐? 아니다. 최적화되어 필요한 부분만 증분으로 늘어난다. 즉 상태변경을 하는 일반 애플리케이션과 큰 차이가 없다. (특히 웹앱의 생명주기상 더욱 문제 안된다.)
  7. 메모리 사용량이 폭증하지 않는 마법의 비결이 뭐냐? 답은 의외로 간단했다. 얕은 복사(Shallow Copy)다. 진짜 천재다.
  8. 물론 이상 모두 Redux의 핵심을 짚었다고 할 수 없다. Flux – Redux 진화 라인의 핵심은 액션의 단방향 흐름이다. 즉 이벤트 소싱이다.
  9. 이벤트 소싱과 상태의 예측성 모두 게임 쪽에서 훨씬 일찍부터 태동하고있던 사상이었고, DB쪽에서는 옛날부터 이미 구현된 현실이었다.
  10. 물론 수렴 진화(Convergent evolution)에서 그 어떤 가지도 모두 동등하게 중요하고 대체불가하다.
  11. 함수형 프로그래밍 신도들은 immutable 의 승리가 보일 것이고, 데이터베이스 힙 가이들은 “THE LOG IS THE DATABASE”가 보일 것이고, 이벤트 소싱파들은 이벤트 소싱이 보일 것이고, CRDT연구자들은 CRDT가 보일 것이고, Redis 애호가들은 Redis가 보일 것이고, 블록체인 신도들은 블록체인이 보일 것이다.
  12. “Redux”는 “Reduce”(“맵리듀스”의 그 “리듀스” 맞다)와 같은 라틴어 어원을 갖는다. 위에서 언급한 것처럼 “(과거의 것을) 되찾음”이란 뜻이 있다. 그리고 reduce는 함수형 프로그래밍에서 잘 알려진 패턴인데 억지번역을 해보자면 ‘귀납 합병’ 같은거다. 필자도 지금 알게 된건데 “fold”가 더 표준적인 용어더라.
  13. 정말 블록체인으로 Redux를 구현한 사람이 있다.
  14. Redux는 놀랍도록 짧다. 핵심 코드 99줄 구현을 갖고있는 것으로 유명하다. 그도 그럴것이 React Europe이란 컨퍼런스에 ‘핫 리로딩’ 관련 기술공유를 하기 위해 PoC 목적으로 급조해 만들어졌다고 한다. (거봐 그냥 WAS를 본딴거라니까)
  15. Redux 발명자는 이미 페이스북에서 채갔다.