Database Design and Implementation 북 클럽 참여기

관심 가는 소프트웨어 북클럽이 종종 있다. 그런데 대부분 미국 중심이다 보니, 주기적으로 모이는 시간대가 보통 새벽이다. 그래서 참여하기가 힘들고, 참여를 못 하면 북클럽의 의미도 없어진다. 그런데 최근에 Software Internal 관련 이메일 북클럽이 있다는 소식을 듣고, 기대가 되어 바로 참여해보기로 했다. 책은 Edward Sciore의 Database Design and Implementation. 잘 모르는 책이지만, Software Internal 북클럽이니 믿고 일단 신청하고 주문부터 했다.

이메일 북클럽 운영 방식은, 참가자들이 Google Group에 가입해 매주 정해진 디스커션 리더가 새 챕터별로 쓰레드를 여는 형태였다. 특별히 큰 의무감이 따르지 않는 방식이었는데도, 매주 열리는 디스커션이 일종의 페이스메이커 역할을 해주었다.

요즘 공부 의욕이 높지 않아서 많은 시간을 들인 것은 아니고, 주로 퇴근길 버스에서 틈틈이 읽고 있다.

Chapter 1, 2, 3이 각각 Database Systems, JDBC, Disk and File Management 주제를 다루는데, 학부 수준의 내용이라 흥미가 생기지 않아 괜히 시작했나 싶기도 했다. Software Internal 북클럽인데 왜 하필 이 책을 고른 건지 의문이 들었다.

그러나 Chapter 3 마지막에 이 책의 가치를 조금 이해하게 되었다. 이 책은 Java로 만든 매우 단순한 데이터베이스 구현체인 SimpleDB를 함께 설명하면서, 각 장 마지막에 코드 레벨로 개념을 다룬다. Excercise에는 이 코드를 개선해보는 과제들도 있다.

어제 퇴근길에 Chapter 4 Buffer Management까지 읽었다. 데이터베이스의 핵심 구조이다 보니 집중해서 읽게 되었고, 코드까지 함께 다뤄볼 수 있어 흥미로웠다. 아침에 시간을 내어 오래된 SimpleDB 코드를 빌드하고 실행할 수 있게 만들었다.

처음 시도해보는 소프트웨어 북클럽이라 약간 망설임도 있었지만, 시간이 갈수록 생각보다 많은 것을 배우고 있다. 단순히 읽기만 하는 것과 달리, 직접 코드를 만져보며 책 속 개념들이 어떻게 구현되는지 더 깊이 이해하게 된다. 이제는 다른 언어로 포팅해보는 것도 하나의 도전으로 삼고, 앞으로도 꾸준히 참여해보려고 한다.

Database Design and Implementation 북 클럽 참여기 더 읽기"

뉴스 없는 아침

더이상 뉴스를 볼 필요가 없다.

내 삶에 영향을 미칠만한 중요한 뉴스는 어차피 지인들을 통해서 듣게 된다. 그 중에서도 매우 급박한 소식은 트위터를 통해서 듣는 것이 훨씬 빠르다. 모두를 위한 뉴스가 꼭 나에게 유익한 것은 아니다. 뉴스 기사들은 사건사고라든가 내가 응원하는 정당이나 스포츠팀의 패배와 같이, 오히려 불안감이나 스트레스를 주는 경우도 많다. 그래서 예전에는 뉴스 소비를 최소화하려고 노력하고, 또 지인들도 설득하기도 했다.

하지만, 언젠가부터 아침에 일어나자마자 정치적인 뉴스 영상을 보는 게 습관이 되어버렸다. 지난 총선 무렵이었던 것 같은데, 정확히는 기억나지 않는다. 정치 현안과 논점들에 대해서 이해하는 것도 재미가 있다. 이렇게 30분에서 1시간 정도 뉴스 영상으로 하루를 시작하는 게 자연스러워졌고, 인과관계는 불확실하지만, 그 후로 공부를 포함한 다른 생활 습관까지 느슨해진 것 같다.

이런 나 자신을 인지하고 기억을 되돌아보니, 아침에 30분에서 1시간 정도는 내가 하고 싶은 일들을 하는 것으로 루틴을 만들고 실행한 적이 있었다. 예를 들어, 아침 공부를 하거나 가벼운 근력 운동을 하거나, 아니면 조용히 명상을 하기도 했다. 오늘부터 다시 뉴스 없는 아침을 시작한다. 1일차, 그리고 앞으로 계속.

뉴스 없는 아침 더 읽기"

보이지 않는 효율성

Invisible Efficiencies (thediff.co)

Byrne Hobart의 뉴스레터에서 Invisible Efficiencies라는 흥미로운 글을 읽었다.

AI 시대가 되었지만, 그러한 성과가 GDP와 같은 경제지표로 나타나지 않는다는 기사가 간혹 보이곤 한다. 이 글에서는 기술을 통한 높아진 효율이 왜 측정되지 않을 수 있는지에 대해서 다루고 있다.

더 나은 진통제가 발명되었다면, 실제로 많은 사람들은 이를 통해서 생산성이 높아지겠지만, 그 결과는 노동 공급의 증가로 관찰될 것이고, 석유를 발견하는 효율적인 방법이 개발되었다면, 이것은 석유 공급량의 증가로 보일 것이라는 예시를 인용하고 있다. 즉, 실제로 효율성을 높이는 어떤 기술이 도입되었다고 하더라도, 그 결과는 효율성의 증가처럼 보이는 것이 아니라 (다른 요인에 의해서 영향 받을 수 있어서 마치 기술의 영향처럼 보이지 않을 수도 있는) 어떤 양의 증감으로 해석될 수 있다는 것이다. 결과적으로는 그 기술의 효율성은 보이지 않게 되는 것이다.

Let’s say someone invents a useful painkiller, and that makes it easier for many people to show up to work and be productive. Output will rise, yet that advance will show up as an increase in labor supply, rather than as an increase in technology or scientific knowledge. Similarly, a new method for discovering oil may boost output, but that will be classified as an increase in oil supply, even though it does properly represent a form of scientific progress.

기술 기업들에 관한 예시도 들고 있는데, Uber나 DoorDash는 원래라면 활용하기 어려운 노동력으로부터 가치를 생산하지만, 이는 노동 공급의 증가로 관찰된다. 또한 이러한 비즈니스의 결과로 발생하는 경제활동들이 있지만, 실제로 소비자의 효율성 증가 – 더욱 적은 시간을 운전하는 것 – 는 경제 관점에서 측정되지 않기 때문에, 생산성의 증가로는 관찰되지 않는다.

There are some companies whose economic impact is that they’ve unlocked a previously inaccessible cohort of workers. Uber and DoorDash have made it so that someone who can work in increments of a few hours at a time, with an unusual and inconsistent schedule, can still earn money. […]
[…] To the extent that users of these products are using some of their extra time to work, and are earning enough to justify it, there might be a marginal productivity impact. But again, it’s showing up in the wrong place: higher labor input gets measured, but less time spent driving to and from Chipotle in your own car is not part of measured economic output, so it won’t show up in productivity per hour.
None of this is truly a problem with GDP, since GDP does a surprisingly good job of what it’s trying to measure. But what it’s really trying to measure is the scope of the taxable economy; it’s impractical to assess a sales tax on the markup in value between a home-cooked meal and its ingredients. […]

따라서, 이 글에서는 효율성을 개선하는 기술에 의한 거시적인 생산성 향상의 증거를 찾으려고 할 때는 단순히 데이터를 보는 것이 아니라, 오히려 각각의 사안을 자세히 들여다봐야 한다고 결론짓고 있다. 만약 제품이 편리하고 누군가가 그 제품을 통해서 – 생산성 향상분의 일부에 해당한다고 생각할 수 있는 – 돈을 벌고 있는 동시에, 모두가 이익을 얻고 있는 상황이라면, 데이터로 관찰이 되지 않더라도 생산성 향상이 있다고 판단할 수 있다는 아이디어를 제시하고 있다.

[…] So if you’re looking for broad-based productivity gains from the deployment of efficiency-improving technologies, focus on anecdotes over data: if the product is convenient, and someone’s making money from it, then there are two possibilities: either it’s unsustainable because one or more participants are getting a bad deal, or it’s a productivity gain in disguise.

이 글은 경제적인 데이터나 지표의 한계에 대해서 논하고 있지만, 좀 더 일반화를 해 볼 여지는 있는 것 같다. 효율성 개선에 따른 생산성 향상을 찾으려고 할 때, 깊은 고민 없이 거시적인 데이터나 기준을 사용하는 경우가 있을 수 있다. 그러한 데이터나 기준에 실질적인 효율의 개선이 포함되지 않을 수 있다는 가능성을 항상 유념해야 한다. 그러한 경우에는 효율의 개선이 실제로 존재하는지 개별 사안을 분석해보되, 이를 다시 데이터나 기준에 포함시킬 수 있는 방법을 고민하는 과정이 필요해 보인다.

보이지 않는 효율성 더 읽기"

LLM과 Autonomous Agent에 대한 단상

The image is captured from Andrew Ng’s talk: What’s next for AI agentic workflows.

최근에 지인들이 모인 디스코드에서 얘기했던 생각들을 퇴근길에 정리해봤다.

1. LLM에 컴퓨팅과 데이터를 때려넣으면 성능이 올라가는 것에 대해 한계효용 체감이 있을 것이라는 얘기는 계속 있어왔고, 그러한 경쟁조차도 치열한 접전이 되었다. 이번에 GPT-4o의 초점이 달라진 것을 보면 그러한 상황을 반영한 것이 아닌가 싶기도 하다. (이러고나서 GPT-5가 짜잔하고 나올 수도 있지만…)

2. Auto-Regressive LM의 본질 상 planning과 reasoning에 한계로 인해 현재의 기술만으로 singularity는 달성되지 않을 듯하다.

3. 치열한 경쟁으로 인해 LLM weights와 fine tuning 도구들은 commodity가 되었다.

4. 현재 ChatGPT 등은 스마트한 information retrieval 도구이고 엔터프라이즈에서 이러한 일을 대신 해주는 회사들도 많다.

5. 우리의 일을 최소한의 관여로 대신해주는 것에 관한 것은 아직 충분한 성과가 보이지 않는 것 같다.

이러한 상황으로 볼 때는 특정한 영역에 대해 autonomous agent를 구축하는 것에 대해 좀 더 많은 투자가 이루어져야 할 것 같다. 현재의 LLM capability와 실제 세상과 연결하기 위한 복잡다단한 엔지니어링, 요소마다 최적화하기 위한 모델들을 조합하고 제품 다듬기에 충분한 노력을 기울이면, 어떤 영역의 일반 작업들에서는 충분한 매력이 있는 제품을 얻을 수 있을 것 같다.

물론 이러한 생각을 하는 사람들(예를 들어 Andrew Ng의 agentic workflow)과 스타트업들(코딩을 완전 자동화했다는 주장..)은 이미 엄청나게 많을 것으로 예상된다.

이러한 소프트웨어를 빌드해서 실제로 돈을 벌 수 있을지에 대해서는 굉장히 의문스럽고, 아마도 실패할 수도 있고 매우 힘들겠지만, 그래도 빌드하는 과정은 인생을 한번 걸어보고 싶을 정도로 재미있을 것 같기는 하다.

LLM과 Autonomous Agent에 대한 단상 더 읽기"

Hard Things: 불확실성

올해의 방향성을 논의하면서 여러가지 사업 기회나 제품의 방향성에 관한 아이디어들이 다루어진다. 어떤 것들은 새로운 것이 아니고 오랫동안 논의되어오고 그동안 중요하게 고려되어온 것들도 있다. 하나하나의 아이디어들을 보면 모두 좋은 기회들과 고객에게 전할 수 있는 가치들이 숨어있다.

이어서 얼마나 많은 자원이 투입되어야 하는가, 이를 둘러싼 비즈니스 환경이 어떠한가, 마일스톤 내에 가능한가와 같은 의견들이 개진된다. 물론, 여러가지 어려움이 있지만, 그러한 어려움을 헤쳐나간다는 가정 하에 어떤 것들은 실행가능해보인다. 어떤 것들은 그렇지 않다. 추가적인 투자가 필요하거나, 마일스톤 내에 성공이라고 부를만한 충분한 진척을 내기 어렵거나, 결코 녹록치 않은 경쟁 환경인 경우들이다.

그러한 기준들을 통과한 아이디어들에 대해서, 마지막으로 매우 구체적인 숫자로 표현된 회사 목표를 달성할 수 있는지를 검토한다. 여기서 많은 아이디어들은 ‘불확실’하다. 아마 누구라고 하더라도, 어떠한 사업이나 제품 방향성이 완벽하게 실행이 되었을 때, 100%의 확률로 구체적인 기한 내에 구체적인 매출이나 이익을 낼 수 있을거라고 장담하기 어렵다. 실은 50%의 확률로 그러하다고 장담하는 것도 쉽지는 않다.

자리로 돌아와서 모호하게 표현된 가능성에 대한 의견들을 수치화할 수 있는 방법에 대해서 생각한다. 구체적인 숫자로 표현된 회사 목표에 대해 잠시 눈을 감을 수는 없는가 생각을 한다. 좋은 아이디어들은 많이 있다. 분명히 회사의 가치에도 제품의 품질이나 고객의 만족에도 도움이 될 것이다. 구체적인 숫자는 잠시 무시하고 가장 커다란 가치를 줄 수 있는 것에 ‘도전’할 수는 없나 생각을 한다. 하지만, 곧이어 짧은 기간의 성공 가능성도 확신할 수 없다면, 어떻게 장기적인 성공 가능성에 주어진 자원을 모두 투자할 수 있는지, 또한 장기에 걸친 실행 자체도 구체적으로 표현된 마일스톤 없이는 위태로운 것이 아닌가 하는 생각으로 이어진다.

어렵다. 아마도 모든 회사의 대부분의 사업 기회들과 제품 아이디어들은 그러할 것이다. 기회들과 아이디어들은 대개 제어할 수 없는 요인들과 불확실성을 가지고 있다. 훌륭한 아이디어처럼 보이는 것들에 대해서 얘기하는 것도 그에 대해서 동의하는 것도 쉬운 일이다. 하지만, 실제로 그 훌륭하다고 말하는 아이디어에 가장 중요한 무언가를 걸고 헌신하는 것은 완전히 다른 문제이고 어려운 일이다.

그러한 불확실성 속에서 가장 좋은 결정을 할 수 있는 능력 만큼이나 용기도 중요한 것 같다. 어쩌면 그 둘은 같은 것일지도 모른다.

Hard Things: 불확실성 더 읽기"

듄 – 파트 2

IMAX 극장 갈만한 시간을 찾다가 차라리 그만한 작품이라면 두번 볼 요량으로, 동네 극장 심야상영을 저렴하게 보고 왔다. 아내가 여행간터라 휴가를 쓴 터라 평일이지만 마음 편하게 다녀올 수 있었다.

듄 시리즈가 예지력과 정신훈련, 인간 컴퓨터와 같은 소재를 사용하는 소설이다보니, 원작에는 내적 대사가 상당히 많은데, 이를 드러내기 위해서 내적 대사를 다른 인물이 말하도록 한 장면들이 많이 보였다. 원작을 읽지 않은 관객들이 대부분일 것을 감안하면 전반적으로는 나쁘지 않았다고 생각한다. 다만, 이로 인해 가장 많은 영향을 받은 것은 폴의 의지에 대한 챠니의 입장을 반동으로 설정한 것 같아서 마음에 많이 걸렸다. 조금 더 입체적인 인물로 만들기 위한 각색 정도로 볼 수는 있을 것 같다. 또한, 1편에서와 마찬가지로 제시카의 영향력이 많이 축소된 점도 계속 마음에 걸렸다. 내 기억이 맞다면 폴의 여동생 알리아를 대변하는 것 같은 장면은 없었던 것 같은데 줄곧 대변자 정도로만 행동한 것 같아서 아쉬웠다.

원작에 대비한 인물들의 중요한 변화에도 불구하고 원작의 세계관과 이어지는 상당히 많은 부분들 – 정치적인 이해 관계와 생존을 위한 프레멘의 문화, 생명의 물에 관련한 요소 – 을 한정된 시간 안에 이토록 자연스럽게 넣을 수 있었던 것은 칭찬받아 마땅하다고 생각한다.

듄 1권의 후반에 해당하는 영화이기 때문에 대단원에 해당하는 전투와 결투, 검투사 시합 등이 들어갔다. 영화를 보기 전에도 영화로 만들었을 때도 대중들을 만족시키기 좋은 요소라고 생각했다. 대규모 전투도 멋있는 비주얼의 장비들과 웅장한 음악, 있음직한 전개로 상당히 만족스럽게 그려졌다.

인물들의 모습들에서 의외였던 것 중 하나는 페이트 로타였다. 소설 속에서는 준수한 외모이지만 잔인한 성격을 가진 인물이지만 영화에서는 하코넨의 주요 인물들과 대중들은 모두 대머리..로 잔인한 성격을 외모에 반영함과 동시에 전체주의적인 하코넨 사회의 모습을 간명하게 그리려고 한 것 같다.

반대 의미로 의외였던 것은 비중이 높아진 이룰란 공주의 복장들이 많은 공을 들인 것처럼 참 아름다웠다는 것이다. 듄의 메시아에서는 이룰란 공주의 역할이 좀 더 늘어나는 만큼 후속 작품도 만들어지면 참 좋겠다는 생각을 했다.

원작에서 폴은 자신이 예지하고 선택한 미래에 대해 회의와 책임, 결심을 반복하는데 누구에게도 떠넘길 수 없는 무앗딥만의 고뇌로 그려진다. 그러한 고통 하에서도 지속적으로 위안으로 삼는 곳은 챠니에 대한 사랑이었다. 그렇기에 챠니와의 사랑이 싹트는 장면에서 폴이 챠니의 다른 이름인 “시하야”를 부르는 순간 눈시울이 붉어졌다.

듄 – 파트 2 더 읽기"

Artificial Condition: The Murderbot Diaries

머더봇 다이어리 2권, Artificial Condition을 읽었다.

1권의 사건 이후로 일종의 자유를 얻게된 머더봇은, 처음으로 자신의 목적에 따른 여정을 떠나게 된다.

회사의 소유는 아니게 되었지만 여전히 SecUnit이 홀로 다닌다는 것은 인간들에게 커다란 위협이다. 인간사회로부터 이목을 끌지 않기 위해 노력하는 과정들이 흥미롭고, 결국 어느 정도 성공한 것으로 보인다. 특히 인간들과도 어울릴 수 있게 된 점으로 인해 시리즈의 후속편들에서 여러가지 전개의 가능성이 열리게 된 것 같다.

이 책에서 가장 즐거웠던 것은 머더봇이 ART (Asshole Research Transport)라고 부르는 연구용 수송선과 티격태격 대는 장면들이었다. 드라마를 함께보며 신뢰를 쌓고 서로의 의도를 알아채고 행동을 하는, 인간으로 말하자면 우정을 쌓으며 사건을 해결해나가는 과정이 재미있었다.

1권과 마찬가지로 2권의 사건도 격렬한 전투로 마무리가 된다. 마치 액션 영화를 한편 본 느낌.

이야기가 진행되는 공간의 범위가 크게 넓어지면서, 머더봇이 설명하는 인간들의 모습이나 네트워크와 봇들과 어울려 살아가는 인간 사회의 모습이 꽤나 있음직하고 자세하게 묘사되었다. 이후의 이야기들도 기대가 된다.

Artificial Condition: The Murderbot Diaries 더 읽기"

삼체 1부: 삼체 문제

류츠신의 삼체 1부를 읽었다.

삼체 세계라는 3개의 항성을 가진 행성의 문명과 인류가 조우하는 이야기를, 삼체 게임을 통한 삼체 세계에 관한 설명, 문화혁명으로 시작하는 예원제의 비극적인 삶, 과학자들의 자살 사건으로 시작하는 미스테리와 충돌이라는 3가지의 흐름으로 풀어내고 있다.

이 작품에서 가장 매력을 느꼈던 이야기는 예원제의 이야기였다. 문화혁명에서 소신을 굽히지 않았던 과학자 아버지를 잃고 자신도 반동분자의 자식으로서 정신적인 고통과 고초를 겪는다. 과학자로서 예전에 했던 연구를 의미를 알아보는 사람이 있어서, 양탄일성과 함께 시작된 국가 프로젝트의 격리된 시설에서 외롭고 생존을 위한 치열한 삶을 살아간다. 예원제의 이야기는, 소설의 다른 이야기들과는 달리, 국가 또는 대중의 개인에 대한 폭력이 얼마나 개인에게 상처를 줄 수 있는지, 그리고 정치적인 관념이 과학을 지배할 때 어떠한 일이 일어나는지를 섬세하게 보여주어, 이 소설의 주인공과 주제는 예원제의 삶이 아닐까 생각했다.

삼체 문명과의 조우 사건이 전개되는 과정에서 일반해가 없다고 증명된 삼체 문제를 몬테카를로 방법으로 풀려고 사도한다든가, 우주엘리베이터에 사용될 수 있는 강도를 가진 나노 소재 연구라든가, 소립자의 차원을 조작해서 직접회로를 만든다든가 하는 SF 소설을 읽는 사람들이 즐길만한 소재들도 상당히 많이 활용되었다. 개인적으로는 과학적인 소재에 대한 설명을 줄이고 좀 더 인물들의 생각과 대화에 좀 더 비중을 두었다면 이미 훌륭한 작품이 더욱 훌륭한 SF 고전이 되지 않았을까 생각한다. 하지만, 저자의 맺음말에서도 오히려 과학적인 소재에 치중하는 중국 SF계의 유행을 벗어나기 위해 의식적으로 노력을 기울인 결과임을 알고나서는 어느 정도 이해가 되었다.

삼체 1부: 삼체 문제 더 읽기"

다섯번째 계절

N. K. 제미신의 부서진 대지 3부작의 1권인 다섯번째 계절을 읽었습니다.

서로 다른 시간과 장소에서 세 갈래의 이야기가 각각의 강렬한 사건으로 시작합니다. 이 책을 읽으며 이야기 속의 세상과 삶이 어떻게 이루어져 있는지 배우고, 절반 정도에 이르면 어느 정도 익숙해집니다. 하지만, 이것으로 끝나지 않고, 이 책의 마지막 장까지 놀라움은 끊이지 않습니다.

주인공들과 이 세상의 사람들은 (우리와 별 다를 것 없이) 고통 한가운데에서도 한 줌의 평범한 삶과 자유를 구합니다. 주인공들이 욕지거리를 하거나 그저 침묵으로 말을 하며 감정을 드러내지 않을 때에도 깊이 감정이 전해졌습니다.

마지막에 이르러 세갈래의 이야기가 만나며 이제서야 이야기가 시작되었다고 말합니다.

다섯번째 계절 더 읽기"

나이브스 아웃: 글래스 어니언

셜록 홈즈와 같은 추리소설에서 흔히, 독자들은 사건의 상황과 이를 둘러싼 인물들을 파악하는데에 집중하고 이윽고 대체 무슨 일이 벌어졌지라고 생각할 무렵, 탐정은 독자들이 거의 신경을 기울이지 못했을 법한 사소함으로부터 사건의 실마리를 찾고 논리를 통해 결론을 짓는다. 글래스 어니언에서도 ‘세계 최고의 탐정’은 비슷한 일을 해낸다. 하지만 글래스 어니언과 추리소설들과의 차이는 탐정이 근거를 제시하는 것들 중 일부는 시청자들도 이미 함께 봤던 것이라는 점이다. 함께 보고 함께 들었는데도 난 그냥 지나쳤고 탐정은 거기에서 중요한 단서를 찾아냈다는 것은 그야말로 가장 높은 수준의 묘미를 보여준 것이 아닌가 싶다.

전체 이야기에서도 매우 독특한 상황과 역시 독특하고 다양한 인물들, 화려한 장소에 대해서 시청자들이 탐색하고 파악하느라 바쁜 와중에, 이미 사건들은 모두 발생했고, 그조차도 탐정의 계산 하에 있었다는 전개는 추리소설 특유의 재미를 한껏 보여주었다고 생각한다. 그런 탐정은 뻔뻔하게 나의 관할은 사실을 찾아내고 그 정보를 경찰이나 검찰에게 제공하는 것까지라는 말을 반복한다.

한편으로는, 나의 삶에서도, 어떤 사람의 겉으로 드러난 이미지나 어떤 사건이나 상황에 대해 표면적으로 드러난 것만 가지고 많은 사람들이 생각하는 것에 빠지지 않고, 이면에 존재하는 진실한 모습과 사실에 기초한 진정한 이해를 추구할 수 있는 한해가 되었으면 좋겠다는 생각을 하게 하는 영화였다.

나이브스 아웃: 글래스 어니언 더 읽기"