분류 전체보기267 promise pool로 비동기 작업 처리량 높이기 Promise 관련된 내용을 찾아보다가 @supercharge/promise-pool 이라는 라이브러리를 발견하여, 기존 Promise.all와 비교하여 어떤 부분에서 장점이 있는지 코드를 분석해보겠습니다. 보통 서버에서 여러 비동기 작업을 한번에 처리하거나, 처리량을 높이기 위해 Promise.all을 사용합니다.await Promise.all(["1초 걸리는 작업", "3초 걸리는 작업", "2초 걸리는 작업"])await Promise.all(["4초 걸리는 작업", "2초 걸리는 작업", "5초 걸리는 작업"]) 각각의 Promise.all의 실행되는 시간은 Promise.all에서 가장 처리시간이 오래 걸리는 작업이 됩니다. 위의 코드예시에서 첫번째 Promise.all은 3초, 두번째 Prom.. 2025. 4. 3. 선착순 쿠폰 서비스 개선하기 패스트 캠퍼스 강의로 "네고왕 이벤트 선착순 쿠폰 시스템" 강의를 들으면서 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. graphql subscsription 어떻게 굴러가는지 알아보기 저희 서비스의 "미발행 송장 카운트"에 graphql subscription을 적용하면서, 전반적인 subscription이 어떻게 동작하는지 흐름을 정리한 글입니다. 저희 회사는 graphql server를 apollo server + nexus 조합을 사용하고 있습니다. graphql spec문서에 보면 operation을 3개로 정의하고 있으며 주로 사용하는 query, mutation 이외에도 subscription가 존재합니다. subscription은 클라이언트와 서버 간에 장기적인 연결을 유지하며, 서버가 특정 이벤트나 데이터 변경을 감지할 때 클라이언트에 데이터를 푸시하는 방법입니다. 이 글에는 저희 회사 스펙인 apollo server와 nexus를 사용하여 구현해보도록 하겠습니다. .. 2025. 2. 16. 이전 1 2 3 4 ··· 67 다음