본문 바로가기
반응형

backend25

[Server] Nginx Nginx를 리버스 프록시로 설정 → Node.js 서버를 외부에 노출하지 않고 Nginx를 통해 트래픽을 전달로드 밸런싱 → 여러 개의 Node.js 인스턴스를 띄우고 Nginx가 트래픽을 분산정적 파일 서빙 → Nginx에서 정적 파일을 직접 제공캐싱 설정 → 성능 향사아을 위한 캐싱 적용압축(gzip, Brotli) 적용 → 트래픽 감소 및 성능 향상보안 설정 (HTTPS, CORS, Rate Limiting 등)프로젝트 구조nginx-node-docker/│── backend/ # Node.js 서버 코드│ ├── server.js│ ├── package.json│ ├── Dockerfile│── nginx/│ ├── default.conf .. 2025. 3. 26.
[Redis] Redis를 이용한 동시성 이슈 해결 실습 - Redlock https://bk0625.tistory.com/145 [Redis] Redis를 이용한 동시성 이슈 해결 실습해보기 - SETNX 사용 방법동시성 문제란?여러개의 프로세스나 스레드가 동시에 같은 리소스, 예를 들자면 데이터베이스나 캐시, 파일 등에 접근 할 때 예상 치 못한 데이터 충돌, 중복 실행, 무결성 문제가 발생하는 상황bk0625.tistory.com 지난 포스팅에서 Redis의 SETNX를 활용해 동시성 이슈를 해결해보았다. 해당 방법은 쉽게 구현할 수 있지만 여러 문제가 발생할 수 있다. SETNX 방식은 단일 Redis 노드에서만 동작한다. 즉 장애 발생 시 안전하지 않으며 여러 redis 인스턴스 활용 시 사용할 수 없다. 이런 멀티 노드 환경에서도 데이터의 정합성을 유지하고 동시성 문.. 2025. 2. 20.
[Redis] Redis를 이용한 동시성 이슈 해결 실습해보기 - SETNX 사용 방법 동시성 문제란?여러개의 프로세스나 스레드가 동시에 같은 리소스, 예를 들자면 데이터베이스나 캐시, 파일 등에 접근 할 때 예상 치 못한 데이터 충돌, 중복 실행, 무결성 문제가 발생하는 상황이다. 대표적인 예시로는 재고 감소, 중복 결제 방지, 특정 작업의 중복 실행 방지 등이 필요 할 때 동시성 제어가 필요하다.  Redis를 이용한 동시성 해결 방법 Redis를 활용하여 분산 락(distributed lock)을 사용하면, 하나의 작업이 끝날 때까지 다른 프로세스가 동일한 리소스를 변경하지 못하도록 막을 수 있다. Redis를 이용한 대표적인 동시성 해결 기법은 다음과 같다SETNX (SET if Not Exists) 사용Redlock 알고리즘 (분산 락 강화 버전) 사용이 두가지 방법을 nodejs.. 2025. 2. 20.
[Prisma] Promise.all과 transaction 동시 사용 시 Transaction API error: Unable to start a transaction in the given time. 에러 발생. 외주 작업을 하면서 추가 의뢰를 받은 기능을 개발하던 중이였다. 해당 기능은 주문이 들어온지 두 달이 지났는데 아직 연결이 안된 접수 건을 조회 해서 취소된 항목 변경해달라는 것. 나는 cron으로 이미 스케줄링 작업을 돌리고 있었기 때문에 cron을 사용하기로 했고 매일 정해진 시간에 조회를 해 업데이트를 하면 된다고 생각했다. 또 이미 주문 취소 함수가 구현이 되어 있었기 때문에 해당 함수를 사용하면 된다고 생각했다. 그리고 문제의 그 코드...  @Cron('0 50 23 * * * ', { timeZone: 'Asia/Seoul' }) async deleteOldOrder() { //예전 데이터 삭제 // 기준 날짜: 현재 날짜에서 2개월 전 const .. 2024. 12. 8.
반응형