개발11 prisma query engine 알아보기(+ connection pool) prisma보통 설치할 때 2가지 모듈을 설치합니다.prisma@prisma/client prisms는 보통 npx prisma migarte dev, npx prisma generate, ...등 cli 도구로 사용하기 위해 설치합니다.@prisma/client는 우리에게 ORM기능을 제공하며, prisma.user.findMany 같은 직접 DB에 쿼리를 날릴 수 있는 api, 생성한 DB 모델의 Typescript type definitions, query engine(실제 DB 질의, connection pool) 기능을 제공하고 있습니다. prisma query engine우리가 작성한 코드(prisma.user.findMany())는 결국 어떠한 변화를 거쳐 db query 질의를 해야합니다... 2025. 5. 8. 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. 이전 1 2 3 다음