← List ASASYL
NOTE 2026. 2. 18. • 8 min read

서비스 간의 경계를 허물다: Memos와 Vikunja를 n8n으로 연결한 자동화 구축기

Cover

개인 서버를 운영하다 보면 처음에는 “잘 돌아간다”는 사실만으로도 충분히 만족하게 됩니다. 미니 PC 위에 이것저것 서비스를 올려두고, 접속이 되고, 데이터가 쌓이면 그 자체로 작은 성취감이 생깁니다. 하지만 그 순간 다른 생각이 떠오르더군요.

이 서비스들이 서로 대화하게 만들고 싶다!

각자 잘 작동하는 앱들이 단절된 채로 존재하는 것이 아니라, 서로 연결되어 하나의 흐름을 이루게 할 수 있다면 어떨까 하는 생각입니다. 상용 클라우드가 아니라 개인 서버를 운영하는 사람만이 누릴 수 있는 재미가 이런 것 아니겠어요? 통합과 연동, 그리고 내가 원하는 방식으로 흐름을 설계하는 경험.

이번 글은 메모 서비스 Memos와 todo 관리 도구 Vikunja를 자동화 플랫폼 n8n으로 연결해, 흩어져 있던 서비스를 하나의 워크플로우로 묶어낸 기록이자, 그리고 그 과정에서 AI와 어떻게 협업했는지에 대한 이야기 입니다.


따로 쓰던 서비스에 흐름을 만들다

그동안 저는 떠오르는 생각을 기록할 때는 Memos를 사용했고, 구체적인 할 일을 관리할 때는 Vikunja를 사용했습니다. 두 앱은 당연히 분리되어 각자 작동합니다. 메모에 적어둔 아이디어를 다시 열어 Vikunja에 옮겨 적을때도 있고, 작업을 완료한 뒤에는 그 결과를 다시 메모로 남기려다 귀찮아서 안한적도 많죠.

그래서 이런 구조를 구상했습니다.

  • Memos에 #todo라고 적으면 자동으로 Vikunja에 할 일이 생성됩니다.
  • Vikunja에서 해당 일을 완료하면, 완료 시각과 소요 시간이 Memos에 자동으로 기록됩니다.

이렇게 되면 두 앱은 더 이상 분리된 도구가 아니라, 하나의 연속된 시스템처럼 움직이게 됩니다. 그리고 그 중심에는 n8n이 있습니다. n8n을 일종의 중앙 통제실로 삼아, 이벤트를 감지하고 API를 호출하고, 결과를 다시 전달하는 흐름을 설계했습니다.

한 눈에 보이는 Memos와 Vikunja의 task관리

특히 Vikunja는 모바일 앱도 있기 때문에 터치 한번이면 끝!


AI와 함께 넘은 첫 관문: API 인증

연동의 첫 단계는 각 서비스의 API에 접근하는 일이었습니다. 하지만 Gemini의 말대로 따라 하다 문제가 발생했습니다. n8n의 버전이 업데이트되면서 인증 방식이 달라졌고, 기존 설명대로는 연결이 되지 않았습니다.

“HTTP Request 노드에 Header Auth 대신 Multiple Header Auth만 있여. ”

“최신 버전에서는 ‘Multiple Header Auth’를 사용해 토큰을 헤더에 직접 포함시키는 방식이 권장됩니다. Authorization: Bearer <토큰> 형식으로 설정해보세요.”

AI는 좀 지난 날짜의 기록도 현재진행형으로 알고 있는 경우가 있습니다. 이럴땐 설명과 다른 선택지를 캡쳐해서 보여주던가, 설명하면 다시 제대로 알려줍니다.


서비스 업데이트가 불러온 변수

Memos 연동 과정에서는 더 복잡한 문제가 발생했습니다. 최신 버전(v0.24.0)으로 올라오면서 API 필터 문법이 바뀌었기 때문입니다. 아무리 요청을 보내도 빈 배열만 반환되었습니다.

저는 API 응답 구조와 요청 파라미터를 AI에게 그대로 보여주었습니다.

“이 요청을 보내면 항상 빈 값이 반환되는데..”

변수는 보안 설정이었습니다. ‘비공개’ 상태의 메모는 기본 API 호출로는 조회되지 않았습니다. 다행히 공개가 아닌 ‘멤버 공개’ 상태의 메모는 조회됩니다. 멤버는 저 뿐이니 비공개나 마찬가지여서 다행이죠.


가장 까다로웠던 문제: 시간 계산

또 다른 문제가 생겼습니다. Vikunja에서 작업을 완료하면 시작 시각과 종료 시각을 계산해 소요 시간을 Memos에 남기도록 설계했는데, 둘 다 한국 시간으로 작성해도 n8n에서는 영국시간으로 해석하더군요. 환경변수에 - TZ=Asia/Seoul 를 추가해도 n8n은 요지부동🥲

저는 두 서비스가 반환하는 실제 출력물을 Gemini에게 보여주었습니다. Gemini는 자바스크립트의 날짜 객체와 시간대 변환 로직을 활용해, 서버 설정과 무관하게 한국 시간(KST) 기준으로 계산하도록 코드를 작성했습니다. 그 코드를 n8n의 Function 노드에 적용하자, 소요 시간이 정확히 계산되기 시작했습니다.


다음 단계: 프로젝트 단위의 자동화

지금은 개별 할 일을 기록하는 수준이지만, 이 구조는 더 확장할 수 있습니다. AI와 함께 구상한 다음 단계는 ‘프로젝트 단위 관리’입니다.

예를 들어 여러 태스크를 #project라는 태그로 묶어두면, 하나를 완료할 때마다 전체 진행률이 자동으로 계산되어 Memos에 업데이트되도록 만드는 것입니다. 단순히 숫자만 표시하는 것이 아니라, [▓▓▓▓▓░░░░░] 같은 진행바를 자동으로 생성해 시각적인 피드백을 제공할 수도 있습니다.

중간에 태스크가 추가되더라도 n8n이 전체 개수를 다시 계산해 진행률을 보정합니다. 사람이 직접 계산하지 않아도, 시스템이 스스로 균형을 맞춥니다. 이런 확장 가능성은 개인 서버 환경에서만 누릴 수 있는 자유입니다.


파편에서 시스템으로

이번 작업의 가장 큰 수확은 자동화 시스템 자체가 아닙니다. 서비스 간의 경계를 스스로 허물어보았다는 점입니다. Memos와 Vikunja는 더 이상 각각의 앱이 아니라, 하나의 흐름 속에서 역할을 나누는 구성 요소가 되었습니다.

그리고 그 설계 과정에서 AI는 단순한 답변 제공자가 아니라, 문제를 함께 분석하고 가설을 세우는 동료에 가까웠습니다. 로그를 공유하고, 응답 구조를 보여주고, 설정 화면을 설명하는 과정 자체가 사고를 정리하는 훈련이 되었습니다.

개인 서버의 진짜 매력은 설치가 아니라 연동에 있습니다. 각자 흩어져 있는 서비스를 하나의 유기적인 시스템으로 묶어가는 과정은 마치 레고 블록을 조합해 구조물을 세우는 일과 비슷합니다. 작은 블록들이 맞물릴 때, 비로소 전체가 형태를 갖추기 시작합니다.

혹시 여러분의 서버에도 따로따로 돌아가고 있는 서비스가 있다면, 한 번쯤 연결을 시도해보세요. n8n과 AI라는 도구가 있다면, 생각보다 훨씬 복잡한 구조도 차근차근 구현할 수 있습니다. 그리고 어느 순간, 여러분만을 위해 24시간 조용히 작동하는 디지털 시스템이 완성되어 있을 것입니다.


#홈서버 #미니PC #Memos #Vikunja #n8n #자동화 #AI활용 #자기계발