전체 글
-
-
Redis를 활용한 외부 Api 요청 개선하기Redis 2024. 9. 24. 21:46
현재 프로젝트에서는 Tour-Api 서비스를 이용하고 있는데 외부 api를 호출 할때 Redis를 이용하여 어떻게 하면 더 최소로 호출 하게 만들 수 있을지에 대해서 생각 해봐야한다.1. 외부 api를 request 마다 계속 호출하게 되면 비용 과금 문제가 발생한다.2. 똑같은 결과값을 가진다고 가정 했을 때 현재 서버에서 외부 Api 서버를 호출 할때 걸리는 시간이 발생 한다. 도의 정보를 가져오는 api 해당 api의 결과를 보게되면 알 수 있듯이 왠만하면 절대 바뀌지 않을 정보들이다."list": [ { "rnum": 1, "code": "1", "name": "서울" }, ..
-
NestJS에서 Redis를 활용한 좋아요 성능 개선Redis 2024. 9. 23. 16:32
현재 구조의 문제memberId와 feedId가 식별자 관계로 중복 데이터가 존재하지 않게 무결성을 보장 하지만 잦은 insert와 update는 성능 저하를 일으킨다.피드 좋아요 개선댓글 좋아요 개선1. Redis의 `Set` 자료구조를 이용하여 개선하기set 자료구조를 사용한 이유는 RDBMS에서도 무결성을 보장하기 위해 유니크 제약조건을 지키기 위해 식별자 관계로 PK를 사용 했는데 Redis의 set 자료구조를 사용하면 중복된 데이터가 없기 때문에 무결성을 보장할 수 있다레디스의 `set` 을 이용하여 이 기능을 간단하게 구현할 수 있으며, 빠른 시간 안에 처리할 수 있다. 1. 피드의 아이디를 사용해서 key를 생성2. 해당 피드에 좋아요를 누른 사용자의 ID를 아이템으로 추가하면 동일한 ID값..
-
react-query useQuery 커스텀훅으로 재사용하기React.js/React-Query 2024. 9. 20. 15:37
useQuery는 useMuation처럼 팩토리 메서드 패턴으로 커스텀훅으로 만들 필요는 없어 보였다. 그래도 중복되는 쿼리키를 가지는 useQuery는 관심사를 분리하여 재사용 할 수 있게 커스텀훅으로 만드는게 좋아 보였다. feed-id를 통해서 특정 feed를 가져오는 useQuery 커스텀훅으로 만들기feed를 수정하기 위해 피드를 가져오는 부분 Notification에서 feedId를 통해 특정 피드를 가져오는 부분 useFeedByIdQuery.ts 커스텀 훅으로 만들었을때 장점feedDetail에서는 refetch가 필요하고 CreateFeed에서 remove가 필요할때 커스텀훅을 만들어 사용하면 원하는 옵션을 호출하여 사용할 수 있다.options를 호출하는 부분에서 사용하여 enable..
-
react-query useMutation 커스텀훅으로 재사용하기React.js/React-Query 2024. 9. 15. 13:39
코드를 볼때부터 DRY를 지키지 않은 코드라는것을 바로 알 수 있다.심지어 해당 코드 중복 방식은 무려 56개의 컴포넌트에서 사용되고 있다.... 커스텀훅으로 코드 리팩토링 하기목표Loading, Report Noti 관려 라이브러리들을 커스텀훅에서 import 하고 사용하기mutationFn과 mutationKey를 커스텀훅이 호출 하는곳에서 넘겨주기 OnMutate와onError는 거의 동일하게 사용되기 때문에 고정이고처리 완료되어 성공 했을때 Report.success 부분에 옵션들과 callback 함수를 통해서 성공 후의 작업들을 처리하게끔 작성 하였다.만약에 성공후의 data를 가공하거나 해야될 경우에는 코드를 수정 해야 될것 같다. 목표대로 Noti 관련 라이브러리들을 캡슐화 되었고 mu..
-
dotenv 호출시 같은 환경변수명의 값을 변경시에 발생하는 문제Node.js 2024. 9. 12. 15:58
dotenv 사용시에 똑같은 환경변수에 값만 바뀌었을때 제대로 바뀌지 않는 문제가 있다.S3 업로드 키의 환경변수값을 변경 했을때 애플리케이션 상에서 log를 출력하면 정상적으로 바뀐것으로 나오나 실제로는 제대로 변경 되지 않아서 AWS Access Key Id you provided does not exist in our records 에러가 발생한다.해당 문제가 발생하는 원인을 나는 캐싱 문제라고 생각 했다. 아마도 이전 AWS key값이 캐싱되어 환경변수의 값이 변경되었음에도 이전 캐싱된값을 계속 가져오는것이라고 생각했다. 해결을 위한 조치 node_modules 삭제와 dist 파일 삭제docker 이미지 전체 삭제 및 다시 빌드$ docker-compose -f docker-compose-dev..
-
InvalidAccessKeyId: The AWS Access Key Id you provided does not exist in our recordAWS/S3 2024. 9. 11. 17:44
Access Key도 정상적이고 역할도 정확하게 주었는데 도대체 왜 안되는걸까 https://docs.aws.amazon.com/ko_kr/redshift/latest/dg/s3serviceexception-error.html S3ServiceException 오류 - Amazon RedshiftS3ServiceException 오류 가장 일반적인 s3ServiceException 오류의 원인은 형식이 잘못 지정되었거나, 잘못된 자격 증명 문자열이 있거나, 서로 다른 AWS 리전에 있는 클러스터와 버킷이 있거나, Amazon S3 권docs.aws.amazon.com잘못된 액세스 키 ID 액세스 키 ID가 존재하지 않는 경우, 다음과 같은 오류 메시지가 표시됩니다. 공식 문서를 보니까 그렇다고 한다. ..