Notion에서 AFFiNE으로의 전환: 제 경험과 작동 방식

저는 5년 넘게 Notion을 사용해 왔는데, 그동안 깨달은 것은 단 하나뿐입니다. Notion은 Excel만큼 저에게 잘 맞지 않습니다.어쨌든 저는 생각을 정리하고, 데이터를 구조화하고, 개인적인 지식 기반을 구축할 수 있는 메모 작성 애플리케이션이 여전히 필요했습니다.

Notion에서 AFFiNE으로의 전환: 제 경험과 작동 방식

Notion을 대체할 수 있는 자체 호스팅 솔루션은 여러 가지가 있으며, AFFiNE도 그중 하나입니다. 기능과 인터페이스 면에서 Notion과 매우 유사하며, 제대로 활용하면 여러 도구를 한 번에 줄일 수 있습니다.

결국 노션과 결별한 이유는 무엇인가요?

"올인원" 제품이 더 이상 효율적으로 느껴지지 않을 때

Notion의 여러 페이지

많은 사람들처럼 저도 Notion에 진심으로 감탄했습니다. 유연하고 문서, 데이터베이스, 간단한 프로젝트 관리까지 가능하죠. 제게는 온라인상의 가상 제2의 두뇌와 같은 존재가 되었습니다. 하지만 문제는, Notion을 중심으로 생활을 하다 보면 단점들이 드러나기 시작한다는 것입니다. 구독료가 점차 늘어나고, 특정 업체에 의존하게 되면서 정체되고, 내가 작성하는 모든 내용이 다른 사람의 서버에 저장된다는 불안감이 생기기 시작합니다.

저는 Notion으로 제 삶 전체를 운영해 왔고, 실제로도 여전히 Notion을 사용하고 있습니다. 조직화된하지만 이러한 부정적인 측면들이 곧 저에게 영향을 미치기 시작했습니다. 비록 Notion 구독료가 결국 내게 손해로 돌아갔다. 매달 그랬지만, 그는 점점 제약받는다고 느끼기 시작했고, 결국 나는 저는 오직 한 가지 이유 때문에 Notion을 사용하기 시작했습니다..

노션에서 데이터를 가장 효율적으로 정리하는 방법은 표와 스프레드시트를 활용하는 것입니다. 노션에서 제공하는 기능 중 가장 유사한 것은 데이터베이스입니다. 하지만 노션의 데이터 처리 방식, 특히 표와 데이터베이스 활용 방식은 마이크로소프트 엑셀이나 구글 시트만큼 다재다능하지 않습니다. 노션에서도 수식을 사용할 수는 있지만, 원하는 대로 특정 셀이나 셀 범위에서 데이터를 선택할 수 있는 자유는 없습니다.

AFFiNE은 Notion이 제공하는 거의 모든 기능을 제공하면서도 오픈 소스이며 완전히 무료로 실행하고 사용할 수 있다는 점에서 제 관심을 끌었습니다. 물론 자체 호스팅을 원하지 않는다면 유료 플랜도 있습니다. 자체 호스팅을 통해 폐쇄형 플랫폼의 로드맵에 모든 것을 걸고 위험을 감수하지 않아도 됩니다. 또한 AFFiNE은 로컬 우선 철학을 기반으로 구축되어 있어 데이터가 먼저 사용자의 디스크에 저장되고 공동 작업을 위해 서버와 동기화되는 방식입니다.

AFFiNE이 이러한 도약을 이룰 만한 가치가 있었던 이유는 무엇일까요?

문서, 화이트보드, 데이터베이스를 한 곳에서 관리하세요

저는 Notion을 첫날부터 삭제하지 않았습니다. AFFiNE에서 제가 주로 사용하는 몇 가지 핵심 워크플로를 다시 만드는 것부터 시작했습니다. 편집 캘린더, 개인 지식 기반, 그리고 프로젝트 계획 공간을 만들었죠. 가장 먼저 놀랐던 점은 같은 도구 안에서 문서 모드와 화이트보드 모드를 전환하는 것이 얼마나 매끄러운지였습니다. 구조화된 페이지에 하루 일정을 계획한 다음, 화이트보드 스타일 보기로 확대하여 관련 작업을 연결하고, 시각적인 메모를 추가하고, 흐름을 그릴 수 있었습니다. 이 모든 과정이 앱을 종료하지 않고 가능했습니다.

AFFiNE은 오픈 소스이며 자체 호스팅 방식이기 때문에 장기적인 관점에서 또 다른 걱정거리를 해결해 줍니다. 만약 5년 안에 개발사가 사라지거나 가격 정책이 변경되더라도 저는 곤란한 상황에 처하지 않을 것입니다. 제 버전을 계속 운영하거나, 원한다면 프로젝트를 포크하여 새로운 버전을 만들 수도 있습니다. 이는 단순히 철학적인 이점뿐만 아니라, 시스템과 템플릿 구축에 투자할 수 있는 시간의 양을 바꿔주는 실질적인 장점입니다.

로컬 환경 구축이 궁극적인 동기였습니다. 제 데이터가 제 디스크에 저장되고, 제가 직접 호스팅하는 다른 모든 것들과 함께 백업까지 가능하다는 점이 클라우드에서 모든 것을 임대하는 것보다 제 자체 호스팅 서비스 워크플로에 완벽하게 들어맞았습니다. AFFiNE이 이러한 생태계에 통합될 수 있다는 것을 깨닫고 나니, 제 모든 지식 기반을 자체 SaaS 플랫폼에 보관한다는 생각이 점점 덜 매력적으로 느껴지기 시작했습니다.

내 작업 흐름 전체를 깔끔하게 옮긴 방법

페이지와 데이터베이스를 깔끔하게 내보냅니다.

AFFiNE 프레임리스 패널.

Notion에서 AFFiNE으로 전환하는 것은, 특히 Notion을 오랫동안 사용해 온 경우라면, 한 번의 클릭으로 가져오기만 하면 되는 간단한 과정이 아닙니다. 저는 단순한 마이그레이션보다는 구조 재구성이라는 관점에서 접근했습니다. 기존 페이지를 모두 꺼내는 대신, 매일 사용하는 부분, 즉 활성 프로젝트, 현재 메모, 그리고 사용 중인 데이터베이스에 집중했습니다.

AFFiNE의 블록 기반 편집기를 사용하면 위키, 연결된 노트, 프로젝트 대시보드와 같은 구조를 쉽게 재구축할 수 있습니다. 물론 일부는 수동으로 다시 만들어야 할 수도 있습니다. 저는 마이그레이션을 핑계 삼아 수년간 미완성해 온 페이지와 중복 템플릿을 정리했습니다. Notion에서 내보낸 파일은 마크다운과 유사한 콘텐츠로 불러올 수 있지만, 중요한 페이지는 수동으로 다시 만들고 나머지는 아카이브에 남겨두는 것이 여전히 더 생산적이라고 생각합니다.

AFFiNE 실험 작업 공간의 근접 사진.

가장 큰 사고방식의 변화는 무한 레이아웃에 익숙해지는 것이었습니다. Notion에서는 아이디어, 다이어그램, 타임라인을 위해 각각 별도의 페이지를 사용하는 경우가 많았습니다. 하지만 AFFiNE에서는 이러한 요소들이 하나의 공간에 공존할 수 있었습니다. 한쪽에는 메모를, 가운데에는 간략한 마인드맵을, 다른 한쪽에는 칸반 스타일의 레이아웃을 배치할 수 있었습니다. 이 점을 이해하고 나니 AFFiNE을 Notion의 오픈 소스 대안으로 생각하는 대신, 그 자체로 독특한 작업 공간으로 인식하게 되었습니다.

제가 직접 호스팅하는 AFFiNE 환경 내부를 살펴보겠습니다.

Docker Compose를 사용하면 자체 호스팅이 더 쉬워지지만, 여전히 해야 할 일이 있습니다.

Docker Desktop 로고가 애플리케이션에 있습니다.

AFFiNE은 공식적으로 자체 호스팅을 지원하며, Docker Compose를 사용하는 것이 권장되는 방법입니다. دليل رسمي 아주 좋습니다. 한 시간 안에 바로 사용하실 수 있을 겁니다. 내부 구성은 최신 웹 애플리케이션에서 흔히 볼 수 있는 것들입니다. AFFiNE 서비스, 캐싱을 위한 Redis, 그리고 데이터베이스로는 PostgreSQL을 사용합니다. 이미 다른 자체 호스팅 도구를 사용하고 계신다면 익숙하게 느껴지실 겁니다.

기본 아이디어는 간단합니다. 공식 이미지를 드래그 앤 드롭하고, Redis 및 Postgres에 연결하고, 구성 및 저장을 위한 정적 볼륨을 할당하고, 필요한 포트를 노출하고, 환경 변수를 통해 관리자 자격 증명을 설정하면 됩니다. 일반적인 Compose 파일은 서비스를 정의합니다. 아핀 이미지를 사용하여 ghcr.io/toeverything/affine-graphql:stable캐싱을 위한 Redis 컨테이너와 자체 데이터 저장소를 갖춘 Postgres 컨테이너도 사용됩니다. 이 기능을 활성화하면 브라우저에서 서버의 IP 주소와 포트에 접속하여 설정한 관리자 자격 증명으로 로그인하고 작업 공간을 생성할 수 있습니다.

AFFiNE은 클라우드 백엔드와 작업 공간을 동기화하도록 설계되었기 때문에 자체 호스팅 환경에서는 그 클라우드가 바로 사용자의 서버입니다. 로그인 후 작업 공간을 인스턴스에 연결하면 모든 기기에서 데이터가 동기화됩니다. 이렇게 하면 SaaS 애플리케이션처럼 작동하지만, 다른 사람이 아닌 자신의 서버에서 실행되는 애플리케이션이라는 점이 다릅니다.

동적 IP 주소 문제 해결

집 외부에서 인스턴스에 대한 액세스 유지

USB 드라이브가 연결된 라우터

제 인터넷 서비스 제공업체는 약 24시간마다 변경되는 동적 WAN IP 주소를 할당합니다. 단순히 인터넷 검색을 할 때는 문제가 없지만, AFFiNE 온라인과 같은 자체 호스팅 서비스에 접속하려고 할 때는 매우 불편합니다. 외부 IP 주소가 변경될 때마다 서버에 접속하기 위해 설정한 도메인이나 URL이 더 이상 작동하지 않기 때문입니다.

이에 대한 고전적인 해결책은 동적 DNS(DDNS)입니다. 도메인을 암호화된 IP 주소로 연결하는 대신, DDNS 제공업체(예: DNS 서버)를 사용할 수 있습니다. 무료DNS أو 덕DNS 이 기능은 집의 IP 주소가 변경될 때마다 DNS 레코드를 자동으로 업데이트합니다. 라우터 또는 네트워크 내의 작은 클라이언트 장치가 새 IP 주소를 DDNS 서비스로 전송하므로, IP 주소가 변경되더라도 호스트 이름은 계속 사용할 수 있습니다. 다른 방법으로는 인터넷 서비스 제공업체에 고정 IP 주소를 요청하는 것이지만, 제공 가능 여부는 업체에 따라 다를 수 있습니다.

더욱 고급 옵션도 이용 가능합니다. 홈 서버에서 인터넷상의 고정 호스트로 나가는 터널을 생성한 다음, 해당 터널을 통해 외부 트래픽을 AFFiNE으로 다시 라우팅할 수 있습니다. 역방향 터널이나 VPN 종료 장치와 같은 도구를 사용하면 복잡성이 증가하는 대신 동적 IP 주소를 완전히 우회할 수 있습니다. 단일 사용자 환경의 경우 동적 DNS가 가장 간단한 옵션입니다. 고급 옵션은 홈 IP 주소를 완전히 숨기려는 경우 더 높은 안정성이나 보안을 제공합니다.

이러한 변화는 가치 있는 것입니다.

통합 횟수는 줄이고 제어력은 높이세요

AFFiNE의 자체 호스팅 버전을 사용하는 것은 운이 좋은 날에는 정말 만족스럽습니다. 문서와 화이트보드를 결합한 현대적이고 유연한 작업 공간을 실시간 공동 작업 및 로컬 우선 저장 방식으로 제가 관리하는 기기에서 모두 사용할 수 있습니다. 특정 기능을 사용하기 위해 독점 플랫폼을 기다릴 필요도 없고, 메모가 유료 구독에 묶여 접근이 제한될까 걱정할 필요도 없습니다.

답답한 날에는 셀프 호스팅과 소비자 인터넷 서비스 제공업체 간의 호환성 문제가 항상 일치하는 것은 아니라는 사실을 떠올리곤 합니다. IP 주소가 바뀌고 DNS 응답이 느려지거나, 집을 비운 사이에 특정 서비스에 접속할 수 없을 때, 대규모 호스팅 SaaS 프로그램의 안정적이고 편리한 기능이 그리워집니다.

Docker 사용에 이미 익숙하고 자신만의 도구를 제어하는 ​​데 기본적인 관심이 있다면, AFFiNE은 Notion의 대안으로 확실히 고려해 볼 만합니다. 다만 소프트웨어적인 측면은 절반에 불과하며, 나머지 절반은 라우터 설정을 얼마나 잘 조정하여 자신만의 작업 공간을 만들 의지가 있는지에 달려 있다는 점을 명심하세요.

맨 위로 이동 버튼