개발9 선착순 쿠폰 서비스 개선하기 패스트 캠퍼스 강의로 "네고왕 이벤트 선착순 쿠폰 시스템" 강의를 들으면서 express + bulljs + prisma 조합으로 만들어 보았습니다. Coupon은 쿠폰의 종류와 쿠폰의 유효기간, 발급 수량, 발급된 수량을 관리합니다.CouponIssue는 어떤 유저가 쿠폰을 발급 받았는지를 관리합니다.model Coupon { id Int @id @default(autoincrement()) title String // 쿠폰명 totalQuantity Int? // 쿠폰 발급 최대 수량 issuedQuantity Int // 발급된 쿠폰 수량 issueStartDate DateTime // 발급 시작 일시 issueEndDate DateTime // 발급 종료 일시 .. 2025. 3. 27. monorepo프로젝트 docker build하기 사내에서 택배사 개발을 하면서 여러 개선 사항이 보였고 업무 + 개인 프로젝트의 연장선으로 택배 repo에 모노레포로 전환과 docker image로 build한 경험을 공유하고자 합니다. 사실 해왔던 것처럼 계속 개발 할 수가 있지만 택배사 구조를 한번 잡고 갈 필요가 있다고 생각하여 전환작업을 진행했습니다.도입 배경제가 입사했을 때의 택배사는 monorepo를 시도하려다 멈춘 느낌의 폴더 구조였습니다. pacakge/ 폴더 아래 cj, lotte, ..등의 택배사가 존재하였고 그 아래 서비스 코드와 node_modules, Dockerfile이 있었습니다. 사실상 package/ 폴더 아래의 택배사 폴더를 하나의 repo로 구분해도 전혀 이상하지 않은 구조였습니다. 이 구조에서 새로운 택배사가 추가해.. 2025. 2. 27. git action에서 Cloud SQL 인증 프록시로 db migration 하기 저희 팀에서는 prisma orm migration을 사용하기 때문에 예시에 사용되는 코드는 prisma 기반으로 작성 됩니다. 기존 저희 서버의 CI/CD과정에서 docker image를 만들어 배포하고, db migration 하는 과정은 아래와 같았습니다. - develop/staging/production push- git action 실행- git action에서 gcp compute engine에 접속- develop/staging/production 브랜치에서 git pull- docker build(Dockerfile 내부에 db migration 코드 존재)- docker container 저희 팀에서는 prisma orm을 사용하고 있었고, prisma 자체적으로 migration하는.. 2025. 2. 13. [Redis] 레디스 기본타입(Sorted Sets) redis 공식문서를 보고 정리한 글입니다. redis sorted set은 score로 정렬된 중복되지 않은 문자열의 집합입니다. 같은 score를 가지는 문자열이 존재하는 경우 사전순으로 정렬 됩니다. sorted sets은 온라인 게임의 랭킹 시스템이나, api rate limiters에 사용할 수 있습니다. ZMPOP O(K) + O(M*log(N)), K는 keys의 개수, N은 set의 element 개수, M은 pop하려는 데이터 개수 ZMPOP numkeys key [key ...] [COUNT count] keys로 입력받은 sorted sets들에서 MIN/MAX 데이터를 count개수만큼(default 1)삭제 후 반환함. 입력받은 key(sorted set) 중에서 데이터가 없으면 .. 2024. 3. 30. 이전 1 2 3 다음