ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Database없이 홈페이지 일기장 구현하기
    HelloJkw 개발 2022. 2. 25. 17:15

    보통 게시판이나 일기장을 만든다면 mysql 같은 RDB 떠올리기 쉽다.

    그런데 개인적인 홈페이지는 변동이 많고,

    갈아 엎기도 자주하고,

    사용하던 서버를 버리거나, cloud system을 바꾸기도 쉽다.

    그래서 나는 RDB나 NoSql을 사용하지 않기로 했다.

    백업하기도 귀찮고, 백업한 결과물을 내가 읽을 수 없다.

    최악의 경우에 내가 홈페이지를 운영하지 않더라도 일기쓰기는 계속 이어가고 싶다.

     

    저장을 dropbox에 txt파일로 하기로 했다.

    (Dropbox를 database로 사용하는 것이니 제목은 틀린 말이긴 하다.)

     

    Dropbox의 장점

    언제든 내 컴퓨터에서 읽을 수 있다.

    txt파일이기 때문에 별도의 프로그램 필요없이 일기를 열어볼 수 있다.

    항상 동기화 되고 있기 때문에 백업해야 할 필요가 없고

    dropbox서버에 저장되어 있으니 dropbox가 망하기 전까진 아주 안전하다.

    일기는 용량이 작아서 아무 부담이 없다.

    4000 개 순수 용량이 3 MB 가 안되고, disk space도 12 MB 정도였다.

     

    Dropbox는 2가지 방식으로 접근할 수 있다.

     

    1. File system 동기화

    Linux, Windows에선 dropbox를 동기화 시킬 수 있다.

    dropbox가 local에 동기화 되어 있다면

    그냥 로컬에 저장된 파일을 수정하기만 하면 끝난다.

    cafe24에서 linux self hosting 서비스를 이용했던 첫 홈페이지는 이런 방식으로 개발했다.

     

    2. API 사용

    지금은 Azure app service를 사용하고 있다.

    그래서 local에 dropbox를 동기화 시킬 수 없다.

    이럴 땐 dropbox app을 만들고 api로 파일을 읽고 쓸 수 있다.

     

     

    API사용의 큰 문제점

    너무 느리다.

    파일 하나 읽는데 1초 씩 걸린다.

    페이지 이동하면 파일 2-3개 쯤은 읽기 때문에 정말 오랜 시간을 기다려야 페이지가 이동하고

    일기 하나 읽으려면 5초 정도 기다려야 했다.

     

    그래서 dropbox 역할을 하지만 속도가 빠른 뭔가를 2중으로 사용하기로 했다.

    그것은 바로 azure storage.

     

    Azure Storage

    storage는 값이 아주아주 싸다.

    일기 저장하는 정도는 한 달에 몇 백원 수준.

    전략은 간단하다.

    읽을 때는 azure에서 읽는다.

    쓸 때는 azure에도 쓰고, dropbox에도 쓴다.

    dropbox데이터가 잘 써졌는지 아닌지는 확인하지 않는다.

     

    일기 검색 트리 같이 꼭 dropbox에 저장할 필요가 없는 것은 azure에만 저장한다.

     

     

Designed by Tistory.