내가 새 블로그를 만들려고 하는 수 많은 이유 중 하나인 카테고리 계층화에 대해 고민을 해봤다
처음엔 아 nosql이 json형태니까 그냥 이걸 그대로 쓰면 되겠다 싶었는데,, 아 이거 진짜 아닌거 같다.
두개 플랫폼을 생각했는데 첫번째가 firebase 두번째가 mongodb였다
일단 공통적으로 콘솔창까지 접근하는 것도 힘들었고, 접근한다 해도 한눈에 카테고리를 보기가 힘들었다.
그리고 치명적으로 깊이가 정해지지 않은 내가 원하는 카테고리 형식을 구현하기 위해서는 leaf node까지 가기위해 계속해서 firebase에 collection을 호출해야하는 문제가 있었다. firebase에 부하를 주는건 내가 알 바가 아니지만 그렇게 여러번 호출을 해야한다면 아무래도 성능 저하의 문제를 생각하지 않을 수 없었다.
그리고 mongodb는 콘솔창이 너무 더럽게 생겨서 도저히 쓸맛이 안났다.
그래서 저번에 연결한 db ec2에 카테고리 정도는 넣어 두기로 했다. 어짜피 저장용량은 많기도 하고 이 데이터베이스에는 간단한 정보만 저장할 것이기 때문에 큰 부하는 가지 않을 것 같고 또 속도도 빠르다. 재귀적호출도 jpa를 사용하니까 쉽게 구현할 수 있었다.
만약 firebase를 사용했다면 dfs를 통해 상위 컬렉션이 하위 컬렉션의 문서 수를 파악하는 과정이 엄청나게 힘들었을 거라고 생각한다..
배포와 cicd를 해뒀기 때문에 여기까지 빨리 올 수 있었던거 같다.
이 외에도 간단하게 crud를 구현해 뒀는데
글을 쓰는 과정은 springboot를 통해 인증 과정을 거치고 notion api로 데이터를 쏘는 과정이 필요하고 더불어 사진 같은 경우는 imgur api를 사용해서 사진을 업로드하는 과정도 거쳐야 한다. 이게 좀 힘들것 같고 댓글 기능 정도 더 구현하면 스타일을 구현할 수 있을 것 같다.
그리고 google analytics api를 사용해서 조회수와 유입경로 등 관리에 필요한 정보를 만드는 과정이 필요하고
superuser user admin 으로 권한을 나눠서 볼수 있는 페이지를 나누는 과정이 좀더 필요할 것 같다.