Dev Logs 이벤트 루프 블로킹(Event Loop Blocking)이란? 이벤트 루프 블로킹(Event Loop Blocking)이란? 이벤트 루프란? 이벤트 루프(Event Loop)는 Node.js에서 비동기 작업을 효율적으로 처리하기 위한 핵심 메커니즘이다. Node.js는...
Dev Logs MySQL 트랜잭션 격리 수준(Isolation Level) 완벽 정리 트랜잭션 격리 수준이란? 트랜잭션 격리 수준(Transaction Isolation Level)은 여러 트랜잭션이 동시에 실행될 때, 각 트랜잭션이 다른 트랜잭션의 변경 사항을 어느 정도까지...
Dev Logs 소프트웨어 테스트 종류 정리 소프트웨어 테스트는 코드가 의도한 대로 동작하는지 검증하고, 오류를 조기에 발견하며, 시스템의 안정성과 신뢰성을 확보하기 위한 개발 활동이다. 테스트는 검증 범위에...
Dev Logs Redis 트랜잭션(Transaction) 이해하기 Redis는 단순한 Key-Value 저장소를 넘어 여러 명령을 하나의 작업 단위로 처리할 수 있는 트랜잭션 기능을 제공한다. 이를 활용하면 여러 데이터 변경 명령을 순서대로...
Dev Logs 사가 패턴(Saga Pattern)과 2단계 커밋(2PC)을 활용한 분산 트랜잭션 설계 분산 트랜잭션이란? 일반적인 데이터베이스 트랜잭션은 하나의 데이터베이스 안에서 여러 작업을 하나의 논리적 단위로 처리한다. 작업이 실패하면 롤백하여 데이터의...
Dev Logs 비관적 락(Pessimistic Lock), 낙관적 락(Optimistic Lock), 분산 락(Distributed Lock) 동시성 제어(Concurrency Control)는 여러 요청이 동일한 데이터에 동시에 접근할 때 데이터의 일관성과 무결성을 보장하기 위한 핵심 기술이다. 온라인 게임 서버, 포인트 정산,...
Dev Logs Colyseus로 만든 실시간 텍사스 홀덤 플랫폼 https://wayhope.kro.kr/gitlab/wayhope/pokermultiplayer.git TypeScript 모노레포를 기반으로 REST API, 실시간 게임 서버, 모바일 클라이언트, 인프라까지 구축하는 과정을 정리한다. 단순히...
Dev Logs Prisma ORM, 데이터베이스 개발과 성능 최적화 #Node.js Prisma란? Prisma는 Node.js와 TypeScript 환경에서 데이터베이스를 편리하게 다룰 수 있도록 지원하는 ORM(Object-Relational Mapping) 도구다. ORM은 객체지향 프로그래밍의 객체와 관계형...
Dev Logs React Native 클라이언트 연동 #상태 관리, 인증, 실시간 통신 React Native는 JavaScript 또는 TypeScript를 사용해 Android와 iOS 애플리케이션을 개발할 수 있는 프레임워크다. React의 컴포넌트 모델과 Hooks를 기반으로 하며, HTTP API와 WebSocket을 통해...
Dev Logs 버전 관리 #Git 브랜치 전략, Pull Request와 코드 리뷰, 변경 이력 관리 버전 관리란? 버전 관리는 소스 코드와 프로젝트 파일의 변경 사항을 기록하고 추적하는 체계다. 단순히 파일의 이전 상태를 저장하는 것을 넘어, 누가 어떤 이유로 코드를...