GN⁺ 2시간전 | parent | ★ favorite | on: Obsidian 플러그인의 미래(obsidian.md)
Hacker News 의견들
  • Obsidian CEO임. 새 Community 사이트와 리뷰 시스템을 출시하려고 거의 1년 동안 작업해 왔고, 이번 첫 버전이 매우 기대되지만 앞으로 개선할 것이 더 많음
    블로그 글, FAQ, 로드맵의 다음 단계까지 최대한 빠짐없이 쓰려 했지만 놓친 부분도 있을 테니 질문해도 좋음
    7명뿐인 팀이 수천 명의 플러그인 개발자와 수백만 사용자를 상대해야 해서, 서로 충돌하는 우선순위를 균형 있게 맞추는 일이 매우 어려웠음
    새 시스템은 쉽게 도입 가능하고, 하위 호환성을 유지하며, 기존 작업 흐름을 완전히 깨지 않으면서도 예전 방식보다 크게 나아져야 했고, 플러그인의 보안성과 발견 가능성을 점진적으로 높일 수 있어야 했음
    아직 진행 중인 작업으로 봐 주면 좋겠고, 아이디어와 불만을 듣고 계속 반복 개선하겠음
    • 여러 프로젝트에 플러그인을 붙여 왔고, 프로젝트가 특정 버전을 검토 완료·신뢰 가능으로 표시하는 구조를 도입해 볼까 생각한 적이 있음
      망설였던 이유 중 하나는 엄청난 시간 투자도 있지만, 사람들이 그 리뷰 절차에 의존하게 된 뒤 난독화된 악성 코드가 통과하면 이후 공격의 책임이 프로젝트에 돌아올까 두려웠기 때문임
      이 부분을 어떻게 보고 있는지 궁금함
      내게는 Debian/Ubuntu처럼 저장소 안의 모든 것을 엄격히 검토하는 방식과, 검토 보장을 전혀 하지 않는 PyPI/npm 방식의 차이처럼 느껴짐
    • 공개 정보에서 “플러그인이 외부 도메인 1곳에 요청할 수 있음”을 누르면 실제 도메인인 github.com이 보이는 점이 좋음
      예시는 https://community.obsidian.md/plugins/zotlit에서 볼 수 있음
    • 자동 스캔 시스템이 권한 범위 확장이나 네트워크 도메인 접근 변화를 내부/사람 리뷰 대상으로 표시하는지 궁금함
      예를 들어 AI 요약 플러그인이 처음에는 사용자가 제공한 OpenAI 키로 url="api.openai.com"+path에 접근한다고 하면 아주 흔한 형태일 것이고, 커뮤니티가 여기서 만들 것들이 기대됨
      그런데 업데이트 후 사용자가 OpenAI 호환 API로 임의의 엔드포인트를 고를 수 있게 된다면, 그 유연성을 악용해 스캔을 우회하는 네트워크 유출 경로를 만들고 악성 엔드포인트를 은근히 미리 채워 넣는 업데이트가 아니라는 것을 어떻게 보장할 수 있을까?
    • Obsidian 팀이 훌륭한 일을 했음. Obsidian Sync 사용자로 계속 남을 생각이고, 커뮤니티 플러그인을 더 안심하고 쓰게 되길 기대함
    • 드디어 나왔음
      Obsidian을 써 봤을 때 데이터 테이블 기능이 기본 내장이 아니라 전체 접근 권한을 가진 플러그인이라는 걸 알고 바로 지웠음
      그런데 팀이 7명뿐이라니 놀라움
  • 잘 모르는 사람들을 위해 말하자면, 지금까지는 수동 리뷰 때문에 새 플러그인 제출이 사실상 불가능에 가까웠음. AI로 플러그인 작성이 쉬워지고 재미있어진 영향도 있음
    개발자 커뮤니티의 불만은 점점 커졌고, 팀도 부하에 지쳐 가고 있었음
    그래서 팀에 축하를 보냄. 거대한 확장성 병목이 풀린 셈이고, 이들이 만들고 확장해 가는 과정을 보는 것이 꽤 멋짐
    • 추천할 만한 멋진 플러그인이 있나? OneNote에서 넘어오고 동기화까지 설정한 뒤 이제야 편해지고 있음
  • Obsidian을 쓰지는 않지만, 제목을 봤을 때는 기업이 승인한 소수 플러그인으로 제한하려는 건가 싶었음
    소프트웨어 회사가 “XYZ의 미래” 같은 제목을 쓰면 대개 XYZ를 심하게 제한하거나 종료 준비를 한다는 뜻으로 기대하게 됨
    • 어느 지점에서 엔시티피케이션이 드러날지 궁금했음
  • 자동 검사만으로 플러그인이 악성인지 안정적으로 판단할 수 있을지는 확신이 안 듦
    플러그인 보안 문제를 푸는 최선의, 어쩌면 유일한 방법은 명시적 API와 권한 시스템을 갖춘 샌드박스라고 봄
    • “명시적 API와 권한 시스템을 갖춘 샌드박스가 필요하다”는 말에 더해, 특히 내 개인 데이터에 손대지 못하게 해야 한다고 말하고 싶음. 다만 Obsidian 플러그인의 핵심이 문서를 읽고 쓰는 것이라는 점이 문제임
      하지만 인터넷과 통신할 수 없다면 큰 문제는 없어 보이기도 함
      추가로 보니 JavaScript와 Electron 구조상 Obsidian 플러그인은 전역 범위에서 실행되는 JavaScript 덩어리이고, 사용자 권한이 허용하는 범위 안에서 전체 파일 시스템을 읽고 쓰며 HTTP 요청도 만들 수 있는 듯한데, 맞는지 확인해 줄 수 있나?
    • 자체 악성 코드를 막아 주지는 못하지만, 의존성이 최신으로 유지되는지, 알려진 CVE가 들어 있는지 판단하는 데는 꽤 도움이 될 수 있음. Trivy가 하거나 Artifacthub가 강조하는 방식과 비슷함
      다만 이 생태계에서 실제로 얼마나 잘 작동할지는 궁금함. 경험상 전면적인 스캔은 거짓 양성, 즉 CVE는 있지만 실제 사용 맥락에는 적용되지 않는 경우가 꽤 나오기 쉬움
      그래서 스캔 결과를 올바르게 해석하려면 지식이 필요하고, 이는 유지관리자에게 상당한 부담으로 이어질 수 있음
    • 블로그 글을 읽어 보면 됨. 자동 스캔과 팀용 제어 기능에 더해 권한 시스템도 계획되어 있음
      권한만으로는 특정 악성 행동을 막을 수 없기 때문에 모두 필요함
      Community 사이트의 점수표 몇 개만 봐도, 일부 경고는 권한 시스템이나 샌드박싱으로 잡을 수 없는 것임을 금방 알 수 있음
      블로그 글에 출시 방식의 세부 내용이 있고, 플러그인 API 변경이 필요하므로 단계적으로 진행될 예정임
    • 당연히 기존 플러그인과 호환되지는 않을 테니, 레거시 플러그인과 새 플러그인을 분리하고 레거시 플러그인 설치에는 마찰을 많이 넣은 뒤 언젠가 폐기하는 식으로 가겠음
    • Podman/Linux에도 API와 권한 시스템이 있지만 그래도 Copy Fail이 있었음: https://garrido.io/notes/podman-rootless-containers-copy-fai...
      보안과 권한 부여는 그냥 어렵고, 플랫폼을 설계하다 보면 어느 시점에는 유연성을 위해 그 위험을 감수할 가치가 있는지 스스로 물어야 함
      완벽히 안전한 시스템을 계획하는 것은 가망 없는 일임
  • 매우 흥미로움. 자동 플러그인 리뷰가 작은 팀에서도 가능하다는 현실 세계의 증거임
    언젠가는 내 프로젝트에도 비슷한 시스템을 구현하는 법을 배워야 할 듯함
    • 일단 어떻게 흘러가는지 지켜보는 편이 나을 수 있음. 이건 고양이와 쥐의 게임이고, 여기서 쥐들이 훨씬 더 똑똑함
      데이터 유출은 조용히 일어남
  • 소비자 입장에서 점수표를 어떻게, 왜 봐야 하는지 모르겠음
    오류와 린터 경고 목록이 잔뜩 있으면 나는 무엇을 해야 하나?
    사용자 쪽의 이상적인 흐름이 궁금함. 점수표는 개발자 쪽에서는 좋아 보임
  • 이런 업데이트가 나와서 반가움
    이런 종류의 커뮤니티 기여를 관리하는 건 어려운데, 큰 진전으로 보임
  • 플러그인 가용성, 특히 내 경우 selfhosted-livesync가 줄어들지만 않는다면 좋아 보임
    이런 자동 리뷰에 AI가 맡을 역할이 있을지도 궁금함. 꽤 유망한 활용 사례처럼 보임
  • 아주 멋짐. 다만 웹사이트가 다크 모드 전용이라 난시가 있는 사람에게 읽기만 더 어렵게 만든다는 점은 아쉬움
    • Firefox의 읽기 모드는 한 번 클릭으로 흰 배경에 어두운 글자를 보여 줌. 아마 다른 브라우저도 비슷한 기능이 있을 것임
    • Obsidian이 검은색이라서 그럼. 그래도 가까운 미래에 라이트 모드를 추가할 계획임
    • 매우 드문 형태의 난시라는 뜻인가? 30년 넘게 난시가 있었지만 이 사이트는 아무 노력 없이도 완벽히 읽을 수 있음
  • 플러그인을 로컬에 더 쉽게 설치할 수 있으면 좋겠음. 정말 폴더에 복사해 붙여넣기만 하면 되어야 함
    Obsidian이 독점 소프트웨어가 아니었다면 직접 바꿨을 것임
    누군가 호환 클론을 만들 때가 됐음
    • 이미 정확히 그렇게 동작함. 플러그인은 그냥 볼트 안의 .obsidian/plugins 폴더에 복사할 수 있는 폴더일 뿐임
    • 말 그대로 .obsidian/plugins/ 디렉터리에 붙여넣기만 하면 됨