본문 바로가기
728x90
반응형

분류 전체보기163

crypto 대신 Bun.CryptoHasher 사용하기! 고유한 Id를 만들어하는데 암호화를 위해 crypto 라이브러리를 추가하려고 할 때 갑자기 Bun에서 지원해주는게 없나 싶어서 찾아봤다. 그랬더니 유레카! const hasher = new Bun.CryptoHasher("sha256"); const hasherData = name + category; //여기에 암호화할걸 넣기 hasher.update(hasherData); const hash = hasher.digest("hex").substring(0, 24); 이렇게 코드를 짜주면 crypto와 동일한 기능을 한다. crypto을 굳이 안 깔고 기본 내장 함수로 할 수 있어서 좋았다 👍 bun 공식 문서를 한 번 날 잡고 꼼꼼하게 읽어서 활용할 수 있는걸 다 활용해야겠다. fin. 2024. 1. 31.
#7 가로 스크롤 만들기 - overflow 스크롤 안될 경우 뭉치에 태그 기능이 도입됐다. 이 태그를 통해 사용자들이 자신이 저장한 태그별로 작품들을 볼 수 있게 할 생각이다. 이런식으로 UI/UX를 짰고 인제 만들면 됐는데 실제로 반영한 결과 태그가 많으니깐 보기가 안좋아서 가로 스크롤을 하기로 했다 🔥 해본 결과...ㅋ 안 넘겨진다. 그러다가 아래 사이트에서 중요한 정보를 얻었다. https://www.codeit.kr/community/questions/UXVlc3Rpb246NWUzNDUyMjU4MGU1MTMzNzNkOTYyNjJk overflow : scroll; 에서 스크롤이 생기지 않는 이유 www.codeit.kr 브라우저의 너비를 조절해보다라고 해서 원래 아이폰 프로 14 맥스에서 아이폰 SE로 해보니 잘됐다 ❗️ 또한 너비를 75%에서 100%로 .. 2024. 1. 31.
#6 데이터 마이그레이션 하기 구버전인 운영 서버와 신버전인 개발 서버의 데이터가 다르다면? 지난 11월에 운영 서버를 올렸다. 두달이 지난 지금 개발 서버와 격차가 벌어졌는데 가장 큰 문제가 생겼다. 바로 데이터 구조가 바뀌었다 홀리쉣! 개발 서버에선 기존 데이터들이 삭제되어 데이터 구조가 바뀜으로써 일어나는 이슈를 파악하지 못했다. 그렇다고 운영 서버의 데이터도 날려버릴 수 없고... 결국 데이터 마이그레이션을 하기로 결정했다. 데이터 마이그레이션 그거 어떻게 하는건데? 우선 데이터의 전과 후를 잘 알아야 한다. 그래야지 스크립트를 잘 짤 수 있다. 뭉치의 경우 workList에 큰 변화가 있었다. // before "workList": [ "6566feee11", "656feee199", ... } //after "workLis.. 2024. 1. 29.
[Bun 시리즈] #4 Bun에 어울리는 프레임워크 고르기! - express vs fastify vs hono 그대 express를 왜 버리는가? NodeJS + express + TypeScript 조합은 국룰 👍 express라는 프레임워크를 쓰는 이유는 국룰이라는 말이 나올 정도로 정~말 많은 이들이 쓰기 때문이다. 그만큼 안정성이 있다는거고 문제가 발생해도 많은 이들의 도움을 받을 수 있다. express를 주제로 한 글도 많다. 하지만 런타임을 Bun으로 쓰기로 한거 프레임워크를 express로 하기엔 신식 + 구식 느낌이여서 싫다. 이번 기회에 프레임워크도 신식 느낌으로 프레임워크 두가지를 알아봤고 최종적으로 하나를 선택했다. fastify와 hono 간단 소개 아마 fastify는 들어봤을거다. 이름처럼 빠른 처리 속도와 낮은 오버헤드를 자랑하며 고성능을 목표로 하는 프레임워크다. 하지만 인제 hon.. 2024. 1. 23.
[Git] Your local changes would be overwritten by checkout의 선택지마다 다른 점 비교 vscode로 이런저런 브랜치를 옮겨다니다가 심심치 않게 보는 안내문구다. 현재 위치하는 브랜치와 옮겨갈려는 브랜치 간의 변경사항이 충돌할 때 나타난다. 3가지 선택지를 주는데 각각 어떤 점이 다른지는 알고 누르도록 하자. 1. Stash & Checkout 임시 저장소(stash)에 저장하고 체크아웃을 진행한다. 나중에 이 변경사항을 다시 적용할 수 있다. 그래서 현재 작업을 유지하면서 다른 브랜치로 전환하고 싶을 때 유용하다. (git stash pop 혹은 git stash apply) 2. Migrate Changes 현재 변경사항을 새로운 브랜치로 옮기고 해당 브랜치로 체크아웃한다. 현재 변경사항을 별도의 작업으로 관리하고 싶을 때 유용하다. 3. Fore Checkout 현재 변경사항을 무시하.. 2024. 1. 18.
[zipkin] TypeError: fetchImpl is not a function fix 현상 zipkin을 연결한 서비스 A가 로컬에서 npm start을 할 경우 잘 된다. 하지만 Docker로 빌드해서 올리면 서비스 A가 죽는다. 도대체 왜 그럴까? 겨우 찾아낸 오류 문구는 TypeError: fetchImpl is not a function다. https://github.com/openzipkin/zipkin-js/issues/493 node_modules/zipkin-transport-http/src/HttpLogger.js. · Issue #493 · openzipkin/zipkin-js Running a Node application works fine for sending traces. However if I compile this to a minified file in Web.. 2024. 1. 17.
prometheus Error: connect ECONNREFUSED 127.0.0.1:9090 fix 문제 MSA 환경에서 A서비스에서 prometheus에 질의를 해야하는 코드를 작성했다. 포스트맨으로 A서비스 API를 실행한 결과 Error: connect ECONNREFUSED 127.0.0.1:9090라는 오류가 나왔다. 해결 1. prometheus:9090으로 변경하기 await axios.get('http://prometheus:9090/api/v1/query_range', { 바로 잘된다. 혹시 안되는 사람은 아래 github 링크를 보고 다른걸 시도해보길 바란다. https://github.com/grafana/grafana/issues/46434 Error reading Prometheus: Post "http://localhost:9090/api/v1/query": dial tcp 1.. 2024. 1. 9.
Helm을 이용해서 k8s에 Redis 넣기 Helm으로 k8s에 Redis 추가하기 helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update helm에서 redis repo을 가지고 온다. helm install my-redis bitnami/redis --set auth.password=my-password 이렇게 해주면 비번까지 설정할 수 있다. redis에 중요한 데이터를 넣지는 않겠지만 그래도 데이터베이스 비번 설정은 중요하니 넣어주자. kubectl exec -it [pod 이름] -- redis-cli redis에 접속하자. ping이라도 해보려고 했더니 (error) NOAUTH Authentication required가 나온다. kubectl exec -i.. 2023. 12. 21.
[MongoDB] mongoose의 populate을 이용해서 편하게 다른 컬렉션 정보 가져오기 지금 누가 join하고 웃었는가? join은 관계형 데이터베이스에서 많이 쓰인다. SQL에서 join을 사용하면 두 테이블 간의 관계를 기반으로 데이터를 결합하여 결과를 반환한다. 그럼 MongoDB는? $lookupd이라는 Aggregation 연산자가 있긴하다. db.users.aggregate([ { $lookup: { from: "orders", // 결합할 다른 컬렉션 localField: "_id", // 현재 컬렉션의 필드 foreignField: "userId", // 다른 컬렉션의 필드 as: "userOrders" // 결과를 저장할 필드 이름 } } ]); 직접적이고 유연한 방법을 제공하지만 복잡한 쿼리를 작성해야 한다. 이때 mongoose의 populate를 쓰면 좋다. mongo.. 2023. 12. 8.
728x90
반응형