일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- Redux
- docker
- fastapi
- Switch
- For
- deep learning
- php
- Redis
- node.js
- rabbitmq
- Go
- CentOS
- webpack
- python
- javascript
- AWS
- 블레이드 템플릿
- NCP
- laravel
- nodejs
- React
- mariadb
- linux
- Backbone.js
- Machine Learning
- Node
- SQL
- nginx
- 기초 수학
- Babel
- Today
- Total
목록분류 전체보기 (201)
개발일기

Nodejs의 PM2는 여러개의 노드 프로세스를 관리할 수 있는 데몬 프로세스이다. pm2로 애플리케이션을 다운타임없이 재시작할 수 있고, 애플리케이션이 계속 실행되도록 유지할 수 있다. 기존에는 자바스크립트 파일을 테스트하려면 node [파일명]으로 실행하여 터미널이 종료되면 프로세스가 종료되는 단점이 존재했다. 하지만 pm를 사용하면 노드 프로세스를 계속 유지할 수있어 여러모로 편리한 점을 제공한다. 또한 프로세스를 여러개 실행시키면 각 프로세스마다 포트가 할당된다. 이를 통해 로드밸런싱하여 프로세스의 작동을 분할할 수 있다. 1. PM2 설치 npm isntall pm2 -g yarn add pm2 -g pm2는 package.json, node_modules없이도 노드 프로세스를 관리할 수 있기에..

1. Queue 생성 import dotenv from 'dotenv'; import amqplib from 'amqplib/callback_api.js' dotenv.config(); amqplib.connect({ 'hostname': process.env.RABBITMQ_HOST, 'username': process.env.RABBITMQ_ID, 'password': process.env.RABBITMQ_PASSWORD, 'port': process.env.RABBITMQ_PORT, 'vhost': process.env.RABBITMQ_VHOST, }, (err, conn) => { if(err) { console.log("Err: ", err); return false; } conn.createC..

RabbitMQ의 큐에 메시지를 전달할 때, exchange 타입에 따라 저장할 큐를 선택하여 해당되는 큐들에 메시지를 보낼 수 있다. Laravel의 라우트와 비슷한 개념으로 큐 이름을 지정하거나 와일드카드로 패턴을 지정하여 설정할 수 있다. 1. Binding Exchange에 라우팅 키를 지정하는 것을 binding이라 한다. 즉, 정해진 타입에 규칙을 추가하는 것을 의미한다. 라우팅 키는 Exchange 타입에 상관없이 지정할 수 있지만, 타입에 따라 라우팅 패턴이 다르기에 매칭되는 큐가 달라질 수 있다. 2. Exchange Type exchange 종류에는 fanout, direct, headers, topic이 있다. fanout : 바인딩된 모든 큐에 동일한 메시지를 전달한다. 즉, 문자열..

1. 설치 1-1. amqplib 설치 npm install amqplib -D yarn add amqplib -D # rabbitmq에 연결하기 위해 amqplib를 설치한다. 1-2. dotenv 설치 npm install dotenv -D yarn add dotenv -D # RabbitMQ연결 정보가 저장된 .env파일을 사용하기 위해 설치한다. 2. .env파일 생성 # .env RABBITMQ_HOST=ip RABBITMQ_ID=아이디 RABBITMQ_PASSWORD=비밀번호 RABBITMQ_PORT=포트번호 # 기본은 5672포트 RABBITMQ_VHOST=가상호스트 루트 폴더에 .env파일을 생성하여 RabbitMQ 연결에 필요한 정보들을 입력하여 저장한다. 3. RabbitMQ 연결할 i..

1. erlang설치 RabbitMQ는 erlang이라는 언어로 만들어졌기에 먼저 erlang을 설치해야 한다. wget https://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm rpm -Uvh erlang-solutions-2.0-1.noarch.rpm yum install erlang -y wget을 통해 erlang 패키지를 다운로드 한 후, erlang을 설치한다. 2. RabbitMQ 설치 wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.8/rabbitmq-server-3.8.8-1.el6.noarch.rpm wget으로 RabbitMQ 패키지를..

RabbitMQ의 연결, 채널, 큐 등을 관리하고 모니터링하기 위해 RabbitMQ Management Plugin을 사용한다. 채널을 관리하기 위해 채널 탭을 클릭했을 때, 'Stats in management UI are disabled on this node' 라는 내용이 있는 모달창이 나오며 채널 목록이 안나오는 경우가 있다. 해결법 vi /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf nano /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf management_agent.disable_metrics_collector.conf 파일을 편집기를 통해 ..

find와 grep은 리눅스 파일 시스템에서 일치하는 컨텐츠를 찾아내는 공통점을 가지고 있다. 하지만 find와 grep은 타겟팅하는 컨텐츠에 큰 차이점을 가지고 있다. find : 이름을 기반으로 일치하는 파일 또는 디렉터리를 찾아낸다. grep : 해당 텍스트를 포함한 파일을 찾아낸다. 1. find 명령어 find [경로] [옵션] [이름] # 이러한 순서로 find 명령어를 입력하여 실행한다. find / -name "resources" # resources라는 이름을 가진 파일 또는 디렉터리를 찾아낸다. find / -type -f -name "fruit.log" # fruit.log라는 이름을 가진 파일을 찾아낸다. find / -type -d -name "public" # public이라는 ..

Backbonejs는 SPA 방식으로 처음 페이지를 서버에서 불러온 후, 이후에 변경되는 페이지 내 요소들은 클라이언트를 통해 부분 요소만 그려낼 수 있다. 이러한 방식을 사용하면 서버에 주는 부담을 최소화 할 수 있으며 최소한의 새로고침으로 사용자들이 해당 웹을 이용할 때, 자연스럽고 빠른 성능의 화면 변경 요소를 확인할 수 있다. SPA 방식으로 검색 페이지를 구현하고 검색 결과를 공유하기 위해 다른 사용자에게 URL를 공유하면 검색 결과가 나온 페이지가 아닌 검색을 처음부터 진행해야하는 페이지가 불러와지는 것을 확인할 수 있다. SPA 방식이지만 다른 사용자에게 공유할 수 있는 URL을 Backbonejs의 Router로 생성하여 공유할 수 있다. 1. Backbonejs의 Router // ind..