Upgrade to Pro — share decks privately, control downloads, hide ads and more …

야크 셰이빙: 새로운 오픈 소스의 원동력

야크 셰이빙: 새로운 오픈 소스의 원동력

야크 셰이빙(yak shaving)이란 원래 하려던 일을 하려다 “그 일을 더 수월하게 하기 위해서”라는 명목으로 원래 하던 일을 멈추고 다른 일을 시작하고, 또 그 일을 하기 위해 또 다른 일을 시작하는 식으로 일을 잔뜩 벌리는 것을 뜻합니다. 원래는 그렇게 일을 벌리기만 하다 결국 원래 하려던 일을 하지 못한다는 부정적인 뉘앙스를 품고 있지만, 야크 셰이빙이 반드시 나쁜 것만은 아닙니다.

발표자 홍민희는 분산형 소셜 네트워크인 연합우주(fediverse)의 열렬한 지지자로, 연합우주를 사용할 때 개인적으로 불편했던 점들을 고치기 위해 2년 전부터 Hollo, Fedify, LogTape, Hackers' Pub, Upyo, Optique, BotKit과 같은 여러 오픈 소스 프로젝트들을 연쇄적으로 만들게 되었습니다. 처음에는 아주 사소한 불편함을 해결하기 위한 것이었지만, 하다 보니 점차 다양한 부산물을 만들게 된 것입니다.

발표자는 지난 2년을 돌아보며 다양한 새로운 오픈 소스 프로젝트의 원동력이 될 수 있었던 야크 셰이빙 정신에 대해 이야기하고, 이 방식이 다른 사람들에게도 통할 수 있다는 이야기를 하려고 합니다.

Avatar for Hong Minhee (洪 民憙)

Hong Minhee (洪 民憙)

November 08, 2025
Tweet

More Decks by Hong Minhee (洪 民憙)

Other Decks in Programming

Transcript

  1. 洪⺠憙 (홍민희) hongminhee.org 커뮤니티와 기여 문화 야크 셰이빙: 새로운 오픈

    소스의 원동력 불편함에서 시작된 2년간의 여정 Scan for English slides! →
  2. 洪⺠憙 (홍민희) 오픈 소스 개발자 • 연합우주(fediverse)의 열렬한 지지자 •

    Fedify: ActivityPub 서버 프레임워크 • LogTape: TypeScript용 로깅 라이브러리 • Optique: TypeScript용 CLI 파서 • Hollo: 1인 사용자용 연합우주 서버 • Hackers' Pub: 해커들을 위한 소셜 미디어 연사 소개
  3. 간단한 작업 도구가 필요 도구 만들기 또다른 도구가 필요 이런

    경험 있으신가요? 문제 해결의 끝없는 반복
  4. 일반적 인식 • 비생산적 • 시간 낭비 …하지만 그 부산물들이

    가치가 있다면? 이 발표에서는 야크 셰이빙이 어떻게 2년 동안 5개 이상의 새로운 오픈 소스 프로젝트들을 이끌어 냈는지를 이야기합니다. 야크 셰이빙 원래 목표에서 점점 멀어지는 연쇄 작업
  5. 개인적인 딜레마 • 국한문혼용체로 글을 쓰고 싶다! • 하지만 젊은

    세대는 대체로 한자를 못 읽는다! 국한문혼용체 (國漢⽂混⽤體) 한글과 한자를 섞어 쓰는 한국어 표기
  6. 도전 • 연합우주1: Mastodon에서 어떻게 쓰지? • Mastodon은 <ruby> 태그를

    지원 안 함 1. 연합우주(fediverse)는 Mastodon으로 대표되는 상호 연결된 여러 소셜 미디어 서버들의 네트워크를 가리킴. 해결책: <ruby> 태그 국한문혼용체를 누구나 읽을 수 있게 漢字 → 漢字 한 자 <ruby>漢字<rt>한자</rt></ruby>
  7. Mastodon 패치하기? • 업스트림에 머지될 가능성 희박 • 한국에서도 나밖에

    안 쓸 것 같은데… Mastodon 수정해서 직접 운영하기? • 무거움 • 혼자 쓰기에는 부담스럽다 ActivityPub 구현 직접 만들기! • 경량, 1인 사용자용 • 모든 것을 내 마음대로 → Hollo 프로젝트 시작! 해결책 모색
  8. Hollo (1인 사용자용 ActivityPub 서버) → “ActivityPub이 너무 복잡해!” →

    Fedify (ActivityPub 서버 프레임워크) → “제대로 된 로깅 시스템이 필요해!” → LogTape (의존성 없는 로깅 라이브러리) → “CLI 파서 컴비네이터가 필요해!” → Optique (타입 안전한 CLI 파서 컴비네이터) → “이메일 발송 추상화가 필요해!” → Upyo (다중 벤더 이메일 발송 라이브러리) 도미노 효과 야크 셰이빙의 연쇄 작용
  9. Fedify의 여정 • 시작: Hollo 제작을 위한 개인적인 프레임워크 •

    2024年 6⽉: Ghost의 Fedify 도입 및 투자 • 2025年 10⽉: Sovereign Tech Fund가 €192,000 투자 • 다양한 연합우주 프로젝트에 쓰임 커뮤니티 기여 • Mastodon PR #30897: <ruby> 태그 지원 (Emelia Smith 님 감사합니다) • Misskey PR #15117: <ruby> 태그 지원 • 한국어 화자 뿐만 아니라 중국어와 일본어 화자에게도 도움이 됨 예상 못한 성과
  10. • 2023年 이전: “국한문혼용체로 연합우주에 글을 쓰고 싶다!” • 2023年末:

    Hollo 개발 시작 • 2024年初: Fedify 제작 • 2024年 중순: LogTape 제작 • 2024年 중순: Ghost의 Fedify 투자 • 2024年末: Hollo 첫 버전 릴리스 • 2025年 중순: Upyo 및 Optique 제작 • 2025年末: STF의 Fedify 투자 타임라인 두 해 동안의 야크 셰이빙 여정
  11. 국한문혼용체로 연합우주에 글쓰기 • 5개 이상의 오픈 소스 프로젝트 탄생

    • €192,000 펀딩 • 전세계의 다양한 사용자들 • 주요 프로젝트에 기여 (Mastodon, Misskey) • 흥하는 개발자 커뮤니티 원래 목표 실제 결과 원래 목표 對 실제 결과 때로는 목적지보다 여정이 더 값지다! 교훈
  12. 원칙 • 실제 문제에서 출발 • 각 단계를 완성할 것

    • 문서화와 공유 • 과정의 가치를 인정하기 역설 원래 목표에 도달하지 못할 수도 있다는 것을 받아들이면, 오히려 훨씬 더 많은 것을 성취하게 됩니다. 생산적인 야크 셰이빙