[Notion]Notion과 Github Actions로 가계부 자동화 하기 - (1)

시작하기에 앞서


해당 포스트는 [Notion]Notion과 Zapier로 가계부 자동화 하기의 후속편입니다.

해당 포스트에서는 토스의 소비 서비스를 기반으로 Google Drive, Naver OCR, Github Actions, Notion API 를 사용합니다.

왜 Github Actions로 변경하게 되었을까?


기존에 가계부 자동화로 맨처음 고려 했던 방식은 Github Actions + Naver OCR을 이용한 가계부 자동화 방식이였습니다.

하지만 가계부를 쓰기 위해 코딩을 하는게 맞나? 싶은 생각에 솔루션들을 사용하기로 하였고

플랫폼들을 이용한 기존에 구성한 스택은 다음과 같습니다.

  • Google Drive : 캡쳐 이미지 저장소
  • Zapier : Google Drive 이미지 업로드시 정해진 프로세스를 진행하도록 하기 위한 플랫폼
  • Nanonets : 이미지에 OCR을 동작시켜 이미지에서 필요한 영역의 데이터를 뽑아낼 수 있음.

해당 스택으로 구성하였을때 무엇보다 좋았던 점은 코드를 한줄도 작성하지 않아도 가능하기 때문에,

개발자가 아니더라도 충분히 따라서 할 수 있다 였습니다.

하지만 해당 스택으로 구성하였을때 개발자로써 한계가 더 쉽게 다가왔고, 제가 느꼈던 문제점은 다음과 같습니다.

  • Zapier (자동화 플랫폼)

    • 무료 플랜사용시에는 월 100회 실행 무료이며, 1개의 자동화(zap)당 1개의 작업만 설정이 가능합니다.

      저의 경우 아래 두가지 자동화로 나뉘게 되어, 하나의 항목 업로드시 무료 횟수가 2회씩 차감이 됩니다.

      1. 구글 드라이브에 이미지가 업로드 되면 OCR 분석을 실행
      2. OCR 분석이 완료되면 Notion DB에 저장.
    • 자동화는 15분 간격으로 실행되기때문에, 위와 같이 2개가 처리되면 최악의 경우 30분이 걸리게 됩니다.

    • Notion의 Database에 항목(Property)이 많으면 일부만 노출되는 문제가 있어 원하는대로 매핑을 할 수 없습니다.

    • 데이터 포맷 변환 또한 Zap을 새로 추가해야해서 비용이 발생함.

      • 날짜 포맷이 토스에서는 2022년 1월 1일 14:40 이지만, Notion에는 ISO8601의 날짜 포맷인 2022/01/01 이 아니면 데이터가 오늘 날짜로 입력됩니다.
  • Nanonets (이미지 글자 인식 OCR 플랫폼)

    • 해외 플랫폼의 한계로 한글 인식률이 부족합니다.

      • 한글의 경우 글자사이에 띄어쓰기가 계속 추가되는 문제도 있습니다.
    • 무료 플랜에서는 월 100회 이미지 인식 제한이 있습니다.

    • 모델학습을 여러번 해보았지만 영역이 잘못 잡혀서 값이 누락되는 케이스가 있습니다.

      • 날짜 인식이 잘못되어 데이터가 잘못 들어감.

위와 같은 한계로 초기에 고려한 방식을 사용한다면 직접 개발해야 하는 문제를 뺀다면,

훨씬 높은 자유도를 얻어 원하는대로 설정할 수 있고

각 서비스의 API의 무료 한도도 Naver OCR의 API 한도인 300회만 고려하면 되기 때문에

한달의 가계부를 쓰기에 충분할것이라 판단하였습니다.

서비스 구성


이와 같이 구성하여 작성하였습니다.

각 영역에 대한 상세한 내용은 다음편에서 작성 예정입니다