본문 바로가기
728x90
반응형

전체 글317

[docker][Nest] 모노레포 환경에서 docker 배포 환경 최적화 문제 상황docker를 사용하는 가장 큰 이유는 무엇일까요? 아마 대부분 외부 환경에 영향 받지 않고 서버를 정상적으로 운영하기 위해서 docker를 사용할 것입니다. docker를 사용하면 독립적인 container를 띄워서 외부 호스트에서 별도의 환경을 구축할 필요 없이 바로 원하는 서버를 띄울 수 있습니다. docker를 활용하여 서버를 구축할 때 docker image만 가지고 있으면 환경이 바뀌더라도 항상 동일한 서버 운영을 보장할 때 가장 이상적일 것입니다. 그에 비해 저희 서버는 docker를 제대로 활용하지 못 한다는 느낌을 받았습니다. 아래는 기존 저희 서버의 구조입니다. 중복 패키지를 방지하기 위해 docker volume을 사용하여 backend, websocket 컨테이너에 연결했습.. 2025. 1. 15.
[docker] docker 이미지 간 node 패키지 공유하여 이미지 용량 최적화 문제 상황열심히 개발을 하고 배포를 하던 중에 원격 서버에서 문제가 발생했습니다. 원격 서버에 패키지를 설치하던 중 디스크 용량 부족으로 인해 패키지 설치가 제대로 이루어지지 않았습니다. 당시 저희 팀은 크레딧을 아끼기 위해 최대한 낮은 스펙의 원격 서버를 사용했는데 디스크의 용량이 10GB밖에 되지 않았습니다. 이러한 환경에서 docker 배포를 위한 여러가지 방법을 시도하다 정리하지 않은 layer들이 너무 쌓인 것이 원인이었습니다.root@pub-server:/var/lib# du -sh /var/lib/docker/*22M /var/lib/docker/buildkit432K /var/lib/docker/containers4.0K /var/lib/docker/engine-id7.7.. 2025. 1. 14.
[redis] node.js 환경에서 redis 분산 락 구현하기 개요현재 제가 진행 중인 프로젝트는 api 서버와 websocket 서버가 별도의 프로세스로 띄워져서 동작하고 있습니다. 여기서 api 서버와 websocket 서버가 같은 자원을 공유하고 있어서 동시성 문제를 해결하기 위해 분산 락을 적용하기로 했습니다.처음에는 npm의 simple-redis-mutex 패키지를 사용하였는데 원인 모를 에러가 계속 발생하더라고요...https://www.npmjs.com/package/simple-redis-mutex simple-redis-mutexMutex lock implemented using redis. Latest version: 2.1.0, last published: a month ago. Start using simple-redis-mutex in yo.. 2025. 1. 10.
[redis] redis의 transaction redis transactionredis의 transaction 기능을 사용하면 여러 명령어들을 한 번에 실행할 수 있습니다. redis에서 다음 명령어를 통해 transaction 기능을 사용할 수 있습니다. MULTI : 트랜잭션을 시작합니다. 이후 실행하는 명령어들을 모두 큐에 저장합니다.EXEC : 트랜잭션 안에서 큐에 저장된 연산들을 실행하고 connection 상태를 normal로 되돌립니다.DISCARD : 트랜잭션 안에서 큐에 저장된 연산들을 제거하고 connection 상태를 normal로 되돌립니다. 만약 WATCH가 적용되어 있었다면 WATCH를 취소합니다.WATCH : key에 watch를 적용하면 EXEC 명령어는 오직 해당 key가 변경되지 않았을 때만 실행합니다.redis tr.. 2025. 1. 9.
728x90
반응형