목록분류 전체보기 (102)
개발자는 오늘도 달립니다.
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/L9Fnt/btraNJabN5b/IVvd2SaIIpCGZCiuMyUkH1/img.png)
NVM 은 node js 버전 매니저로 시스템에 여러 개의 nodejs 를 설치하고, 사용할 버전을 쉽게 전환할 수 있도록 도와주는 유틸입니다. node 버전 별로 최신 latest 가 가장 선호되기는 하지만 기존에 만들어진 라이브러리들이 최신버전과 호환이 안되는 경우가 많이 있습니다. 그래서 다수의 버전을 같은 환경에서 사용해야 하는 상황이 있기 때문에 NVM (node version manager)을 통해서 node 를 설치 하도록 하겠습니다. 1. NVM 설치 아래 링크를 통해서 nvm-setup 을 다운로드 해주세요! https://github.com/coreybutler/nvm-windows/releases/download/1.1.7/nvm-setup.zip 설치가 완료 되었으면 아래와 같이 c..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/Fi5M6/btqX0piIHBi/yZGcGfrzk0m6qc0BmWt8R0/img.png)
저 같은 경우에는 mysql db를 처음부터 설치 & 세팅하는 일이 자주 있는 일은 아니에요. 그래서 설치 & 세팅할 때마다 방법을 검색하곤 했었어요. 하지만 늘 찾아보는 번거로움을 없애기 위해 오늘은 제 블로그에 기록을 남기려고 해요! - 필요 조건 (prequisite) Ubuntu Server 18.04 1. apt (우분투 패키지 관리) 를 통한 mysql 설치 다음 명령어로 서버에 MySQL을 설치합니다. sudo apt update sudo apt install mysql-server 2. mysql 초기 설정 (secure installation) 아래와 같이 mysql_secure_installation 을 루트 권한으로 실행시켜줍니다! sudo mysql_secure_installatio..
mongodb 는 쿼리 개념이 아니라 함수개념으로 스크립트 형태로 데이터를 필터링 합니다. 그래서 RDB 위주로 사용하신분들은 조금 헷갈릴 수도 있지만 그래도 꾸준히 mongodb 를 이용한다면 익숙해지리라 생각됩니다. 오늘 블로깅 할 함수는 db.getCollectionName( ) 함수인데 이 함수는 컬렉션을 조회하는 용도로 사용됩니다. 아래는 특정 문자열로 시작하거나, 종료되거나, 포함된 컬렉션을 조회하는 방법입니다. 1. "tb_" 로 시작하는 컬렉션명을 조회하는 방법 db.getCollectionNames().filter(function (c) { return c.indexOf('tb_') == 0; }) db.getCollectionNames().filter(function (c) { retu..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/cEa2Tp/btqU7cS5AFR/zrr6Lr8IPjCmDzBYH5yCB1/img.png)
다수의 RDB (mysql, postgresql, oracle)에서 샤딩구성이 가능합니다. 뭐..ಠ_ಠ 관계형 데이터베이스에서 이러한 기능은 많은 분들이 익히 알고계시리라 생각됩니다. (ง •̀_•́)ง mongodb 에서도 확장 개념인 샤딩구성이 가능한데요~ 빅데이터 시대에서 확장개념은 클라우드 및 다수의 시스템에서 선택이 아닌 필수가 되었습니다. 그래서 오늘은 이 샤딩구성에 대한 개념과 방법을 블로깅 하겠습니다. 먼저 샤딩이란 무엇일까요? ・ヘ・? The word “Shard” means “a small part of a whole “. Hence Sharding means dividing a larger part into smaller parts. 샤드는 전체에서 작은 부분을 뜻하고 직역을 한다면 ..
mongoDB 인증 로그인이 가능하게끔 도커라이징 하는 방법을 포스팅 하도록 하겠습니다.! 관리자와 일반 사용자를 설정하고, 관리자는 super user 와 같습니다. 그리고 사용자는 접근도 가능하고 물론 데이터베이스에 대한 읽기, 쓰기 권한을 주도록 하겠습니다. 1. Dockerfile 생성 Dockerfile 을 생성 하고 아래의 내용을 복사해서 붙여넣어주세요~! 버전은 mongodb 4.0.2 로 하겠습니다. FROM mongo:4.2.0 COPY ./users_init.sh /docker-entrypoint-initdb.d/ 2. users_init.sh 생성 해당 파일은 도커 시작 시 호출 하게 될 스크립트 파일(javascript 코드가 포함 된 리눅스 쉘 스크립트)입니다. 기존 mongodb..
FirewallD는 Linux 운영 체제를 위한 방화벽 관리 도구입니다. iptables 는 숙련된 관리자가 아니면 사용이 어려운 단점이 있었는데 이런 문제를 해결하고자 RHEL/CentOS 7 부터는 방화벽 관리 유틸인 firewalld 가 나오게 되었고, 이에 따라 iptables 명령어 대신 firewall-cmd, GUI 환경에서는 firewall-config를 사용하게 되었습니다. (물론 iptables 도 사용 가능합니다.) Firewall 특징 FirewallD 는 체인과 규칙 대신 Zone 과 Service 를 사용합니다. 규칙 세트를 동적으로 관리하여 기존 세션 및 연결을 끊지 않고 업데이트를 가능합니다. Note! FirewallD는 iptables 규칙을 더 쉽게 관리할 수 있도록..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/bdn9tV/btqPsCwCeL2/ztMvFfZIm5tgXqRwHNZp31/img.png)
서버에서 무중단 서비스를 운영을 할 경우 무중단 데몬을 띄워 관리를 해줘야합니다! Node.js의 경우 서버가 크래시나면 재시작을 하기 위해서 watchdog 같은 프로세스 관리자를 사용하게 됩니다. 저 같은 경우 서비스를 관리하는 매니저 모듈을 개발하여 동작시키거나 이후에는 Node.js 라이브러리 패키지인 nodemon이라든가 forever라는 도구를 사용했습니다. 하지만 현재는 Node.js 패키지인 PM2를 애용하고 있는데 다양한 기능과 깔끔한 monit 로 많은 개발자들이 사용하고 있습니다. - pm2 install sudo npm install pm2 -g 위와 같이 전역에 설치해서 사용하면 그만이긴 한데... 서버가 재부팅하거나 했을 경우 서비스등록을 해줘야합니다~ 리눅스의 경우 부트 스크립..
기본적으로 RPi 3는 bluetooth 모듈을 내장하고 있습니다. RPi 3 에서 블루투스 프로그래밍을 하거나 기능적으로 활용하는 방법을 블로깅하기로 했습니다. Raspberry Pi 3의 터미널에서 윈도우 설치된 컴퓨터와 페어링을 하기 위해 bluetoothctl 명령을 실행합니다. bluetoothctl 명령어을 입력 하게 되면 [bluetooth] # 옆에 커서가 깜박이면서 명령 입력 대기모드가 됩니다. show를 입력하면 Raspberry Pi 3에서 사용중인 모듈의 정보를 보여줍니다. (현재 디폴트로 설정되어 있는 Raspberry Pi 3에 내장된 Bluetooth 모듈의 맥어드레스를 출력해줍니다.) 블루투스 모듈의 맥어드레스는 B8:27:E8:DA:FA:66입니다. Powered: yes ..