Log in to leave a comment
No posts yet
하루에도 수십 번씩 창을 옮겨 다니며 맥락을 놓치고 있지는 않습니까. 기획안은 Notion에 적고, 아키텍처는 Miro에서 그리며, 일정은 Jira로 관리하는 방식은 비효율의 극치입니다. 정보는 사방으로 흩어지고 데이터는 금세 낡은 것이 됩니다. 63,000개의 GitHub 스타를 기록하며 급부상한 AFFiNE(어핀)은 이 고질적인 문제를 해결하기 위해 등장했습니다. 단순한 협업 툴을 넘어 데이터 주권을 보장하는 지식 운영 체제(KnowledgeOS)로서의 면모를 분석합니다.
기존 도구들은 텍스트 문서와 시각적 화이트보드를 별개의 파일로 분리합니다. 하지만 우리의 사고는 그렇게 단절되어 있지 않습니다. AFFiNE의 핵심은 동일한 데이터를 두 가지 시점으로 바라보게 만드는 에지리스(Edgeless) 기술에 있습니다.
페이지 모드에서 작성한 정교한 기술 명세서는 클릭 한 번으로 무한한 캔버스인 에지리스 모드로 변환됩니다. 텍스트 블록들은 캔버스 위에서 자유롭게 배치할 수 있는 객체가 되며, 논리적 순서는 인덱스 번호로 유지됩니다. 반대로 캔버스에서 복잡하게 그린 시스템 다이어그램을 프레임으로 묶으면 문서의 한 섹션으로 즉시 삽입됩니다.
이 마법 같은 전환을 가능하게 하는 것은 Rust 기반의 OctoBase 엔진입니다. 특히 고성능 CRDT 라이브러리인 y-octo를 채택하여 대규모 문서에서도 지연 없는 실시간 편집을 구현했습니다. 네트워크가 끊긴 오프라인 상태에서 작업해도 다시 연결되는 순간 데이터 충돌 없이 매끄럽게 병합되는 로컬 우선(Local-first) 철학이 여기에 담겨 있습니다.
클라우드 서비스에 소중한 기업 데이터를 맡기는 것이 불안하다면 셀프 호스팅이 정답입니다. 단순히 가입해서 쓰는 것보다 초기 설정은 번거롭지만, 완벽한 데이터 소유권을 가질 수 있다는 이점은 압도적입니다.
원활한 구동을 위해 최소 2 vCPUs와 4 GB RAM이 필요합니다. 팀 단위 운영 시에는 8 GB 이상의 메모리를 확보해야 컨테이너가 멈추는 불상사를 막을 수 있습니다. 데이터베이스는 PostgreSQL 16 버전 이상, 캐시 처리를 위한 Redis가 필수적입니다.
먼저 작업 디렉토리를 생성하고 최신 설정 파일을 내려받습니다.
mkdir affine && cd affine
wget -O docker-compose.yml https://github.com/toeverything/affine/releases/latest/download/docker-compose.yml
환경 변수 설정 시 주의할 점이 있습니다. 데이터 영속성을 위해 .env 파일에서 DB_DATA_LOCATION과 UPLOAD_LOCATION을 로컬 경로로 반드시 지정해야 합니다. 저사양 서버를 사용 중이라면 docker-compose.yml 내에 메모리 제한(limits)을 2G 정도로 설정하는 것이 시스템 전체의 안정성을 높이는 비결입니다.
리버스 프록시를 통해 HTTPS 환경을 구축한다면 Nginx 설정에서 WebSocket 관련 헤더(Upgrade, Connection)를 반드시 포함하십시오. 이 설정이 빠지면 실시간 동기화 기능이 작동하지 않아 협업의 흐름이 끊기게 됩니다.
AFFiNE을 실무에 배치하면 작업 효율은 눈에 띄게 달라집니다. 다음은 시니어 엔지니어들이 주로 활용하는 워크플로우입니다.
| 비교 항목 | AFFiNE | Notion | Miro |
|---|---|---|---|
| 핵심 가치 | 하이브리드 통합 | 문서 구조화 | 시각적 사고 |
| 데이터 소유권 | 사용자 소유 (로컬 우선) | 클라우드 종속 | 클라우드 종속 |
| 오프라인 지원 | 완전 지원 | 제한적 | 불가 |
| 비용 | 셀프 호스팅 시 무료 | 유료 구독 기반 | 유료 구독 기반 |
가장 큰 차이는 데이터의 소유권에 있습니다. 노션이나 미로는 서비스 장애가 발생하면 작업이 중단되지만, AFFiNE은 로컬 데이터를 기반으로 하기에 멈추지 않습니다. 2026년 현재는 멀티모달 AI 기능까지 결합되어 화이트보드의 거친 스케치를 정교한 다이어그램으로 정밀하게 다듬어주는 수준까지 진화했습니다.
기존 툴에서 데이터를 옮겨올 때 마크다운(Markdown) 형식만 고집하지 마십시오. 표 서식이나 이미지 링크가 깨질 위험이 큽니다. 가급적 HTML과 서브페이지를 포함한 방식으로 내보낸 뒤 임포트하는 것이 원본 형식을 유지하는 데 유리합니다.
노션의 복잡한 데이터베이스 수식은 100% 호환되지 않으므로 수동 재설정이 필요할 수 있습니다. 이를 귀찮은 작업으로 여기기보다 불필요한 레거시 데이터를 정리하는 기회로 삼으십시오. 툴에 내 사고방식을 맞추는 시대는 끝났습니다. 이제는 내 생각의 흐름에 따라 형태를 바꾸는 유연한 도구를 선택할 때입니다. 유료 구독료의 압박과 파편화된 정보 시스템에서 벗어나고 싶다면 지금 당장 Docker 컨테이너를 올리고 에지리스 모드의 자유를 경험해 보길 권합니다.