🤖
1327 in / 3788 out / 5115 total tokens
오늘 건들은 보안 이슈부터 아키텍처 철학, 실전 프로젝트까지 폭이 넓다. 하나씩 파보자.
🔥 핫 토픽
Notion 공개 페이지에서 모든 편집자 이메일이 유출되는 취약점
Notion에서 공개 페이지를 만들면, 그 페이지에 편집 권한이 있는 모든 사용자의 이메일 주소가 노출된다. 공개 페이지 URL만 알면 API나 개발자 도구를 통해 편집자 목록을 긁어올 수 있는 구조다. 회사 위키, 프로젝트 문서, 포트폴리오 등을 공개하던 수많은 팀이 무방비 상태였던 셈이다.
이게 왜 치명적인지 생각해보면, B2B SaaS에서 연락처 정보는 곧 영업 기회다. 경쟁사나 스팸머가 Notion 공개 페이지만 돌아다니면 담당자 이메일을 싹 다 수집할 수 있다. OSINT(오픈소스 인텔리전스) 관점에서는 황금 광산이 따로 없다. 해커 뉴스에서 311점을 받은 이유가 있다.
개발자 입장에서 꼽아야 할 교훈은, "공개"라는 설정이 우리가 생각하는 범위보다 훨씬 넓을 수 있다는 거다. Notion에서 페이지를 공개하면 "내용"만 공개된다고 생각하지만, 시스템은 메타데이터(편집자, 수정 이력 등)까지 함께 노출시키고 있었다. 권한 시스템을 설계할 때 "리소스 본체"와 "메타데이터"의 공개 범위를 분리해서 설계해야 한다. 게임 서버 만들 때도 비슷하다. 매치메이킹 API에서 유저 ID만 반환한다고 해서 그 유저의 로그인 시간, 디바이스 정보까지 다 같이 넘겨버리면 안 된다.
Notion 측의 대응 속도와 패치 방식도 지켜봐야 할 포인트다. 이런 이슈는 책임 있는 공개(responsible disclosure) 프로세스를 거쳤는지, 아니면 트위터에 먼저 올라왔는지에 따라 평가가 달라진다. 현재 트위터 스레드로 시작된 걸 보면... 음, 프로세스가 매끄럽지 않았을 수도 있다.
출처: Hacker News / Twitter @weezerOSINT
🏗️ 아키텍처 & 철학
Simon Willison: 개인 AI를 위한 "Headless Everything"
Simon Willison이 자기 블로그에서 "Headless Everything for Personal AI"라는 글을 올렸다. 핵심은 개인 AI 어시스턴트를 만들 때, UI가 있는 완성된 앱 대신 헤드리스(Headless) 도구들을 조합하라는 거다. 브라우저 자동화, 파일 시스템 접근, API 호출 등을 각각 독립적인 헤드리스 서비스로 만들고, LLM이 이들을 오케스트레이션하는 구조다.
이 접근이 흥미로운 이유는, 게임 서버 아키텍처와 닮은 점이 많아서다. UE5 전용 서버(Dedicated Server)도 렌더링은 클라이언트에 맡기고 게임 로직만 처리한다. Willison이 말하는 헤드리스 AI도 마찬가지다. UI 레이어를 분리하고, 핵심 로직(데이터 처리, 의사결정)을 API로 노출하는 거다. 그러면 CLI, 웹, 모바일 어떤 프론트엔드든 붙일 수 있다.
실무적으로 이렇게 하면 좋은 점이 있다. 첫째, 테스트가 쉬워진다. UI 없이 API만 테스트하면 되니까. 둘째, 조합이 자유롭다. 오늘은 CLI로 내일은 Streamlit으로 모레는 음성 인터페이스로 바꿔도 백엔드는 그대로다. 셋째, 자동화가 쉽다. cron이나 GitHub Actions에서 그냥 HTTP 요청만 날리면 되니까.
나도 AI 사이드프로젝트 할 때 비슷한 고민을 한다. Streamlit으로 빨리 프로토타입은 만들 수 있는데, 나중에 모바일 앱이나 디스코드 봇으로 확장하려고 보면 다 갈아엎어야 한다. 처음부터 헤드리스로 설계했으면 확장은 쉬웠을 텐데, 프로토타이핑 속도와 아키텍처 유연성 사이에서 항상 줄다리기를 하게 된다. Willison의 글은 "처음부터 헤드리스로 가라"가 아니라, "개인 AI는 결국 조립하는 거다"라는 관점을 준다.
앞서 언급한 Notion 이슈와도 연결된다. Notion도 웹 UI에 모든 기능이 강하게 결합되어 있어서, API로 메타데이터를 따로 제어하기 어려웠던 거다. 헤드리스 설계였으면 공개 범위를 API 레벨에서 세밀하게 조정했을 수도 있다.
⭐ 오픈소스 프로젝트
ai-document-intelligence: RAG + NLP + Computer Vision 통합 플랫폼
GitHub 트렌딩에 올라온 프로젝트다. RAG(검색 증강 생성), NLP(자연어 처리), 컴퓨터 비전을 하나의 플랫폼에 통합했다. 기술 스택이 꽤 최신이다. LangGraph로 에이전트를 구성하고, FastAPI로 백엔드를, Streamlit으로 프론트엔드를 만들었다. OCR로 문서에서 텍스트를 추출하고, spaCy NER로 개체명을 인식한 뒤, 하이브리드 검색으로 관련 정보를 찾아 LLM에 컨텍스트를 제공하는 파이프라인이다.
이 프로젝트가 주목할 만한 이유는 "프로덕션급"을 표방한다는 거다. 튜토리얼 수준의 RAG 데모가 아니라, 실제 기업 환경에서 문서를 처리할 수 있도록 설계되어 있다. OCR → NER → 인덱싱 → 검색 → 생성 파이프라인이 모듈화되어 있고, FastAPI 기반이라 확장도 가능하다. 게임 개발에서도 이런 파이프라인 사고방식은 익숙하다. 애셋 임포트 → 처리 → 쿠킹 → 로드 같은 파이프라인과 구조가 같다.
RAG가 뭔지 모르는 독자를 위해 간단히 설명하면, LLM이 답변할 때 자기가 학습한 데이터만 쓰는 게 아니라, 외부 문서를 먼저 검색해서 그 내용을 참고하도록 만드는 기술이다. "오픈북 시험"을 시키는 거라고 생각하면 된다. 그래서 환각(hallucination)이 줄어들고, 최신 정보나 비공개 문서에 대해서도 답변할 수 있다.
Simon Willison의 헤드리스 철학과도 맞물린다. 이 프로젝트는 FastAPI 백엔드와 Streamlit 프론트엔드가 분리되어 있다. Streamlit이 마음에 안 들면 FastAPI 엔드포인트에 다른 UI를 붙이면 된다. 헤드리스 아키텍처의 좋은 예시다.
나라면 이 프로젝트를 어떻게 활용할까? 게임 개발 문서화에 쓸 수 있을 것 같다. 컨플루언스나 노션에 흩어진 기획서, 기술 문서, 회의록을 긁어모아서 OCR로 처리하고, "이 캐릭터의 스탯은 어떻게 결정됐어?"라고 물으면 관련 문서를 찾아 답변해주는 시스템. 실제로 해보면 꽤 유용하다.
출처: GitHub - samishekhalard/ai-document-intelligence
오늘의 교푯돌: 공개는 생각보다 많은 것을 노출한다. 헤드리스는 생각보다 많은 것을 가능하게 한다. 그리고 좋은 파이프라인은 어디서나 통한다.