개발자 양세진의 기술 블로그
close
프로필 배경
프로필 로고

개발자 양세진의 기술 블로그

  • 분류 전체보기 (137)
    • JAVA (20)
    • Trouble Shooting (5)
    • CS (24)
    • Linux (18)
    • DB (5)
    • 개발일기 (6)
    • Spring - Spring Boot (9)
    • AWS (4)
    • NetWork (9)
    • side Project - Portfolio ma.. (2)
    • JPA (1)
    • Coding Test - Java - Progra.. (14)
    • Software Design (5)
    • DataStructure (1)
    • 알고리즘 (2)
    • 인프라 (1)
    • JS (8)
    • 쿠버네티스 (3)
  • 홈
  • 태그
  • 방명록

ORM JPA 를기반해 Node 에서 쓰는 Prisma와 TypeORM

배경ORM(Object Relational Mapping)은 애플리케이션 코드에서 데이터베이스를 다루기 위한 계층이다.각 ORM은 쿼리를 작성하는 방식이 서로 다르며, 대표적으로 Java 생태계의 JPA, Node.js 생태계의 Prisma, TypeORM이 널리 사용된다.특히 JPA는 JPQL이라는 ORM 전용 쿼리 언어를 제공하지만, Node.js ORM들은 동일한 구조를 반드시 제공하지 않는다.핵심 질문JPA의 JPQL(@Query) 방식과 같은 기능이 Prisma, TypeORM에도 존재하는가?각 ORM은 어떤 방식으로 쿼리를 작성하는가?ORM 별로 쿼리 계층 구조는 어떻게 다른가?1. JPAJPA는 JPQL(Java Persistence Query Language) 이라는 ORM 전용 쿼리 언어..

  • format_list_bulleted JS
  • · 2026. 3. 9.
  • textsms
Node.js 에서 멀티코어를 활용하자 - 4 - 실무처럼 테스트해보자

Node.js 에서 멀티코어를 활용하자 - 4 - 실무처럼 테스트해보자

Node.js 부하 테스트 및 메트릭 수집 아키텍처 정리일단 전체적인 구성 코드가 필요하면 댓글남겨주길 바랍니다.배경Node.js(Express) 기반 백엔드 애플리케이션의 성능 특성과 시스템 안정성을 검증하기 위해부하 테스트(k6)와 런타임 메트릭 수집(Prometheus)을 분리하여 구성한다.k6: 트래픽 시뮬레이션 및 부하 결과 수집Prometheus: 서버 내부 메트릭 수집Grafana: 시각화 단일 창구InfluxDB: k6 결과 저장소부하 결과와 서버 메트릭을 분리 저장하여 원인 분석 가능성을 높이는 것이 핵심 목적이다.핵심 질문부하 테스트 결과(k6)와 서버 메트릭(Prometheus)을 어떻게 분리·연결할 것인가?Node.js 애플리케이션에서 어떤 메트릭을 노출해야 하는가?Grafana에서..

  • format_list_bulleted JS
  • · 2026. 2. 2.
  • textsms

Node.js 에서 멀티코어를 활용하자 - 3 - 기본 Cluster

https://sejin-technology.tistory.com/130앞글 보고 오도록 한다일단 서버 시작점에서 부터 봐보자다음처럼 준비하는데, 나는 도커 기반으로 서버를 작업했기 때문에 다음처럼 나온다.혹시 코드필요한 사람은 아래 댓글 달아주면 링크보내준다server.listen(port, () => {const workerId = cluster.worker ? cluster.worker.id : 'single';const mode = useCluster ? 'cluster' : 'single process';console.log(`=== Worker ${workerId} Started ===`);console.log(`Mode: ${mode}`);console.log(`Process ID: ${pr..

  • format_list_bulleted JS
  • · 2026. 2. 2.
  • textsms

Node.js 에서 멀티코어를 활용하자 - 실무에서 쓰자 개념

배경전 글을 보고 온다. https://sejin-technology.tistory.com/129 Node.js 에서 멀티코어를 활용하자 - 개념0.들어가며Node 기반의 서버를 쓰면 기본적으로 준비해야하는 것중 하나가돌아가는 서버에 CPU 코어를 모두 활용할 수 있도록 준비하는 것이 필요하다. 자바 환경에서라면 알아서 쓰니까 세부적sejin-technology.tistory.com 일단 단일 서버는 왜문제가 없냐면[ Client ]↓[ OS Kernel ]↓[ Master ]↓[ Worker 1 / 2 / 3 ]이와같이 구조를 잡기때문에 OS가 자연스럽게 Load balancer의 역할을 수행해서 문제가 없다. 근데 멀티서버가 되면 이게 깨지는데 ┌─ Server A (Cluster)[ Cli..

  • format_list_bulleted JS
  • · 2026. 2. 2.
  • textsms

Node.js 에서 멀티코어를 활용하자 - 개념

0.들어가며Node 기반의 서버를 쓰면 기본적으로 준비해야하는 것중 하나가돌아가는 서버에 CPU 코어를 모두 활용할 수 있도록 준비하는 것이 필요하다. 자바 환경에서라면 알아서 쓰니까 세부적인 튜닝만 하면 되는데,Node 에서는 직접 넣어줘야 한다. 내가 전에 했던 프로젝트에서는 부하테스트 후에 서버 버스트가 되었을때예상했던 트래픽이 버텨질것으로 예상했었는데, 실제로 핫트래픽이 발생했을때인프라쪽에서는 전혀문제가 없는데 서비스 p95가 점진적으로 늘어나는 현상을 발견한 경험이 있다. 발주처 요구사항으로 스프링기반의 서비스에서 Node 기반의 서비스로 마이그레이션을 한건데,기존 초기설계 담당자가 해당 문제를 고려하지 못했고, 기간이 급해서였을까이를 파악한 사람이 없었다. 후에 문제가 발생했을때 급하게 조치해..

  • format_list_bulleted JS
  • · 2026. 2. 2.
  • textsms

TDZ (Temporal Dead Zone)

TDZ (Temporal Dead Zone) 개념 정리배경JavaScript에서 let과 const는 var와 다르게선언 이전에 접근할 경우 에러가 발생한다.이 동작의 핵심 원인이 TDZ(Temporal Dead Zone) 이다.핵심 질문TDZ란 무엇인가?왜 let / const는 선언 전에 접근하면 에러가 나는가?TDZ는 어떤 문제를 방지하기 위해 존재하는가?논의 요약TDZ의 정의TDZ(Temporal Dead Zone) 는let 또는 const로 선언된 변수가스코프에는 이미 존재하지만, 선언문이 실행되기 전까지 접근이 금지되는 구간을 의미한다.선언은 호이스팅됨초기화는 선언 시점까지 지연됨이 “지연 구간”이 TDZJavaScript 실행 흐름 관점실행 컨텍스트 생성스코프 결정변수 선언 등록 (호이스팅)..

  • format_list_bulleted JS
  • · 2026. 1. 19.
  • textsms
  • navigate_before
  • 1
  • 2
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (137)
    • JAVA (20)
    • Trouble Shooting (5)
    • CS (24)
    • Linux (18)
    • DB (5)
    • 개발일기 (6)
    • Spring - Spring Boot (9)
    • AWS (4)
    • NetWork (9)
    • side Project - Portfolio ma.. (2)
    • JPA (1)
    • Coding Test - Java - Progra.. (14)
    • Software Design (5)
    • DataStructure (1)
    • 알고리즘 (2)
    • 인프라 (1)
    • JS (8)
    • 쿠버네티스 (3)
최근 글
인기 글
최근 댓글
태그
  • #DHCP
  • #MSA
  • #AWS
  • #node
  • #docker
  • #DAO
  • #DTO
  • #java
  • #swagger
  • #Spring
전체 방문자
오늘
어제
전체
250x250
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바