GN⁺: 개인 리더를 통한 웹 재정복
(olano.dev)개인 리더로 웹을 되찾기
- 경력 소진을 경험한 후, 소프트웨어 산업에 대한 환멸을 느낌.
- 일을 멈추고, 생활 습관을 개선하며, 소셜 미디어를 끊음.
- 생산성에 대한 압박을 극복하는 것이 도전이었음.
Mastodon과의 만남
- Mastodon을 통해 피드를 다시 통제하고, 소프트웨어 산업과 웹에 대한 불편함을 느끼는 사람들을 발견함.
- Mastodon이 정보 허브로서는 적합하지 않다고 느낌.
IndieWeb 운동과 소셜 리더
- IndieWeb 운동과 소셜 리더 개념을 알게 됨.
- 필요한 것은 마이크로 블로깅이 아닌, 취향에 맞게 조정할 수 있는 피드 리더였음.
목표 설정
- 사용자로서, 이메일 인박스가 아닌 소셜 미디어 홈 피드와 같은 경험을 원함.
- 소셜 기능 구현에 관심 없음.
- 개발자로서, 사용자 경험을 최우선으로 하고, 개발 편의보다 운영의 용이성을 중시함.
설계
- 웹 애플리케이션으로 접근 가능하도록 UI 설계.
- 서버 측 렌더링 라이브러리를 사용하여 단순하고 동적인 웹 UI 구현.
- 모놀리식 웹 애플리케이션을 선택하고, SQLite를 데이터베이스로 사용함.
개발 언어 및 테스팅
- Go 언어를 고려하였으나, Python을 선택하여 프로토타입을 빠르게 개발함.
- 초기 단계에서는 테스트 작성을 하지 않음.
개발 과정
- 사용자로서 앱을 경험하며 개발함.
- 기본 기능을 갖춘 후, 피드의 정렬 방식을 개선함.
- 라즈베리 파이 서버를 통해 지속적으로 앱을 사용하고 개선함.
결론
- 개인 피드 리더 'feedi'를 개발하여 소프트웨어 개발과의 재연결에 성공함.
- 'feedi'를 인터넷의 첫 페이지로 사용하며 정보 소비에 대한 통제를 되찾음.
GN⁺의 의견
- 이 글의 핵심은 개인적인 필요와 불만에서 출발하여 자신만의 솔루션을 만드는 과정임.
- 소프트웨어 개발에 대한 열정을 재발견하고, 사용자 경험을 최우선으로 하는 개발 철학이 돋보임.
- 이 글은 개발자들에게 자신만의 도구를 만들어보는 것의 가치와 즐거움을 전달함으로써 흥미롭고 매력적임.
Hacker News 의견
-
URLwatch 설정에 대한 만족감
- URLwatch를 설정하는 것이 매우 즐거움.
- Puppeteer를 넘어 Chrome 인스턴스를 부팅하여 자바스크립트가 있는 웹사이트를 스크랩할 수 있게 되면 웹을 푸시 방식으로 제어하는 듯한 느낌.
- 아침에 간단히 확인할 수 있도록 웹사이트를 모니터링하는 것의 힘:
- 좋아하는 회사의 새로운 채용 공고
- 현재 회사의 채용 공고/마감
- 세일 중이거나 재입고 대기 중인 제품, 리퍼브 상품
- 코로나 바이러스 관련 하수도 통계
- 아파트 목록
- 관심 있는 GitHub 릴리스
- 중요 웹사이트의 법적 문서
- 개인적으로 Digital Ocean 드롭렛을 $5에 임대하여 RSS 리더, 개인 텔레그램 봇 등을 호스팅하고 실험을 위한 작은 HTTP 사이트를 설정하는 데 유용함.
- 랩톱에서도 가능하지만 매일 같은 시간에 실행할 필요는 없음.
-
"당신의 IT인"에 대한 상상
- "당신의 IT인"이라는 개념에 대한 환상.
- 현지 이발사, 일반의, 재단사 또는 제빵사처럼 디지털 생활의 일부를 담당하고 개인화된 피드를 제공하며 개인 정보/건강 문제를 관리함.
- 영화, 기사, 밈, 재미있는 비디오 등을 사용자의 피드 리더와 연결하는 간단한 인터페이스나 "오픈 프로토콜"을 사용함.
- 커뮤니티가 운영하는 지역 데이터 센터나 가정 인터넷 연결을 통한 간단한 콘텐츠 서비스 제공에 대한 아이디어.
- 개인 디지털 큐레이터(인공지능 지원 가능)가 모두 지속 가능하고 개인 정보 보호가 중시되며 건강한 가상 솔라펑크 세계의 일부임.
- 피드버스로 이동한 후 더 건강해졌다는 이야기를 들은 것은 처음이 아님.
- Puppeteer를 기반으로 한 스크립트와 미니 앱을 사용하여 요약 및 추천을 제공하며, 완벽하지는 않지만 이 분야에 더 많은 노력을 기울이고 관련 오픈소스 프로젝트를 찾아볼 계획임.
- 친구와 가족들에게 이 아이디어를 제공해보고 그들의 반응을 확인할 예정이며, 이 스크립트들을 "브라우저가 아님"이라고 명명함.
-
개인 피드의 확장에 대한 욕구
- 개인 피드를 단순히 시간 제한이 있고 산만함이 없는 피드로 확장하고자 함.
- 팔로우하는 모든 글 콘텐츠를 포함하는 피드를 만들고 매일 약 30분 분량의 읽을 거리를 선택하도록 함.
- ChatGPT를 사용하여 가장 "영양가 있는" 콘텐츠를 필터링하거나 다른 도구를 사용하지만, 가치 있는 콘텐츠에 우선순위를 둠.
- 이 콘텐츠를 Kindle이나 remarkable 태블릿으로 전달하여 색상과 깜박임, 빠른 인터넷으로부터 벗어남.
- 두 번째 단계로 친구의 피드를 구독하고 가끔 그들의 피드에서 "게스트" 콘텐츠를 받을 수 있음.
-
자동화된 테스트를 건너뛴 결정에 대한 공감
- 처음에는 자동화된 테스트를 걱정하지 않는 결정에 공감함.
- 개인적인 장난감 프로젝트를 구축할 때 테스트 인프라와 CI 파이프라인을 구성하는 데 시간을 낭비하는 대신 일정한 모멘텀을 얻는 데 집중함.
- 테스트가 문제가 되기 시작하면 그때 추가할 수 있음.
-
유용한 개인 소프트웨어 구축에 대한 긍정적인 경험
- 유용한 개인 소프트웨어를 구축함으로써 다시 일을 즐길 수 있게 됨.
- "비전통적인" 기술을 자유롭게 사용할 수 있는 이점도 있음.
- 개인적인 사용을 위한 저장소에서 새로운 기술과 최적화를 발견하고 이를 주요 작업에 적용할 수 있음.
-
"아무것도 하지 않는 방법"에 대한 추천
- Jenny Odell의 책 "How to do nothing"을 추천함.
- 주의 경제에 의해 부과된 가짜 "생산성" 압박에 대해 느끼기 시작하는 사람들에게 유용함.
-
"피드" 정신에 대한 지지
- 읽을 것들의 체크리스트보다는 "피드" 정신을 선호함.
- 여러 RSS 리더를 사용해봤지만, 관리해야 할 또 다른 인박스가 필요하지 않음.
- Feedi를 확인해볼 예정임.
-
미래에 대한 개인적인 생각 공유
- 이 게시물이 미래의 자신이 작성한 것처럼 느껴짐.
- 저자와 공통점이 많다는 사실에 놀람.
- 저자가 한 일이 자신이 휴식 시간에 하고 싶어하는 일과 거의 정확히 일치함.
- 오픈/IndieWeb에 참여하고자 하는 생각과 기술적 고려사항에 대한 공통점.
- 다른 사람이 자신의 생각과 느낌을 검증해주는 것에 기쁨과 동시에 저자가 먼저 그 길을 갔다는 것에 대한 질투감.
-
크루징 세일보트에서 필요한 기능에 대한 생각
- 해안을 지날 때 LTE가 있는 순간에 "지금 동기화"를 할 수 있는 기능.
- 기본적으로 모든 콘텐츠(이미지 포함)를 Readability와 로컬 캐시하여 오프라인에서 읽을 수 있음.
-
앱 접근성과 보안에 대한 고민
- 저자가 앱에 인증을 추가하여 어디서나 액세스할 수 있게 함.
- VPN을 사용하여 개인 웹 앱에 안전하게 액세스할 수 있는지에 대한 질문.
- 인증에 대한 이해가 복잡하고 유지 관리가 필요하다는 인식.