zuminternet / zuminternet.github.io

19 stars 17 forks source link

NestJS Custom Caching Decorator 만들기 #45

Open utterances-bot opened 2 years ago

utterances-bot commented 2 years ago

NestJS Custom Caching Decorator 만들기

NestJS 서비스 로직에 Caching Decorator를 적용하기 위한 삽질 과정을 다루고 있습니다.

https://zuminternet.github.io/nestjs-custom-decorator/

kys0213 commented 2 years ago

좋은 포스트 감사합니다!!

mystyle2006 commented 2 years ago

와 캐싱을 어떻게 하면 책임을 분리시킬까 고민을 많이했었는데 딱 필요한 글을 찾은 것 같네요! 준일님이 방법을 찾아내는 과정이 내용에 녹아있다보니 더 이해하기 쉬웠던 것 같네요! 좋은 자료 감사합니다!! :)

ChoijeHyeok commented 1 year ago

작성한 글을 토대로 아무리 작성해도 데이터가 나오지 않아 혹시 문의 한번 드려보는데 괜찮을까요? 서비스단에 @ZumCache({ ttl: 60, key: 'FETCH_NEWS' })라고 입력을 해놨고 const metadata = this.reflector.get( ZUM_CACHE_METADATA, instance[methodName], ); console.log(metadata);

이분에 원하는 데코레이터 값이 출력이 되어야 할텐데 출력이 되고 있지 않습니다

혹시 그 사이에 변경된 게 있을까요??ㅜㅜ

JunilHwang commented 1 year ago

@ChoijeHyeok 혹시

image

이렇게 모듈 등록도 하셨나요!?

ChoijeHyeok commented 1 year ago

넵 모듈등록도 완료했습니다 테스트를 더해보니까 제가 커스텀 레포지토리 패턴을 사용하고 있는데 서비스단에서 적용하면 적용이 안되고 커스텀 레포지토리 패턴에 적용하면 적용이 되더라고요...

JunilHwang commented 1 year ago

@ChoijeHyeok 그렇군요 ㅠㅠ 주어진 정보가 부족하다보니... 정확한 원인을 파악하기가 어렵네요 🥲

ChoijeHyeok commented 1 year ago

아 저같은 경우는 디렉토리 구조가 .filter((wrapper) => wrapper.isDependencyTreeStatic()) 이 키워드가 들어가면 안되는거 같아용!! 해당 라인 주석처리하니까 의도한방향으로 동작합니다 감사합니다!!! 매우 유용한 패턴으로 많은 가르침 받고 갑니다~~

p-ej commented 1 year ago

좋은 글 감사합니다 ! 이 글을 토대로 혹시 크론 잡을 lock 할 수 있는 기능을 구현 할 수 있을까요 ? 인스턴스가 2대인 상태에서 크론잡을 구동하면 중복실행되는 상황이 있어서요 .. 많은 솔루션을 찾아봤는데 단일 인스턴스에만 실행될 수 있게 레디스 큐에 작업을 진행하는 방안으로 할까 하다가 이 글을 보게 되었습니다.