✍️ 글

리눅스 30주년 맞이 리누스 토발즈 인터뷰 번역

리눅스 탄생 30주년을 맞아 리누스 토르발즈와 진행한 인터뷰. 리눅스와 오픈소스에 대한 토르발즈의 많은 생각을 엿볼 수 있는 글입니다.

개인적으로 흥미로웠던 내용은, 토르발즈가 버전 관리 시스템 git을 만든 이유가 단순히 자신이 필요해서라는 점이었고, 그렇다보니 프로젝트를 오래 관리할 생각이 없어서 git을 만든 다음 해에 바로 메인테이너를 넘겨줘버렸다고 하는 것입니다.

또한 리눅스 라이센스를 정했던 내용과 git에 담긴 철학 등을 살펴보면, 토르발즈가 누구나 자유롭게 코드를 개발할 수 있고, 누구에게나 배타적이지 않은 개발 생태계를 구성하는 것을 굉장히 중요시 여긴다는 점을 알 수 있었습니다. (근데 왜 그렇게 말은 거칠게 하는지…)

한국어 번역이 매우 잘 되어있어서 전문을 읽어보시는 것을 추천드립니다.

Monetizing open-source is problematic

오픈소스 라이브러리인 Faker.js의 개발자가 라이브러리를 유지하는 데에 금전적인 문제를 겪고 있었고, 이를 해결하기 위해 Faker.js에 도네이션을 하고 있던 Retool에 프로젝트를 매각하려다 실패한 이야기.

전체 내용을 요약하면 위와 같은데, 본문의 뉘앙스는 좀 많이 다르니 본문을 읽어보시는게 좋습니다.

오픈소스로 돈을 버는 문제가 점점 이슈가 되고 있는데요. 과거에는 좋은 프로덕트를 만들면 사용하는 사람들이 그에 대한 충분한 보상을 해줄 것이다라는 믿음이 있었다면, 요즘은 클라우드 제공자들이 오픈소스를 가져와 프로덕트화 하면서 자신들이 만든 것처럼 돈을 주고 파는 상황이 빈번해지고 있는데요. 그러다보니 Elastic이나 MongoDB에서는 클라우드 제공자들이 자신들의 프로적트를 SaaS로 제공하는 것을 라이센스 변경으로 제한하기도 했죠.

오픈소스 개발자들이 노력한만큼의 합당한 보상을 받을 수 있는 시대가 올까요?

+) Faker.js의 개발자 Marak은 지난 해 자신이 살던 집이 불타서 금전적 어려움을 겪으면서 더 이상 무료로 Faker.js 개발을 하지 않겠다라고 말해 유명해지기도 했습니다.

잘못 구현한 다익스트라 알고리즘 저격하기

한 개의 정점에서 다른 모든 정점으로 가는 최단 거리를 구하는 다익스트라 알고리즘은 프로그래밍 문제에 단골로 등장하는 대표적인 알고리즘 중 하나입니다.

그러나 실제로 구현하다보면 잦은 실수가 발생하는 알고리즘이기도 한데, 그런 실수가 어떤 worst case에서 시간복잡도에 문제를 발생시키고, 출제자의 입장에서 이러한 실수를 잡아내기 위해서 어떤 테스트 케이스를 의도적으로 만들어야하는 지를 다룬 글입니다.

추가로, 다익스트라 알고리즘을 가르칠 때 어떠한 방식으로 접근하면 좋을 지를 다룬 트위터 글타래도 함께 읽어보시면 좋습니다.

Sorry everybody, I failed with you

2만개가 넘는 Star를 받은 문서 생성 도구인 docz가 작년 거의 유지보수가 이루어지지 않았는데, 이에 대해서 프로젝트 메인테이너가 남기는 사과의 글.

메인테이너는 이 프로젝트를 개발하기 위해 3시간 일찍 일어나고 3시간 늦게 자는 생활을 반복해왔다고 하는데, 이러한 과도한 스케쥴 때문에 번아웃이 와서 한해동안 자신의 육체적/정신적 건강을 위해서 개발을 하지 않았다고 합니다.

오픈소스는 결국 개발자들의 자발적인 재능 기부로 이루어지는 것이니만큼, 번아웃이 오지 않게 하기 위해서는 동기부여가 중요할텐데요. 이 글에 달린 댓글에는 개발자를 위한 금전적인 지원도 물론 좋지만, 오픈소스 개발자들에게 간단하고도 쉽게 동기부여를 할 수 있는 방법은 자신들이 이 프로젝트를 쓰고 있다는 사실을 말해주는 것이라고 합니다.

우리들이 이 프로젝트를 쓰고있고, 당신들인 시간과 노력이 우리들에게 큰 도움이 되고 있다고 말이지요.

The top-ranking HTML editor on Google is an SEO scam

다수의 유명한 HTML 포맷팅 도구들이, 유저 몰래 특정 사이트로의 하이퍼링크를 HTML에 삽입해서, 해당 사이트의 구글 검색 순위를 올리는 SEO 스캠 행위를 하고 있다고 고발하는 글.

글 작성자는 유명한 스코어보드 웹 서비스를 만드는 개발자인데, 자신의 서비스가 구글 검색 순위에서 늘 두번째에 위치하는 것을 보고 대체 첫번째 서비스가 뭘까, 하고 알아보다가 이런 사실을 발견하게 되었다고 합니다.

📰 기술 뉴스

Stack Overflow Sold to Tech Giant Prosus for $1.8 Billion

개발자들의 영원한 친구 스택 오버플로우가 유럽의 거대 기술 투자사인 Prosus에 매각되었습니다.

Prosus는 텐센트의 최대 주주로 유명하고, Udemy나 Codeacademy 같은 기술 교육 업체에도 많은 지분을 가지고 있는 것으로 알려져 있는데요.

앞으로도 스택 오버플로우가 독립적으로 잘 운영될 수 있을지, 혹은 많은 변화를 겪게될 지 궁금해지는 상황입니다.

Fastly Outage

우리나라 시각으로 6월 8일, 세계적으로 많은 사이트(스택오버플로우, 레딧, 영국 정부, …)가 동시다발적으로 다운 되는 사태가 발생했는데요. 그 원인으로 CDN 업체인 Fastly에서 문제가 발생했다는 것이 밝혀졌습니다. 다만 상세한 내용은 공개되지 않은 상태입니다.

2019년에 있었던 Cloudflare 사태도 그렇고, 글로벌하게 네트워크 인프라를 제공하는 회사에 문제가 생겼을 때 얼마나 큰 영향이 발생하는 지 알 수 있었던 상황이었습니다.

흥미롭게도 미국에 상장된 Fastly의 주가는 이슈가 발생한 당일, 문제가 해결되고 나서 18%넘게 오르고 마감했는데요. 문제가 발생했다는 사실 그 자체보다는, B2B 사업을 위주로 하는 Fastly가 생각보다 엄청 글로벌한 기업들에 서비스를 제공하고 있었구나라는 걸 사람들이 알게되어서가 아닐까 하고 조심스레 추측해봅니다. 🤔

토스뱅크 출범

토스에서 케이뱅크, 카카오뱅크 다음으로 우리나라 세번째 인터넷은행인 토스뱅크를 출범합니다. 초대 대표인 홍민택 대표는 삼성에서 삼성페이 사업을 담당하셨던 분이라고 합니다.

보험에, 증권에, 이제 은행까지 말그대로 올인원 앱을 지향하는 토스의 행보가 얼마나 성공할 수 있을지 기대반 걱정반인 상태인데요. 아무래도 토스의 가장 큰 경쟁자는 여러 핵심 사업에서 맞부딫히는 카카오가 될텐데, 토스가 얼마나 시장의 파이를 차지할 수 있을지 흥미롭게 지켜볼 수 있을 것 같습니다.

Windows 11

마이크로소프트의 새로운 Windows OS인 Windows 11이 공개되었습니다.

전체적으로 디자인이 동글동글해지고 깔끔해진 모습인데요. 모바일과 PC 환경을 통합하려는 마이크로소프트의 의도가 느껴지는 부분인 것 같습니다.

한 가지 흥미로운 기능으로는 윈도우즈에서 안드로이드 앱을 네이티브로 지원하는 WSA(Windows Subsystems for Android)인데요. WSL을 성공적으로 안착시킨 윈도우즈가 안드로이드에도 손을 뻗치는 모습이네요. 얼마나 성공적인 기능이 될 지 지켜볼 가치가 있을 듯 합니다.

⚙️ 소프트웨어 / 프로젝트

DevBook

스택 오버플로우나 공식 문서를 빠르게 검색할 수 있게 해주는 데스크탑 애플리케이션.

단축키로 껐다 켤 수 있고 굉장히 빠르고 가볍습니다.

이런 식의 아이디어는 굉장히 여럿 봐왔는데 그 중에서 가장 깔끔하고 사용하기 좋게 만들어진 듯 합니다.

다만 이런 프로그램의 한계는 결국 복잡한 정보를 찾고 비교하려면 웹 브라우저를 써야한다는 것인데, 실제 개발환경에서 얼마나 유용하게 사용할 수 있을지는 다소 의문스러운 부분입니다.

Flat Data

깃헙에서 공개한 데이터 ETL 도구.

간단한 수준에서 주기적으로 데이터를 수집하고 저장해야할 필요가 있을 때, Cron 형태로 동작하는 CI 도구와 깃헙은 꽤나 유용한 조합인데요. 깃헙에서 이러한 작업을 쉽게 개발할 수 있게 해주는 도구셋을 공개했습니다.

  1. 정해진 API에서 데이터를 읽어오고 후처리한 후 깃헙에 업로드해주는 Github Actions
  2. 업로드된 데이터를 브라우저상에서 볼 수 있게 해주는 도구

해당 도구를 공개한 Github OCTO는 깃헙 CTO인 Jason Warner를 중심으로 개발자들을 위한 도구를 개발하는 팀이라고 하는데요.

Flat Data를 시작으로 앞으로도 다양한 프로젝트가 공개될 듯한데 기대가 됩니다.

nnn

터미널 기반 파일 매니저.

비슷한 대용품으로는 ranger가 있습니다.

ranger는 파이썬으로 짜여있고, 기본 설치만 해도 많은 것들이 포함되어 무거운 것에 비해, nnn은 C로 만들어졌고, 각종 플러그인들을 직접 설치해야 하지만 아주 가볍습니다.

개인적으로는 터미널 환경에서 파일 매니저의 필요를 느낀 적이 없어서 많이 써보지는 않았는데, 콘솔 환경에서의 작업을 좋아하는 분들이라면 가지고 놀기에는 이만한 도구가 없는 듯 합니다.

WebContainer

브라우저에서 구동되는 Node.js.

WebAssembly의 등장으로 브라우저에서 할 수 있는 작업이 폭발적으로 늘어나고 있는데요. 이번에는 StackBlitz라는 회사에서 Node.js를 브라우저에서 구동하는 서비스를 공개했습니다. 클라우드 서버를 이용하는 일반 원격 개발환경과는 다르게 브라우저상에서 Node.js 개발 환경을 제공합니다.

소스코드는 공개되어 있지 않고, StackBlitz 홈페이지에서 베타 버전 서비스를 이용해볼 수 있습니다.

Pyodide

브라우저에서 구동되는 파이썬.

이 프로젝트도 WebContainer처럼 WebAssembly를 기반으로 합니다. 모질라에서 시작한 프로젝트인데, 지금은 모질라가 주도적으로 개발하고 있지는 않은 듯합니다.

로드맵을 살펴보면 아직 갈 길이 멀어보이기는 하는데, 이 역시 흥미로운 프로젝트인 것은 분명하네요.

REPL 콘솔을 통해서 체험해볼 수 있습니다.

Open Source Insights

구글에서 실험적 프로젝트로 공개한 오픈소스 프로젝트 의존성 검색 도구.

현재는 JavaScript(npm), Java(Maven), Go, 그리고 Rust(Cargo)를 지원합니다.

특정 오픈소스 프로젝트가 어떤 라이브러리에 직접/간접적으로 의존하는지, 해당 라이브러리의 라이센스는 무엇인지를 알 수 있는데요. 기업에서 특정한 오픈소스를 도입하고자 할때 기술 스택을 파악하고 라이센스를 검사할 때 사용해보면 좋을 듯 합니다.

구글이 만든 프로젝트는 언제 소리소문없이 사라질지 모른다는 특징이 있긴 합니다만… 앞으로도 열심히 발전해서 유용한 도구가 되었으면 하는 바람입니다.

New Github Issues

깃헙이 새로운 형태의 Issues 베타 버전을 공개했습니다.

마치 스프레드시트를 사용하는 것처럼 사용할 수 있는 모델인데요. 기존 Issues가 누구나 쉽게 사용할 수 있는 형태의 디자인이었다면, 새로 공개된 Issues는 복잡하지만 더 많은 걸 할 수 있는 디자인을 지향하는 것으로 보입니다.

지금까지 깃헙의 행보를 보면 다른 서드파티가 지원하는 기능들을 다 통합한 올인원 개발 플랫폼이 되겠다고 하는 의지가 뚜렷한데요. 깃헙이 추구하는 대통합이 과연 가능할지 지켜보는 것도 흥미로울 것 같습니다.

Github Copilot

깃헙에서 OpenAI와 협업해서 만든 머신러닝 기반 코드 자동완성 도구.

기존에도 Kite처럼 머신러닝을 이용해 간단한 자동완성을 지원하는 도구들은 더러 있었지만, Copilot은 단순한 자동완성 수준이 아니라 완전한 함수 수준의 코드를 생성해준다는 것이 특징인데요.

예를 들어, “이 함수는 이런이런 기능을 하는 함수야"라고 주석을 작성하면, 해당 주석의 내용을 바탕으로 완전한 함수 전체를 생성해준다는 것이죠.

알파 테스트를 통해 2주간 Copilot을 사용해본 사람들의 반응을 살펴보면, 아주 대중적이고, 복잡하지 않은 케이스, 대표적으로는 React나 Angular의 컴포넌트를 작성하는 등의 작업을 할 때의 적중률이 높았다고 합니다. 그리고 적중률의 높낮이와는 별개로, 도구의 이름처럼 AI와 페어 프로그래밍을 하는 느낌을 많이들 받았다고 합니다.

한편으로는 법적 문제를 걱정하는 의견들도 꽤 보였는데요. 깃헙에 공개된 코드를 바탕으로 학습한 모델이다보니, 생성된 코드의 라이센스 문제, 생성된 코드가 다른 코드와 표절 시비에 걸렸을 때의 법적 문제 등을 걱정하는 의견들이 있었습니다. 이 또한 앞으로 흥미로운 논의거리가 될 것 같습니다.

📙 책 / 강의 / 영상

rustlings

컴파일 에러를 고쳐가며 배우는 러스트.

단순히 튜토리얼을 읽는 것보다 몰입감있게 러스트를 배울 수 있습니다.

스타트업을 만나다

지난 5월 OSS개발자포럼에서 진행한 온라인 행사.

Backend.AI를 만드는 래블업의 CTO 김준기님, 강남언니를 만드는 힐링페이퍼의 CTO 이규원님 등, 스타트업계에서 굵직한 경력을 가진 CTO급 임원 분들이 자신의 경험과 생각을 이야기해주는 영상입니다.

조직을 이끌어나가는 입장에 계신 분들이, 회사에서는 어떠한 사람을 원하고, 어떤 문화를 만들어나가고 싶어하는지를 들을 수 있는 유익한 내용입니다.

덤으로 각각의 발표자분들이 자신의 회사에 들어온 이력서를 평가하면서, 이력서의 어떠한 부분을 좋게 보았고, 어떠한 부분은 부족하다고 생각하는지도 들을 수 있어서, 이력서를 작성하는 주니어 개발자들도 한번쯤 들어보시면 좋을 것 같습니다.

Pycon US 2021

지난 5월 14일부터 18일까지 온라인으로 개최된 Pycon US 2021 영상이 공개되었습니다.

도합 80개가 넘는 키노트, 강연, 튜토리얼 영상들이 있습니다.

제목만 살펴봐도 아주 유익해보이는 영상들이 많은데요. 기회가 되면 몇가지를 큐레이션해서 정리할 예정입니다.