log 2021-09-16
nest js 둘러보기
nest js라는 프레임워크가 있는데, node js 기반 스프링이라고 생각하면 되는 듯 하다. 기본 기반이 msa 아키텍쳐를 고려하여 설계되어있고, DI, IoC등이 지원되므로 상당히 괜찮은 듯하다.
통계 기능 작업
통계 기능을 어떻게 할 지 고려할 점이 많다.
- activityHistory기능은 애초에 액션 행동 시각에 대한 고려가 되어있지 않아 구현 어려움.
- 모든 정보를 한 번에 가져와서 유저별로 그룹핑하여 업데이트시킬 지,
- 유저별로 데이터를 가져오는 함수를 다 만들어서 그걸 이용하여 할 지 고민이다.
유저별로 가져오는 것도 인덱싱이 되어있지 않다면 별 의미 없지 않나 싶다.
그래서 monk 문서 참고하여 createIndex로 인덱스를 만드려 했는데, unique를 false로 해도 괜찮을 지 모르겠다.
어쨌든 확장성을 생각한다면, 전체를 가져와서 그룹핑하고 정리하는 방식은 한계가 있다고 생각되므로, 인덱스를 추가해서 3번 방법으로 해보려 한다.
monk에서 인덱스를 만드는 방법은 대략 다음과 같다.
posts.createIndex({"userid":1}, {unique:false});
1, -1로 오름차/내림차순 설정 가능
궁금한 점은, 한 createIndex
명령에서 여러 키들을 설정할 수 있는데, 이렇게 설정한 것이, 그 키중에 하나만 지정해서 검색하는 경우에도 효율을 늘리는 효과가 있는지 궁금하다.
https://docs.mongodb.com/manual/core/index-compound/
위 문서에 잘 나와있다. 복합키로 {a, b, c} 인덱스를 지정할 경우, {a}, {a, b}, {a, b, c} 이렇게 세 개에 대해 인덱스가 생긴다.
Comments